秋招Day17 - Spring - MVC

发布于:2025-07-25 ⋅ 阅读:(24) ⋅ 点赞:(0)

Spring MVC有哪些核心组件?

  • DispatcherServlet前端控制器,所有HTTP请求首先经过它,分发请求到正确的处理器,并与其他组件协调
  • HandlerMapping:维护URL和处理器的映射关系
  • Handler:处理器,完成具体的业务逻辑,相当于 Servlet 或 Action。
  • HandlerInterceptor处理器拦截器,是一个接口,如果需要完成一些拦截处理,可以实现该接口。
  • HandlerExecutionChain:处理器执行链,包括一系列处理器拦截器和其应用的Handler
  • HandlerAdapter:处理器适配器,Handler执行业务方法前,要对请求的数据进行一系列操作,比如将表单数据封装到Java Bean,表单数据的验证,数据类型的转换,这些操作都由适配器进行,HandlerAdapter 确保 DispatcherServlet 可以以统一的方式调用不同类型的处理器,无需关心具体的执行细节。
  • ModelAndView:装载了模型数据和视图信息,作为 Handler 的处理结果,返回给 DispatcherServlet。
  • ViewResolver:视图解析器,DispatcheServlet 通过它将逻辑视图解析为物理视图,最终将渲染结果响应给客户端。

Spring MVC的工作流程

DispatcherServlet拦截请求,通过HandlerMapping获取执行链,然后通过HandlerAdapter调用控制器执行业务逻辑,DispatcherServlet得到ModelAndView类型的结果,通过视图解析器转化为物理视图,渲染后返回给前端

Spring MVC Restful风格的接口的流程是什么样的 

现在都是前后端分离,后台一般不用处理视图,不需要视图解析。

Restful接口,响应数据的类型是json,这就用到了一个常用注解:@ResponseBody

Controller处理器被封装成了ServletInvocableHandlerMethod,HandlerAdapter 处理器适配器去执行 invokeAndHandle 方法,完成对 Controller 的请求处理

HandlerAdapter 执行完对 Controller 的请求,会调用一个方法返回值处理器去处理返回值,主要的过程是:创建一个HTTPResponse的实例,然后将返回值写入这个实例的OutputStream中,在写入过程中对返回值进行Json序列化

执行完请求后,返回的 ModealAndView 为 null,而最终返回的是Json格式的数据


网站公告

今日签到

点亮在社区的每一天
去签到