您的位置:首页 > 编程语言 > Java开发

Spring MVC 处理htttp请求流程

2017-06-26 15:41 344 查看
1:首先客户端发送一个http请求,web服务器接受这个请求,然后web容器交给DispatcherSevlet处理。

2:DispatcherSevlet将负责将请求分发。DispatcherSevlet可以认为是spring提供的前端控制器,所有的请求都要经过他来进行统一的分发。

3:在DispatcherSevlet将请求分发给spring controller之前,需要借助于spring提供的HandleMapping定位到具体的controller。(HandleMapping是这样的一种对象,他能够完成客户请求和controller之间的映射。在structs中,这种映射是通过struts-config.xml文件完成的。spring为controller提供了若干实现,例如:BeanNameUrlHandlerMapping有,SimpleUrlHandlerMapping,CommonsPathMapHandlerMapping。)

4:spring controller将处理来自DispatcherSevlet的请求。spring的controller类似于structs的action。能够接受HttpServletRequest和HttpServletResponse。spring为controller提供了若干实现类,由于controller要为并发用户处理上述请求,因此实现controller接口时,必须保证线程安全并且可重用。controller将处理用户请求,这和structs中的action是一致的。

5:一旦controller处理完用户请求,则返回ModelAndView对象给DispatcherSevlet前端控制。ModelAndView包含了模型(model)和视图(view)。从宏观角度来看,DispatcherSevlet是整个web应用的控制器。从微观来看,controller是单个http请求的控制器。而ModelAndView是http请求过程中返回的模型和视图。

6:ModelAndView中包含了视图逻辑名与模型数据信息。DispatcherSevlet通过ViewResolver完成逻辑视图名到真实视图对象的解析工作。

7:当得到真实对象的view,DispatcherServlet就使用这个View对象对ModelAndView中的模型数据进行视图渲染。然后将渲染后的结果返回给客户。

文章转载至:http://blog.sina.com.cn/s/blog_e3734cfe0102xmsf.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: