springMVC中视图机制简述

发布于:2025-03-27 ⋅ 阅读:(33) ⋅ 点赞:(0)

在Spring MVC中,视图机制的核心流程如下(以Thymeleaf和JSP为例):

Thymeleaf作为视图时的流程

  1. 浏览器发送请求到Web服务器。

  2. DispatcherServlet接收请求,并根据请求路径分发到对应的Controller

  3. Controller处理业务逻辑,返回一个逻辑视图名(如"home")。

  4. ThymeleafViewResolver解析逻辑视图名:

    • 根据配置(如前缀classpath:/templates/和后缀.html),将逻辑视图名转换为物理路径(如/templates/home.html)。

    • 创建ThymeleafView对象并返回。

  5. ThymeleafViewrender()方法执行:

    • 将模板(如home.html)与模型数据结合,生成HTML。

    • HTML响应返回浏览器完成渲染。


JSP作为视图时的流程

  1. 浏览器发送请求到Web服务器。

  2. DispatcherServlet接收请求,并根据请求路径分发到对应的Controller

  3. Controller处理业务逻辑,返回一个逻辑视图名(如"home")。

  4. InternalResourceViewResolver解析逻辑视图名:

    • 根据配置(如前缀/WEB-INF/views/和后缀.jsp),将逻辑视图名转换为物理路径(如/WEB-INF/views/home.jsp)。

    • 创建InternalResourceView对象并返回。

  5. InternalResourceViewrender()方法执行:

    • 将请求转发给JSP文件(如home.jsp),由Servlet容器(如Tomcat)编译JSP为Servlet,生成HTML。

    • HTML响应返回浏览器完成渲染。


关键区别

组件 Thymeleaf JSP
视图解析器 ThymeleafViewResolver InternalResourceViewResolver
视图实现类 ThymeleafView InternalResourceView
渲染方式 模板引擎直接生成HTML 请求转发到JSP,由Servlet容器处理
配置示例 前缀:classpath:/templates/,后缀:.html 前缀:/WEB-INF/views/,后缀:.jsp
依赖 需要Thymeleaf库 依赖Servlet容器(如Tomcat)

两种技术均通过逻辑视图名→物理视图名→渲染的流程实现视图解析,但底层实现依赖不同的组件和机制。