1. 首页
  2. 软件开发
  3. Spring MVC——请求的分发、处理器映射、处理器执行、视图解析和视图渲染等执行流程详解

Spring MVC——请求的分发、处理器映射、处理器执行、视图解析和视图渲染等执行流程详解

  • 发布于 2024-08-17
  • 0 次阅读

Spring MVC的执行流程主要包括请求的分发、处理器映射、处理器执行、视图解析和视图渲染等步骤。

  1. 请求的分发 :当客户端发送请求时,DispatcherServlet(前端控制器)会拦截请求并将其分发给对应的处理器进行处理。

  2. 处理器映射:DispatcherServlet会根据请求信息找到对应的处理器(Controller)来处理请求。

  3. 处理器执行 :处理器执行阶段会调用具体的处理器方法来处理请求,并生成相应的模型数据。

  4. 视图解析 :处理器执行完成后,DispatcherServlet会将处理器返回的模型数据传递给视图解析器(ViewResolver),解析出对应的视图。

  5. 视图渲染 :最后,视图渲染器会将模型数据填充到视图中,生成最终的响应结果返回给客户端。

代码如下:

首先,定义一个Controller类来处理请求:

@Controller
public class HelloController {
   

    @RequestMapping("/hello")
    public String hello(Model model) {
   
        model.addAttribute("message", "Hello, Spring MVC!");
        return "hello"; // 返回视图名
    }
}

然后,配置视图解析器来解析视图名称:

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
   

    @Bean
    public ViewResolver viewResolver() {
   
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }
}

最后,在WEB-INF/views目录下创建hello.jsp视图文件来展示数据:

<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
    <title>Hello Page</title>
</head>
<body>
    <h1>${message}</h1>
</body>
</html>

当访问"/hello"路径时,DispatcherServlet会将请求分发给HelloController的hello方法处理,方法中会将"Hello, Spring MVC!"存入模型数据中,然后返回视图名"hello"。视图解析器会解析"hello"为hello.jsp,最终将模型数据填充到hello.jsp中,生成最终的响应结果返回给客户端。

原文链接: https://blog.csdn.net/2401_82884096/article/details/138033913