开发环境

IDE:IDEA 2019.3.2

构建常用工具:maven3.5.4

网络服务器:tomcat 9.0.30

Spring版本信息:5.3.1

创建maven工程项目

【SpringMVC】SpringMVC构筑框架插图

【SpringMVC】SpringMVC构筑框架插图1

再加上装包方式:war
【SpringMVC】SpringMVC构筑框架插图2

引入借助

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

配置web.xml

【SpringMVC】SpringMVC构筑框架插图3

【SpringMVC】SpringMVC构筑框架插图4

配置SpringMVC的前边控制器,对电脑上电脑浏览器消息推送的规定统一进行处理

可依据Init-param标志设置SpringMVC自然环境自变量的详细位置和名称,依据load-on-startup标志设置SpringMVC前边控制器DispatcherServlet的重设時间

<servlet>
    <servlet-name>springMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 依据校准关键主要参数特殊SpringMVC系统变量的详细位置和名称 -->
    <init-param>
        <!-- contextConfigLocation为标值 -->
        <param-name>contextConfigLocation</param-name>
        <!-- 运用classpath:说明从类方式检索系统变量,例如maven工程项目中的src/main/resources -->
        <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>

\<url-pattern>标志中运用//*的区别:

/所配搭的规定可以 是/login.html.js.css方式的规定方式,但是/不能匹配.jsp规定方式的规定

因此就可以避免在访问jsp网页页面网页页面时,该申请办理被DispatcherServlet处理,从而找不到相匹配的网站网页页面

/*则能够配搭所有规定,例如在应使用过滤设备时,若务必对所有规定进行过滤,就需要运用\*的撰写

创建springMVC的系统变量

src/main/resources文档文件目录中创建springmvc.xml系统变量

【SpringMVC】SpringMVC构筑框架插图5

?xml version="1.0" encoding="UTF-8"?>
<Beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       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">
<!-- 自动式扫描机包 -->
<context:component-scan base-package="com.atguigu.mvc.controller"/>

<!-- 配置Thymeleaf主主视图线上分析 -->
<bean  class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
    <property name="order" value="1"/>
    <property name="characterEncoding" value="UTF-8"/>
    <property name="templateengine">
        <bean class="org.thymeleaf.spring5.SpringTemplateEngine">
            <property name="templateResolver">
                <bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
                    <!-- 正视图做为作为前缀 -->
                    <property name="prefix" value="/WEB-INF/templates/"/>
                    <!-- 正视图文件后缀名 -->
                    <property name="suffix" value=".html"/>
                    <property name="templateMode" value="HTML5"/>
                    <property name="characterEncoding" value="UTF-8" />
                </bean>
            </property>
        </bean>
    </property>
</bean>

创建规定控制器

由于前边控制器对电脑浏览器消息推送的规定进行了统一的处理,但是关键的标准有不一样的解决方法,因此务必创建处理具体需要的类,即规定控制器

规定控制器中每一个处理规定的方法变为控制器方法

因为SpringMVC的控制器由一个POJO(一般的Java类)担任,因此需要依据@Controller注解将其标识为一个控制层构件,交给Spring的IoC容器管理方案,这时候SpringMVC才能够辨别控制器的存在

@Controller
public class HelloController {
}

检验

html文本文档放进src/main/webapp/WEB-INF/templates文件名称中

【SpringMVC】SpringMVC构筑框架插图6

<!DOCTYPE html>
<html lang="en">
<head>
    <Meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
<h1>首页</h1>
</body>
</html>

在规定控制器中创建处理规定的方法

// @RequestMapping注解:处理规定和控制器方法 正中间的映衬关系
// @RequestMapping注解的value特特性够依据规定具体地址匹配规定,/说明的现如今工程项目的前后文方式
// localhost:8080/springMVC/
@RequestMapping("/")
public String index() {
    //设置正视图名称
    return "index";
}

依据网站链接全自动自动跳转到特殊网页页面网页页面

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
    <h1>首页</h1>
    <a th:href="@{/hello}">HelloWorld</a><br/>
</body>
</html>

在规定控制器中创建处理规定的方法

@RequestMapping("/hello")
public String HelloWorld() {
    return "target";
}

配置Tomcat

【SpringMVC】SpringMVC构筑框架插图7

【SpringMVC】SpringMVC构筑框架插图8

点一下DeBUG运作Tomcat就可以
【SpringMVC】SpringMVC构筑框架插图9