目录
- 什么是 SpringMVC
- SpringMVC的工作流程
- SpringMVC中的核心组件
什么是 SpringMVC
SpringMVC 是一个 Web 框架,一个基于 Java 实现了 MVC 风格的轻量级 Web 框架。
它把复杂的 Web 应用分离成 Model、View、Controller 三个逻辑清晰的部分,实现了解耦,从而简化开发、减少出错、便于合作。
SpringMVC的工作流程
SpringMVC 的详细工作流程如下图所示:
上图中请求处理的详细流程如下:
- 客户端发送的请求会被 DispatcherServlet 收到。
- DispatcherServlet 收到请求后,去找 HandlerMapping 问该用哪个 Handler(HandlerMapping 根据请求的 url 映射相应的 Handler)。
- HandlerMapping 找到合适的 HandlerExecutionChain(包含 Handler 和 interceptors ),并返回给 DispatcherServlet 。
- DispatcherServlet 让 HandlerAdapter 去处理找到的 Handler 。
- HandlerAdapter 调用 Handler,以处理业务逻辑。
- Handler 执行完成会产生一个 ModelAndView,其中的 Model 里面装的是要返回的数据对象,而 View 还只是个逻辑上的 View (只是个 View 的名字)。
- HandlerAdapter 将 Handler 返回的 ModelAndView 再返回给 DispatcherServlet 。
- DispatcherServlet 将 ModelAndView 发给 ViewResolver 进行解析(逻辑 View 只是个名字,解析的过程其实就是把名字拼接上前后缀,变成一个文件路径,从而找到具体的 View 文件),从而根据逻辑 View 找到实际的 View 。
- ViewResolver 把实际的 View 返回给 DispatcherServlet 。
- DispatcherServlet 将实际的 View 进行渲染。
- DispatcherServlet 得到渲染后的 View。
- DispatcherServlet 响应客户端的请求。
SpringMVC中的核心组件
DispatcherServlet:前端控制器,SpringMVC 的核心组件,用于统一处理请求和响应,并协调各个组件的工作。
HandlerMapping:处理器映射器,根据要干的活找到需要的工具(Handler),根据请求的 url、method 等信息找到合适的处理器执行链(HandlerExecutionChain),其中包含处理器(Handler)与拦截器们(interceptors)。
HandlerAdapter:处理器适配器,使用工具(Handler)干活的人,根据映射器找到的处理器信息,按照特定的规则去执行相关的处理器。因为处理器(Handler)的类型是 Object
类型,SpringMVC 无法直接执行,需要由适配器来实现处理器(Handler)的具体执行方式。
Handler:处理器,用来干活的工具,也就是由开发人员编写的 Controller,用于对用户请求进行具体的处理
ViewResolver:视图解析器,把逻辑视图解析成物理视图(其实就是把封装在 ModelAndView 中的 View 名字连接上前后缀变成具体 View 的路径,进而得到真正的 View 对象,即物理 View),并将其返回给前端控制器。
View:视图,渲染并返回视图。
注:几大核心组件中,只有 Handler 和 View 是需要开发人员自己编写的,其他组件都是由 Spring 框架提供的。
更多推荐
SpringMVC工作流程与核心组件
发布评论