SpringMVC请求处理流程
流程图
核心组件
1.DispatcherServlet 前端控制器
org.springframework.web.servlet.DispatcherServlet
,继承了HttpServlet
springMvc中的前端控制器 (Front controller)
用来接收请求,转发请求,响应结果
减少了其他组件之间的耦合度
处理请求时,会调用doService方法
protected void doService(HttpServletRequest request, HttpServletResponse response) throws Exception {
}
2.HandlerMapping 处理器映射器
根据用户请求的URL,返回给DispatcherServlet一个处理器执行链(里面封装了拦截器和处理器),这样前端控制器就可以知道将讲求发送到哪
3.HandlerExecutionChain 处理器执行链
4.HandlerAdapter 处理器适配器
将处理器包装成了适配器,可以支持多种类型的处理器(是适配器模式的应用)
经过HandlerMapping处理找到了Handler处理器,由适配器来调用指定的处理器去执行
5.Handler 处理器 = Controller
就是代码中编写的Controller类,对请求进行逻辑处理,将响应的数据封装到ModelAndView中,返回ModelAndView
6.HandlerInterceptor 处理器拦截器
进入前端控制器之后,进入控制器(Handler)之前,执行拦截器
使用拦截器可以实现:
- 日志管理
- 权限控制
7. ModelAndView
封装了model和view两个对象
- 设置定向地址
- 存储响应的结果数据
- 将数据传递给View
其中的model是LinkedHashMap
对象
8.ViewResolver 视图解析器
通过ModelAndView中的View数据,将逻辑视图解析为真正的视图