Spring MVC 课时一
Spring MVC(Model-View-Controller)是Spring框架的一部分,用于构建基于Java的Web应用程序。它采用经典的MVC模式,将应用程序的不同方面(输入逻辑、业务逻辑和UI逻辑)分离开来,从而提高代码可读性和可维护性。
Spring MVC的基本概念
Controller(控制器):
- 处理用户请求。
- 协作模型和视图以生成响应。
- 通过
@Controller
注解定义类,将其作为控制器。 - 使用
@RequestMapping
注解映射请求URL路径。
Model(模型):
- 承载应用程序数据。
- 通常是由POJO(Plain Old Java Object)组成。
- 数据可以通过
Model
、ModelMap
或ModelAndView
传递。
View(视图):
- 提供用户界面。
- 展示模型数据。
- 常用的视图技术包括JSP、Thymeleaf、Freemarker等。
运行流程
接收请求:客户端发送请求到服务器,Spring DispatcherServlet捕获这个请求。
处理请求:DispatcherServlet根据请求URL寻找合适的处理器(Handler),通常是一个被
@Controller
注解的类。调用控制器:控制器中的方法被调用来处理请求,更新模型数据。
返回视图:控制器返回视图名称和模型数据。
视图解析器:视图名称通过视图解析器(ViewResolver)解析出具体的视图文件(例如JSP文件)。
渲染视图:视图渲染将模型数据融入视图并生成最终的HTML响应。
响应客户:DispatcherServlet将生成的响应返回给客户端。
开始Spring MVC工程
创建项目:
- 使用Spring Initializr或Maven创建一个Spring项目。
- 添加必要的依赖,特别是
spring-webmvc
。
配置DispatcherServlet:
- 在
web.xml
(如果使用XML配置)中配置DispatcherServlet,或使用Java配置类。
- 在
创建Controller:
@Controller
public class HomeController {
@RequestMapping("/")
public String home(Model model) {
model.addAttribute("message", "Welcome to Spring MVC!");
return "home"; // 返回视图名称
}
}
创建视图:
- 在
src/main/webapp/WEB-INF/views
目录下创建JSP或其他视图文件,如home.jsp
。
- 在
配置视图解析器:
- 配置视图解析器来解释逻辑视图名称。
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
}
通过以上步骤,你就可以创建一个简单的Spring MVC应用程序。通过理解MVC模式,开发者能够更好地结构化代码并提高开发效率。