1、创建一个maven项目
- 修改打包方式为war
-
1、引入依赖
<dependencies>
<!-- SpringMVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.1</version>
</dependency>
<!-- 日志 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<!-- ServletAPI -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- Spring5和Thymeleaf整合包 -->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.0.12.RELEASE</version>
</dependency>
</dependencies>
2、scope解析
- Compile: 编泽依赖范围.如果没有指定,就会默认使用该依赖范围。比如spring-core依赖,在编译、测试、运行的时候都需要使用该依赖。
- test: 比如JUnit的依赖,只有在测试代码的时候使用;
- provided:以提供依赖范围。使用此依赖范围的Maven依赖,对于编译和测试的classpath有效,但在运行时无效。比如servlet-api,编译和测试项目的时候需要用到该依赖,但在运行项目的时候,由于容器已经提供,就不需要Maven重复的引入一遍。
- runtime:运行时依赖范围。使用此依赖范围的Maven依赖,对于测试和运行classpath有效,但在编译主代码时无效。比如JDBC驱动的实现,项目主代码编译的时候,只需要JDK提供的JDBC接口就可以,但是在执行测试或者运行项目的时候才需要实现实现JDBC接口的具体JDBC驱动。
- import:scope=import,type=pom表示在此pom中引入spring-boot-dependencies的pom的所有内容,注意只能在dependencyManagement中使用。
- system:系统依赖范围。该依赖与三种classpath的关系,和provided依赖范围完全一致。只是,使用system范围依赖时,需要指定systemPath元素显示地指定依赖文件的路径。由于此依赖不是Maven仓库解析的,而且往往与本机系统绑定,可能造成构建的不可遗址,因此不建议使用。systemPath元素可以引用环境变量,
3、默认配置web.xml
1、创建webapp文件夹
2、创建web.xml
需要修改路径在前面创建的webapp下
3、配置web.xml
1、配置DispatcherServlet
/ 匹配除了jsp以外的请求/* 匹配所有请求<servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <!-- 设置springMVC的核心控制器所能处理的请求的请求路径 /所匹配的请求可以是/login或.html或.js或.css方式的请求路径 但是/不能匹配.jsp请求路径的请求 --> <url-pattern>/</url-pattern> </servlet-mapping>
4、扩展配置web.xml
<?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> <!--配置SpringMVC配置文件的位置和名称--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springMVC.xml</param-value> </init-param> <!--将前端控制器DispatcherServlet的初始化时间提前到服务器启动时--> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <!-- 设置springMVC的核心控制器所能处理的请求的请求路径 /所匹配的请求可以是/login或.html或.js或.css方式的请求路径 但是/不能匹配.jsp请求路径的请求 --> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
5、创建springMVC.xml文件
6、配置SpringMVC.xml内容
以下都是spring的相关配置了,只是引入了MVC的场景 ```xml <?xml version=”1.0” encoding=”UTF-8”?>
<a name="UQ7p9"></a>
# 2、控制请求器
<a name="AzSu9"></a>
## 1、创建controller
```java
@Controller
public class HelloWorld {
@GetMapping("/")
public String index(Model model){
model.addAttribute("msg","哈哈哈您好");
return "index";
}
}
2、创建index.html并且使用thyealef视图模板来使用
在WEB-INF下面创建templates
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org" >
<head>
<meta charset="UTF-8">
<title>这是一个首页</title>
</head>
<body>
<div>这是首页 [[${msg}]]</div>
</body>
</html>
3、配置tomcat
1、添加tomcat服务器
2、选择导包方式
- war:是将WEB工程用包的形式上传到服务器
- war exploded:是将WEB工程以当前文件夹的位置关系上传到服务器
3、修改更新和失去焦点的时候的操作
- on Update action(当更新操作的时候) :Redeploy重新部署
- on frame deactivation(当idea失去焦点的时候):Update classes and resources(更新class文件和资源)