文章目录
- 一、Spring MVC
- 二、基于XML配置与注解的方式使用Spring MVC
-
- 1、创建Spring项目【SpringMVCDemo01】
- 2、在pom文件里添加相关依赖
- 3、给项目添加Web功能
- 4、在WEB-INF里创建views子目录
- 5、登录页面 - login.jsp
- 6、登录成功页面 - success.jsp
- 7、登录失败页面 - failure.jsp
- 8、在main/java下创建net.tp.spring.controller包
- 9、创建登录控制器 - LoginController
- 10、在resources里创建mvc包
- 11、创建Spring配置文件 - spring-config.xml
- 12、创建Spring MVC配置文件 - spring-mvc-config.xml
- 13、在web.xml里加载Spring配置文件与Spring MVC配置文件
- 14、配置Tomcat服务器
- 15、输出目录没有项目运行所需的jar包
- 三、运行效果
一、Spring MVC
- web.xml 的加载顺序是:context-param -> listener -> filter -> interceptor->servlet,所以SSH先struts再spring然后hibernate servlet的filter(过滤器),spring的interceptor(拦截器)
1、拦截器与过滤器的区别:
- 拦截器是基于java的反射机制的,而过滤器是基于函数回调。
- 拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
- 拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
- 拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
- 在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次
2、运行原理
-
Http请求:客户端请求提交到DispatcherServlet。
-
寻找处理器:由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller。
-
调用处理器:DispatcherServlet将请求提交到Controller。
-
调用业务处理和返回结果:Controller调用业务逻辑处理后,返回ModelAndView。
-
处理视图映射并返回模型: DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图。
-
Http响应:视图负责将结果显示到客户端。
二、基于XML配置与注解的方式使用Spring MVC
1、创建Spring项目【SpringMVCDemo01】
- 初始化
2、在pom文件里添加相关依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.tp.spring</groupId>
<artifactId>SpringMVCDemo01</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<!-- spring.version -->
<spring.version>5.3.4</spring.version>
</properties>
<dependencies>
<!--Spring核心-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<!--Spring Bean-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<!--Spring容器-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<!--Spring测试-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!--Spring Web-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<!--Spring MVC-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!--JSP标准标签库-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId></