Spring 面试题, Spring MVC 具体的工作原理?
Spring 面试题, Spring MVC 具体的工作原理?
QA
Step 1
Q:: Spring MVC 的工作原理是什么?
A:: Spring MVC 是基于模型-视图-控制器(Model-View-Controller)设计模式的框架。其核心流程是:1. 客户端发送请求到前端控制器 DispatcherServlet;2. DispatcherServlet 解析请求并调用 HandlerMapping 查找合适的处理器;3. 找到处理器(Controller)后,DispatcherServlet 将请求转发给对应的处理器进行处理;4. 处理器执行完逻辑后,会返回一个 ModelAndView 对象;5. DispatcherServlet 根据返回的 ModelAndView,通过 ViewResolver 解析得到具体的 View 视图;6.
最后,DispatcherServlet 将模型数据填充到视图中,并将视图返回给客户端。
Step 2
Q:: Spring MVC 如何处理 GET 和 POST 请求?
A:: Spring MVC 使用 @RequestMapping 注解来处理 GET 和 POST 请求。通过指定 method 属性为 RequestMethod.GET 或 RequestMethod.POST 来明确该方法只处理某种类型的请求。例如,@RequestMapping(value = "/example", method = RequestMethod.GET) 仅处理 GET 请求,@RequestMapping(value = "/example", method = RequestMethod.POST)
仅处理 POST 请求。如果不指定 method 属性,则该方法会处理所有类型的请求。
Step 3
Q:: Spring MVC 中的拦截器(Interceptor)是什么?
A:: Spring MVC 的拦截器类似于 Servlet 中的过滤器(Filter),用于在请求到达 Controller 前或响应返回给客户端前进行预处理或后处理。拦截器可以实现 HandlerInterceptor 接口,包含 preHandle、postHandle 和 afterCompletion 三个方法。preHandle 在请求处理前执行,可以用来做身份验证或日志记录;postHandle 在处理器执行后,但在视图渲染前执行,可以用来修改 ModelAndView;afterCompletion 在请求处理完成后执行,通常用于资源清理。