发表于: 2016-07-24 17:01:58
1 2606
【完成工作】
Springmvc
mvc属于web编程,通过浏览器访问所写的web工程,访问时需要启动服务器。常用的服务器有tomcat和jetty。
Jetty:http://wiki.eclipse.org/Jetty/Feature/Jetty_Jspc_Maven_Plugin
Tomcat:http://tomcat.apache.org/tomcat-7.0-doc/index.html
源码链接:http://yun.baidu.com/share/link?shareid=3840469671&uk=437074692
Springmvc项目工程结构如下:
Springmvc入门程序流程如下
1. Jar包
Spring 3.2.0-RELEASE (带springwebmvc模块)
2. 配置web.xml
web工程的所有请求都是由servlet接收的,spingmvc框架提供dispatcherServlet作为前端控制器接收来自前端的请求。在web.xml中配置dispatcheerServlet的基本信息。包括引入DispatcherServlet类,spring配置文件路径和拦截前端请求。
3. 配置applicationContext.xml
(1)配置处理器映射器(handlerMapping)和处理器(controller)路径
DispatcherServlet收到请求后回去找处理请求的controller(handler),不过dispatcherServlet自己不能映射到controller,得通过处理器映射器去帮它找到controller,所以dispatcherServlet将请求交给applicationContext.xml中配置的处理器映射器(handlerMapping),然后处理器映射器根据applicationContext.xml中配置的controller地址找到一系列的controller(可以配置多个).
BeanNameUrlHandlerMapping可以根据配置controller的bean的name找到controller(Name必须是url)。
SimpleUrlHandlerMapping可以根据配置的controller的bean的id找到controller(key为请求的url)。
(2)配置处理器适配器(handlerAdapter)
HandlerMapping将找到的controller交给dispatcherServlet。 dispatcherServlet得运行controller去处理用户的请求,这时候它就需要将controller交给处理器适配器让它运行controller。处理器适配器配置如下。
(3)编写controller
handleradapter拿到controller后就要运行controller处理用户请求。这里编写的controller继承了controller类,它将响应的数据都存入modelAndView返给handlerAdapter,handlerAdapter再将modelAndView返给dispatcherServlet。
这里自己写了一个student的实例传入modelAndView,将springmvc与mybatis整合后就可以将数据库中的数据传入modelAndView。
(4)配置视图解析器(ViewResolver)
DispatcherServlet拿到响应的modelAndView后需要将它展现给用户,直接将modelAndView展现给用户看那是不可能滴。这时候需要通过viewResolver把modelAndView中的数据解析出来装入将要展示的页面,然后将可以直接展示的页面返给dispatcherDispatcher。
a) 如果controller中设置了返回页面的前后缀,视图解析器就配置个类就完事
b) 如果在controller中只设置了返回页面的逻辑视图名,在视图解析器中就需要配置前后缀名。
(5)配置jsp
viewResolver将拿到的modelAndView中的数据解析填充到jsp页面,然后返给dispatcherServlet。dispatcherServlet将拿到的jsp页面响应给用户。
(6)启动服务器访问(示例用jetty启动)
通过处理器适配器配置的url就就可以访问。
PS:上文中的处理器映射器和处理器适配器在实际开发中并不常用,而注解开发更为常用。
首先需要配置注解开发映射器和注解开发适配器,它们必须成对使用。在此之前同样需要配置controller的路径,也可以用扫描器对指定包进行扫描,扫描到带有@controller注解的类均认为是controller。
然后再controller类的方法名上添加一个@RequestMapping的注解,后面跟上请求的url。
这里指定的url为”/querystudents”,web.xml里配置的访问url格式是*.action.所谓访问地址为
【遇到问题】
用tomcat启动的时候报找不到DispatcherServlet
原因:tomcat发布项目的时候maven引的jar包没有一起发布到webapps下面
解决方法:右击项目-Properties-Deployment Assembly 将Maven Dependencies 添加到其中,保存然后重新发布。
【任务收获】
1. 学习了springmvc,了解了web访问流程。
【后续计划】
1. 整理springmvc+mybatis
评论