链接:https://pan.baidu.com/s/1VD_CvupD_lcfTdWYtTA6Qw
提取码:5vr3
1. 配置流程-基于XML的配置
1.1.搭建普通Maven项目
使用插件将项目转换为web项目
无插件的可以在 File-setings里Marketplace下载
转换成功:
查看是否生成webapp目录和maven项目打包方式是否变为war
添加SpringMVC依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
要是servlet需要的包缺失导入依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
右键查看springframework关系依赖图
1.2.在web.xml配置核心控制器
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 若不设置的话 默认加载webapp 下的 springmvc-servlet.xml 名字位置固定 -->
<!--初始化参数设置 contextConfigLocation:设置读取的容器配置文件定位 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- 初始化位置 配置文件名 -->
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!--设置优先级 不懒加载-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping> <!--只有*.mvc后缀的请求才会进入springmvc-->
<servlet-name>springmvc</servlet-name>
<url-pattern>*.mvc</url-pattern>
</servlet-mapping>
</web-app>
1.3.创建一个Spring的配置文件
springmvc配置文件说明
注意:默认的Spring配置文件放在WEB-INF下,名为{servlet-name}-servlet.xml
{servlet-name}指的是,核心控制器配置的名字
如:springmvc-servlet.xml
当请求被springmvc处理时,springmvc会去默认路径下加载xxxx-servlet.xml核心配置文件
因为我在web.xml 初始化了 spring配置文件位置所以我放的是这样的
1.4.创建一个业务控制器
这个没使用注解
1.5.创建一个返回的视图页面
配置springmvc-servlet.xml
使用注解的控制类
没使用的控制类
1.6. SpringMVC的工作流程
1、客户端发送请求给前端控制器(DispatcherServlet)
2、dispatcherServlet接收到请求调用HandlerMapping处理器映射器
3、处理器映射器根据请求的url找对应的处理器,生成处理器对象(handler)返回
4、dispatchServlet将handler传入处理器适配器执行
5、处理器适配器执行handler
6、执行完成最终封装一个ModelAndView
7、将ModelAndView返回给前端控制器
8、前端控制器将请求的路径交给视图解析器进行解析
9、最终封装一个View对象给dispatcherServlet,此View对象封装了响应参数
10、JSP页面渲染数据
11、响应客户端