SpringMVC 处理请求流程
1.用户发送请求至前端控制器DispatcherServlet
2.DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3.处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
4.DispatcherServlet通过处理器适配器调用controller
5.执行处理器Controller
6.Controller执行完成返回ModelAndView
7.处理器适配器调用处理器将controller执行结果ModelAndView返回给DispatcherServlet
8.DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9.视图解析器解析后返回具体View
10.DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。
11.DispatcherServlet响应用户
下面我们对上面出现的一些组件进行解释:
|
1、前端控制器DispatcherServlet(不需要程序员开发)。 作用:接收请求,响应结果,相当于转发器,中央处理器。有了DispatcherServlet减少了其它组件之间的耦合度。 2、处理器映射器HandlerMapping(不需要程序员开发)。 作用:根据请求的url查找Handler。 3、处理器适配器HandlerAdapter(不需要程序员开发)。 作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler。 4、处理器Handler(需要程序员开发)。 注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler 5、视图解析器ViewResolver(不需要程序员开发)。 作用:进行视图解析,根据逻辑视图名解析成真正的视图(view) 6、视图View(需要程序员开发jsp)。 注意:View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf…) ps:不需要程序员开发的,需要程序员自己做一下配置即可。 |
可以总结出:需要我们开发的工作只有处理器 Handler 的编写以及视图比如JSP页面的编写。可能你还对诸如前端控制器、处理器映射器等等名词不太理解,那么接下来我们对其进行详细的介绍。
handlerMapping的作用
handlerMapping根据用户请求找到执行该请求的controller。
handlerMapping的找到controller过程
1.根据配置文件对url到controller的映射进行注册
2.根据具体的url请求找到执行该请求的controller