- 整个过程开始于客户端发送了一个HTTP请求,Web服务器收到这个请求,如果匹配DispatcherServlet 配置的访问路径,就会交由DispatcherServlet 去处理。
- DispatcherServlet 收到这个请求后,会根据请求信息(请求URL、请求头、请求参数cookie 等...) 及 HandlerMapping 的配置找到处理请求的处理器(Handler), 可将 HandlerMapping 看做是一个路由控制器,Handler就是目标主机,值得注意的是 SpringMVC 并没有 Handler 这个接口,也就是说每一个 Object 就是一个Handler。
- DispatcherServlet通过HandlerMapper找到对应的Handler后,通过 HandlerAdapter 对Handler 进行封装,再以统一的适配器接口调用对应的Handler,HandlerAdapter 顾名思义是一个适配器,是SpringMVC的框架级接口,它以统一接口的方式对各种Handler进行方法调用。
- 处理器完成业务逻辑后,会返回一个ModelAndView给DispatcherServlet,ModelAndView包含了一个逻辑视图名和模型数据信息。
- ModelAndView中的 "逻辑视图" 并不是一个真正的视图对象,DispatcherServlet借助ViewResolve 将 逻辑视图解析为一个真正的视图对象。
- 当获得真正的View视图对象后,DispatcherServlet 会对 ModelAndView 中模型数据进行渲染
- 最终客户端收到的响应可能是 html页面 、xml或JSON串 ,还有可能是一张图片、一个视频等各种媒体信息。
SpringMVC的执行流程
最新推荐文章于 2025-06-04 23:22:48 发布