Spring除了应用于IoC、Aop和事务管理等方面,还可用于web的MVC开发,下面就本人初学Spring对其MVC web方面作一些总结:
1.Spring大致流程概括如下:(个人理解)
先用户请求触发了设置了一定条件的DispatcherServlet,然后DispatcherServlet将请求转交给Handle Mapping,HadleMapping依据DispatcherServlet的getHandler()方法返回的一个HandleExecutionChain来匹配用户自定义的指定控制器Controller,Controller处理用户的请求并将处理后的结果装配为ModleAndView,ModleAndView再集合viewResolver Bean定义的web程序的信息生成响应页面反馈给用户。
2.下面就编写的一个用户输入信息单击提交按钮跳转到结果页面并显示输入信息的例子来说明Spring的MVC模式:
第一步:配置web.xml,代码如下:
其中参数ContextConfigLocation用来设置系统上下文配置文件(相当于struts2中的struts.xml文件)所在的位置,多个配置文件使用","号分隔。
第二步:编写index.jsp(部分代码)
第三步:编写自定义配置器:
第四步:部置配置文件springMvc-config.xml
注意:这里的配置文件名必须与web.xml中contextConfigLocation参数中定义的相同,在Spring中配置文件默认按"servler名-servlet.xml"的格式查找,这里则默认为springDispacher-servlet.xml.
第五步:编写show.jsp(部分代码)
最后测试:输入http://localhost:8080/项目名
3.总体分析
在这里web.xml中定义的servlet映射地址为*.html,即用户当请求扩展名为html资源时,则交给DispatcherServlet处理,由于这里的springMvc-config.xml配置文件没有定义Handle Mapping,则DispatcherServlet将请求移交给默认的org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping处理,而BeanNameUrlHandlerMapping根据请求的URL与定义控制器Bean的name属性相匹配,这里请求为user.html,则转交给name为"/user.html"的控制Bean处理即UserController,而UserController处理后返回一个ModelAndView对象,这个ModelAndView对象集合viewResover Bean提供的信息跳转到[prefix+show+suffix]的视图,这时即为[/WEB-INF/content/show.jsp],则显示用户输入信息。
注意:这里可引用的Spring包为
commons-logging.jar
spring-beans.jar
spring-context.jar
spring-core.jar
spring-web.jar
spring-webmvc.jar
ps:本人也是初学Spring2.5,上述论述中如有错误,请批评指出.希望本文对阅读的你有帮助!!