SpringMVC简介与快速入门

本文最后更新于:1 年前

Spring MVC 是由Spring官方提供的基于MVC设计理念的web框架。

SpringMVC是基于Servlet封装的用于实现MVC控制的框架,实现前端和服务端的交互。

SpringMVC本质工作:接收并解析请求,处理请求,数据渲染、响应请求。

SpringMVC概述

Spring MVC 是由Spring官方提供的基于MVC设计理念的web框架,是基于Servlet封装的用于实现MVC控制的框架,实现前端和服务端的交互。

SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 中。

SpringMVC 已经成为目前最主流的MVC框架之一,并且随着Spring3.0 的发布,全面超越 Struts2,成为最优秀的 MVC 框架。它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持 RESTful 编程风格的请求。

SpringMVC优势

  • 严格遵守了MVC分层思想;

  • 采用了松耦合、插件式结构;相比较于我们封装的BaseServlet以及其他的一些MVC框架来说更灵活、更具扩展性;

  • SpringMVC是基于Spring的扩展、提供了一套完善的MVC注解;

  • SpringMVC在数据绑定、视图解析都提供了多种处理方式,可灵活配置;

  • SpringMVC对RESTful URL设计方法提供了良好的支持。

SpringMVC本质工作

  • 接收并解析请求
  • 处理请求
  • 数据渲染、响应请求

SpringMVC开发步骤

需求:客户端发起请求,服务器端接收请求,执行逻辑并进行视图跳转。

开发步骤:

  1. 导入SpringMVC相关坐标
  2. 配置SpringMVC核心控制器DispathcerServlet
  3. 创建Controller类和视图页面
  4. 使用注解配置Controller类中业务方法的映射地址
  5. 配置SpringMVC核心文件 spring-mvc.xml
  6. 客户端发起请求测试

SpringMVC入门步骤

案例一

1. 基于Maven创建一个web工程

SpringMVC是一个web框架,应用在web工程中。

2. 添加SpringMVC依赖

  • spring-context
  • spring-aspects
  • spring-jdbc
  • spring-test
  • spring-web
  • spring-webmvc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<properties>
<spring.version>5.2.13.RELEASE</spring.version>
</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-test</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>

</dependencies>

3. 创建SpringMVC配置文件

  1. 在resources目录下创建名为spring-servlet.xml的文件;
  2. 添加MVC命名空间。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?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">
<!--IoC采用注解配置-->
<context:annotation-config/>
<context:component-scan base-package="cc.gaojie"/>

<!-- 声明MVC使用注解驱动 -->
<mvc:annotation-driven/>

</beans>

4. 在web.xml中配置SpringMVC的前端控制器

SpringMVC提供了一个名为DispatcherServlet的类(SpringMVC前端控制器),用于拦截用户请求交由SpringMVC处理。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?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_3_1.xsd"
version="3.1">

<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>

5. 创建控制器

在SpringMVC中,我们把接收用户请求、处理用户请求的类称之为Controlelr(控制器)。

1. 创建控制器类

  1. 创建一个名为cc.gaojie.controllers的包(包需要在Spring注解扫描的范围内);

  2. 创建一个类(无需做任何的继承和实现);

  3. 在类上添加@Controller注解声明此类为SpringMVC的控制器;

  4. 在类上添加@RequestMapping("url")声明此控制器类的请求url(可以省略)。

1
2
3
4
5
@Controller
@RequestMapping("/book")
public class BookController {

}

2. 在控制器类中定义处理请求的方法

  • 在一个控制器类中可以定于多个方法处理不同的请求。
  • 在每个方法上添加@RequestMapping("url")用于声明当前方法请求的url。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Controller
@RequestMapping("/book")
public class BookServlet {

@RequestMapping("/add")
public void addBook(){
System.out.println("------>Book Add !");
}

@RequestMapping("/list")
public void listBooks(){
System.out.println("------>Book List!");
}
}

6. 客户端发起请求测试

案例二

1. 导入Spring和SpringMVC的坐标

1
2
3
4
5
6
7
8
9
10
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.13.RELEASE</version>
</dependency>

<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.13.RELEASE</version>
</dependency>

2. 配置SpringMVC核心控制器DispathcerServlet

1
2
3
4
5
6
7
8
9
10
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--服务器启动时就加载配置对象(默认访问时加载)-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

3. 创建Controller类和视图页面

1
2
3
4
5
6
7
public class UserController {

public String sava() {
System.out.println("Controller save running……");
return "success.jsp";
}
}
1
2
3
4
5
6
7
8
9
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>Hello SpringMVC!</h1>
</body>
</html>

4. 使用注解配置Controller类中业务方法的映射地址

1
2
3
4
5
6
7
8
9
@Controller     //放进Spring容器
public class UserController {

@RequestMapping("/quick") //标注映射关系
public String sava() {
System.out.println("Controller save running……");
return "success.jsp";
}
}

5. 配置SpringMVC核心文件 spring-mvc.xml

1
2
3
4
5
6
7
8
9
10
11
<?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"
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">

<!--Controller的组件扫描-->
<context:component-scan base-package="cc.gaojie.controller"/>

</beans>

6. 客户端发起请求测试

SpringMVC流程图示

开发步骤

  1. 导入SpringMVC相关坐标
  2. 配置SpringMVC核心控制器DispathcerServlet
  3. 创建Controller类和视图页面
  4. 使用注解配置Controller类中业务方法的映射地址
  5. 配置SpringMVC核心文件 spring-mvc.xml
  6. 客户端发起请求测试

代码分析

流程图示


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!