Spring 面试题, Spring MVC 中的视图解析器有什么作用?
Spring 面试题, Spring MVC 中的视图解析器有什么作用?
QA
Step 1
Q:: Spring MVC 中的视图解析器有什么作用?
A:: 视图解析器在 Spring MVC 框架中负责将控制器返回的逻辑视图名解析为具体的视图。通常,控制器处理完请求后会返回一个逻辑视图名,视图解析器将这个逻辑视图名转换为实际的视图对象,例如 JSP 页面、Thymeleaf 模板等。视图解析器还可以设置前缀和后缀,从而简化视图名称的管理,避免在控制器中硬编码视图的完整路径。
Step 2
Q:: Spring MVC 中的 DispatcherServlet 是什么?有什么作用?
A:: DispatcherServlet 是 Spring MVC 的核心前端控制器,负责将 HTTP 请求路由到相应的处理程序,并处理整个请求处理流程。它协调其他组件如处理器映射器、处理器适配器、视图解析器等,确保请求得到处理并返回正确的视图。DispatcherServlet 的存在简化了请求处理逻辑,促进了组件的解耦和职责分离。
Step 3
Q:: 如何在 Spring MVC 中配置多个视图解析器?
A:: 在 Spring MVC 中,您可以配置多个视图解析器,并且可以设置它们的顺序。通常,Spring 会根据配置的顺序依次尝试每个视图解析器,直到找到合适的视图为止。这允许在一个应用程序中使用多种视图技术,例如 JSP 和 Thymeleaf。可以通过 order
属性设置视图解析器的优先级,值越小优先级越高。
Step 4
Q:: Spring MVC 如何处理请求的?流程是怎样的?
A:: Spring MVC 的请求处理流程大致如下:
1.
客户端发出请求,DispatcherServlet 捕获请求。
2.
DispatcherServlet 调用 HandlerMapping 查找与请求 URI 匹配的处理器。
3.
处理器(通常是控制器)处理请求并返回 ModelAndView 对象。
4.
DispatcherServlet 通过视图解析器将逻辑视图名转换为实际视图对象。
5.
DispatcherServlet 将处理结果传递给视图对象,视图对象最终生成响应内容返回给客户端。