上一篇:23-Spring的高级注解(Spring3.x 及以上)https://blog.csdn.net/fsjwin/article/details/109530395
spring版本:5.2.5.RELEASE
1. 什么是springmvc
简单说就是一个servlet。接收前端的请求,返回前端相应。他是spring的一个模块。和spring息息相关,但是是可以被替代的,比如Struts2。
2. springmvc的核心
springmvc核心就是就是DispatchServlet。
使用中央调度器DispatchServlet来对请求进行处理。
3. 创建项目
- 创建项目的过程忽略,太简单了哦!
- 引入依赖
<?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>com.yuhl</groupId>
<artifactId>springmvc20201108</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--servlet依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
</dependencies>
</project>
3. web.xml xmlns的修改
修改web.xml的xmlns步骤,不修改也没有关系:
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">
<!--配置在这里的目的是在tomcat启动的时候先启动这个DispatcherServlet类,然后会创建ApplicationContext容器工厂
所以他的启动书序要靠前-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--初始化的mvc配置文件 需要写在load-on-startup前面
springmvc.xml就是applicationContext
-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!--数字越小,启动的设计越小,可以为<=0的数字-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
- springmvc.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!--这个文件和spring的配置文件一模一样到时候整合的时候就没有他了。-->
<context:component-scan base-package="com.yuhl"/>
</beans>
- 控制器
package com.yuhl.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
/**
* @author yuhl
* @Date 2020/11/8 16:06
* @Classname MyController
* @Description TODO
*/
@Controller
public class MyController {
@RequestMapping(value = "/first.do")
public ModelAndView first(){
ModelAndView mv = new ModelAndView();
mv.addObject("msg", "我回来了");
mv.addObject("msg2", "又回来哦了2");
//底层就是一个请求转发,记住低就是servlet哦
mv.setViewName("first.jsp");
return mv;
}
}
- 请求页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<a href="first.do">第一次点击</a>
</body>
</html>
- 返回页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
从request域中获取对象的语法:
<h> ${msg}</h><br/>
<h> ${msg2}</h>
</body>
</html>
- 页面正常展示与跳转
- 画图说明请求的过程
下一篇: 02-SpringMVC 创建容器源码分析&调用过程源码分析https://blog.csdn.net/fsjwin/article/details/109561653