1、创建一个maven项目

  • 修改打包方式为war
  • 并添加依赖

    1、引入依赖

    1. <dependencies>
    2. <!-- SpringMVC -->
    3. <dependency>
    4. <groupId>org.springframework</groupId>
    5. <artifactId>spring-webmvc</artifactId>
    6. <version>5.3.1</version>
    7. </dependency>
    8. <!-- 日志 -->
    9. <dependency>
    10. <groupId>ch.qos.logback</groupId>
    11. <artifactId>logback-classic</artifactId>
    12. <version>1.2.3</version>
    13. </dependency>
    14. <!-- ServletAPI -->
    15. <dependency>
    16. <groupId>javax.servlet</groupId>
    17. <artifactId>javax.servlet-api</artifactId>
    18. <version>3.1.0</version>
    19. <scope>provided</scope>
    20. </dependency>
    21. <!-- Spring5和Thymeleaf整合包 -->
    22. <dependency>
    23. <groupId>org.thymeleaf</groupId>
    24. <artifactId>thymeleaf-spring5</artifactId>
    25. <version>3.0.12.RELEASE</version>
    26. </dependency>
    27. </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文件夹

      image.png

      2、创建web.xml

      image.pngimage.png
  • 需要修改路径在前面创建的webapp下

image.png
image.png

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

    image.png
    image.png

    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
image.png

<!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服务器

image.png
image.png

2、选择导包方式

  • war:是将WEB工程用包的形式上传到服务器
  • war exploded:是将WEB工程以当前文件夹的位置关系上传到服务器

image.png

3、修改更新和失去焦点的时候的操作

  • on Update action(当更新操作的时候) :Redeploy重新部署
  • on frame deactivation(当idea失去焦点的时候):Update classes and resources(更新class文件和资源)

image.png