Spring MVC 是一个模型-视图-控制器(MVC)的Web框架,它是Spring的一部分,用于创建企业级的应用程序。它提供了一种清晰的分离业务逻辑、数据和界面的方法,简化了开发过程。
Spring MVC的核心组件包括:
- DispatcherServlet:前端控制器,用于把请求映射到对应的处理器。
- HandlerMapping:处理器映射,用于定义请求URL到具体处理器的映射。
- Controller:处理器/页面控制器,用于处理请求。
- ModelAndView:封装了视图和数据的结果,传递给视图进行渲染。
- View Resolver:视图解析器,用于解析最终的视图。
以下是一个简单的Spring MVC应用程序的例子:
- 添加依赖到
pom.xml
:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.10</version>
</dependency>
</dependencies>
- 配置
web.xml
来设置Spring MVC:
<web-app>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
- 创建
DispatcherServlet
的配置文件:dispatcher-servlet.xml
:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<context:component-scan base-package="com.example.controller" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
- 创建一个控制器类:
package com.example.controller;
@Controller
public class HelloController {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public ModelAndView hello() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("hello");
modelAndView.addObject("message", "Hello, Spring MVC!");
return modelAndView;
}
}
- 创建一个视图文件:
/WEB-INF/views/hello.jsp
<html>
<body>
<h1>${message}</h1>
</body>
</html>
以上代码创建了一个简单的Spring MVC应用程序,它定义了一个URL路由到一个控制器方法,然后返回一个包含消息的视图。这个例子展示了Spring MVC的基本使用方法,并且包括了Spring MVC的核心组件。