一、SpringMVC概述
Spring MVC 是由Spring官方提供的基于MVC设计理念的web框架。
SpringMVC是基于Servlet封装的用于实现MVC控制的框架,实现前端和服务端的交互。
1.1 SpringMVC优势
严格遵守了MVC分层思想
采用了松耦合、插件式结构;相比较于我们封装的BaseServlet以及其他的一些MVC框架来说更灵活、更具扩展性
SpringMVC是基于Spring的扩展、提供了一套完善的MVC注解
SpringMVC在数据绑定、视图解析都提供了多种处理方式,可灵活配置
SpringMVC对RESTful URL设计方法提供了良好的支持
1.2 SpringMVC本质工作
- 接收并解析请求
- 处理请求
- 数据渲染、响应请求
二、SpringMVC框架部署
2.1 基于Maven创建一个web工程
- SpringMVC是一个web框架,应用在web工程中
2.2 添加SpringMVC依赖
- spring-context
- spring-aspects
- spring-jdbc
- spring-test
- spring-web
- spring-webmvc
<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>
2.3 创建SpringMVC配置文件
- 在resources目录下创建名为
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">
<!--IoC采用注解配置-->
<context:annotation-config/>
<context:component-scan base-package="com.xinhua"/>
<!-- 声明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_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>
三、SpringMVC框架使用
在SpringMVC中,我们把接收用户请求、处理用户请求的类称之为Controlelr(控制器)
3.1 创建控制器
3.1.1 创建控制器类
创建一个名为
com.xinhua.controllers
的包(包需要在Spring注解扫描的范围内)创建一个类(无需做任何的继承和实现)
在类上添加
@Controller
注解声明此类为SpringMVC的控制器在类上添加
@RequestMapping("url")
声明此控制器类的请求url(可以省略)
@Controller
@RequestMapping("/book")
public class BookController {
}
3.1.2 在控制器类中定义处理请求的方法
- 在一个控制器类中可以定于多个方法处理不同的请求
- 在每个方法上添加
@RequestMapping("url")
用于声明当前方法请求的url
@Controller
@RequestMapping("/book")
public class BookController {
@RequestMapping("/add")
public void addBook(){
System.out.println("---book akdd");
}
@RequestMapping("/list")
public void listBooks(){
System.out.println("---book list");
}
}
3.1.3 访问
http://localhost:8080/springmvc_demo2/book/add
http://localhost:8080/springmvc_demo2/book/list
3.2 静态资源配置
静态资源:就是项目中的HTML、css、js、图片、字体等
3.2.1 /* 和 / 的区别
- /* 拦截所有的HTTP请求,包括.jsp的请求,都做为控制器类的请求路径来处理
- / 拦截所有的HTTP请求,但不包括.jsp的请求,不会放行静态资源的请求(html/css/js/图片)
3.2.2 静态资源放行配置
- 在springMVC的配置文件,添加如下静态资源放行的配置
<!--配置静态资源放行-->
<mvc:resources mapping="/css/**" location="/css/"/>
<mvc:resources mapping="/js/**" location="/js/"/>
<mvc:resources mapping="/imgs/**" location="/imgs/"/>
<mvc:resources mapping="/pages/**" location="/pages/"/>
3.3 前端提交数据到控制器
3.3.1 表单提交
表单提交:输入框需要提供name属性,SpringMVC控制器是通过name属性取值的
<body> <h3>添加图书</h3> <form action="book/add" method="post"> <p>图书名称:<input type="text"/></p> <p>图书作者:<input type="text"/></p> <p>图书价格:<input type="text"/></p> <p><input type="submit" value="提交"/></p> </form> </body>
3.3.2 URL提交
URL提交:
<a href="book/add?bookName=Java">URL提交</a>
本文含有隐藏内容,请 开通VIP 后查看