Spring MVC的执行流程主要包括请求的分发、处理器映射、处理器执行、视图解析和视图渲染等步骤。
-
请求的分发 :当客户端发送请求时,
DispatcherServlet(前端控制器)会拦截请求并将其分发给对应的处理器进行处理。 -
处理器映射:DispatcherServlet会根据请求信息找到对应的处理器(Controller)来处理请求。
-
处理器执行 :处理器执行阶段会调用具体的
处理器方法来处理请求,并生成相应的模型数据。 -
视图解析 :处理器执行完成后,DispatcherServlet会将处理器返回的模型数据传递给
视图解析器(ViewResolver),解析出对应的视图。 -
视图渲染 :最后,
视图渲染器会将模型数据填充到视图中,生成最终的响应结果返回给客户端。
代码如下:
首先,定义一个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