前言:
SpringMVC是一种基于MVC架构的用于简化web应用程序开发的应用开发框架,它是spring的一个模块,与spring紧密结合,无需中间整合层来整合,它和struts2一样都是表现层框架。在web模型中,mvc是很流行的框架,通过将model、view、controller分离,减少开发,减少出错,方便组内开发人员之间的协同工作。
正文:
一。SpringMVC应用的开发步骤
1.在web.xml中定义前端控制器Dispatcherservlet
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:web/spring/spring.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
Dispatcherservlet是SpringMVC的核心入口类,负责处理分发客户端发送的请求,使用视图来最终相应客户端的请求。struts1的核心入口类是ActionServlet,struts2的核心入口类是StrutsParperAndExecuteFilter。
2.如果是POST请求,则需要开发表单提交的JSP页面,如果是GET请求,则可以跳过这一步。
3.定义处理用户请求的Handle类,通过实现Controller接口或者使用@Controller注解
4.当servlet拦截用户请求后,让servlet知道创建哪个Controller接口的实例有两种解决方案:
(1)利用xml配置文件
<!--配置Handle,映射“/hello请求”>
<bean name="/hello" class="org.fkit.controller.HelloController"/>
(2)Spring2.5之后,推荐使用注解来配置Handle
@Controller
public class DatumManagerController {}
5.编写视图资源
当Handler处理用户请求结束后,通常会返回一个ModelAndView对象,该对象中包含返回的视图名或视图名和模型,这个视图名就代表需要显示的物理视图资源。如果Handler需要把一些数据传给视图资源,就可以通过模型对象。
二。SpringMVC执行的流程?
说明:
1.用户向服务器发送请求,请求被SpringMVC的核心入口类Dispatcherservlet截获
2.Dispatcherservlet对请求的URL(统一资源定位符)进行解析,得到URI(资源标识符),根据该URI,调用HandlerMapping得到Handler的所有相关的对象,包括Handler对象以及该对象的拦截器,包装成HandlerExecutionChain对象统一返回给Dispatcherservlet
3.Dispatcherservlet根据得到的Handler,选择一个合适的HandlerAdapter,处理实际的业务逻辑
4.提取请求中的模型数据,开始执行Handler,在填充Handler的入参过程中,根据配置,spring会做一些额外的工作:
(1)消息转换 (2)数据转换 (3)数据格式化 (4)数据验证
5.Hander执行完毕之后,会向Dispatcherservlet返回一个ModerlAndView对象,该对象应该包含视图名或视图名和模型。
6.根据返回的ModelAndView,选择一个合适的ViewReslover(视图解析器)返回给Dispatcherservlet
7.ViewReslover结合model和view渲染视图
8.Dispatcherservlet将视图渲染结果返回给客户端。
结语:
深入理解springMVC的执行流程后, 对于前后端交互的流程理解会更加深入.