一、SpringMVC概述
Spring MVC是由Spring官方提供的基于MVC设计理念的web框架。
Spring MVC是基于Servlet封装的用于实现MVC控制的框架,实现前端、服务端的交互。
1.1 SpringMVC优势
- 严格遵守了分层思想;
- 采用了松耦合、插件式结构,相比较于自己封装的BaseServlet以及其他的一些MVC框架,更加灵活、更具扩展性;
- SpringMVC是基于Spring的扩展,提供了一套完善的MVC注解;
- SpringMVC在数据绑定、视图解析都提供了多种处理方式,可灵活配置;
- SpringMVC对RESTFUL URL设计风格提供了良好的支持。
1.2 SpringMVC工作原理
- 接受并解析请求;
- 处理请求;
- 数据渲染、响应请求;
二、SpringMVC框架部署
2.1 基于Maven创建一个web工程
2.2 添加SpringMVC依赖
- spring-context
- aspects
- jdbc
- web
- webmvc
- junit
<properties>
<spring.version>5.3.2</spring.version> <!--统一定义版本-->
<maven.compiler.source>15</maven.compiler.source>
<maven.compiler.target>15</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- junit测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
2.3 创建SpringMVC配置文件
- 在resource目录下创建名为spring-servlet.xml的文件
- 添加MVC命名空间
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:annotation-config/>
<context:component-scan base-package="com.xsbc"/>
<!-- 声明MVC使用注解驱动 -->
<mvc:annotation-driven />
</beans>
2.4 在web.xml中配置SpringMVC的前端控制器
SpringMVC提供了一个名为DispatcherServlet的类(SpringMVC*处理器-前端控制器),用于拦截用户请求交由SpringMVC处理
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
三、SpringMVC框架使用
在SpringMVC中,将接受用户请求、处理用户请求的类称为Controller(控制器)
3.1 创建控制器
- 创建一个名为‘com.xsbc.controllers’的包(此包需在Spring注解扫描的范围内)
- 创建一个类(无需做任何继承和实现)
- 在类上添加‘@Controller’注解,声明此类为SpringMVC的控制器
- 在类上添加‘@RequestMapping("url")’
@Controller
@RequestMapping("/book")
public class BookController {
}