需求:客户端发起请求,服务端接受请求,执行逻辑并进行视图跳转
注意:
Step1: 导入坐标及Tomcat插件,完整坐标代码如下
SpringMVC的相关坐标:spring-webmvc
<!--必须为5.2.x.RELEASE版本-->
<!--spring-webmvc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.25.RELEASE</version>
</dependency>
还需要Spring相关坐标:spring、spring-web、spring-test、Annotation、servlet、jsp
数据库相关坐标:mysql、druid、c3p0
MyBatis相关坐标:mybatis、spring-jdbc、mybatis-spring
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.example</groupId>
<artifactId>SpringMvcDemo</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>SpringMvcOne</artifactId>
<packaging>war</packaging>
<name>SpringMvcOne Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!--===================Spring相关坐标=======================-->
<!--spring坐标-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>6.1.6</version>
</dependency>
<!--spring-web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.25.RELEASE</version>
</dependency>
<!--spring-test坐标-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>6.1.6</version>
<scope>test</scope>
</dependency>
<!--Annotation坐标-->
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<!-- servlet-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<!--jsp-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
<!--===================SpringMVC相关坐标=======================-->
<!--spring-webmvc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.25.RELEASE</version>
</dependency>
<!--=====================数据库相关坐标=========================-->
<!--mysql坐标-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<!--druid坐标-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.18</version>
</dependency>
<!--c3p0坐标-->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.5</version>
</dependency>
<!--=====================MyBatis相关坐标=========================-->
<!--spring-jdbc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>6.1.10</version>
</dependency>
<!--mybatis-spring-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>3.0.3</version>
</dependency>
<!--MyBatis坐标-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.16</version>
</dependency>
</dependencies>
<build>
<finalName>SpringMvcOne</finalName>
<plugins>
<!-- Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</build>
</project>
Step2: 配置web项目核心目录(即WEB-INF
)下的web.xml,完整代码如下
ContextLoaderListener
监听器、web配置DispathcerServlet
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<!--全局初始化参数-->
<context-param>
<!--定义参数的名称,必须是唯一的-->
<param-name>contextConfigLocation</param-name>
<!--定义参数的值-->
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!--监听器-->
<!--配置Spring所提供的`ContextLoaderListener` 监听器-->
<listener>
<!--监听器类的全限定名-->
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--声明Servlet-->
<!--配置SpringMVC的前端控制器的Servlet-->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!--将URL模式映射到特定的Servlet上(即DispatcherServlet)-->
<servlet-mapping>
<!--指定的Servlet的类名-->
<servlet-name>DispatcherServlet</servlet-name>
<!--给指定的Servlet设置url,相当于@WebServlet("/")-->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
Step3: 创建Controller类和视图页面
Step3-1: 在web项目核心目录(即WEB-INF
)下创建视图页面success.jsp,代码如下
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>...Success Running...</h1>
</body>
</html>
Step3-2: 创建一个与三层架构包同级的controller
包,并在该包下创建类Usercontroller
,代码如下
package at.guigu.controller;
public class Usercontroller {
public String save() {
System.out.println("Usercontroller save...");
//跳转到指定的视图页面
return "success.jsp";
}
}
Step6: 使用@RequestMapping
注解配置Controller类中业务方法的映射地址,Usercontroller
代码更改如下
package at.guigu.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
//将Usercontroller放到Spring容器中
@Controller
public class Usercontroller {
//设置请求地址映射
@RequestMapping("/quick")
public String save() {
System.out.println("Usercontroller save...");
return "success.jsp";
}
}
Step7: 右键源代码配置文件目录(即资源文件resources
)→New
→XML Configuration File
→Spring Config
,文件名为spring-mvc.xml
,然后配置SpringMVC的核心文件spring-mvc.xml
,代码如下
Step7-1: 配置注解的组件扫描 需要在SpringMVC的配置文件中引入context和mvc的命名空间、约束路径然后使用context命名空间配置组件扫描即可。
命名空间:
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
约束路径:
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
配置组件扫描代码:<context:component-scan base-package="at.guigu.controller"></context:component-scan>
base-package
:给定一个包,然后会自动扫描该包下的所有内容,以便可以识别使用注解配置的类、字段和方法注意:其它三层架构包的注解的组件扫描在Spring的配置文件中配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
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
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--配置Controller层的注解的组件扫描-->
<context:component-scan base-package="at.guigu.controller"></context:component-scan>
<!--等同于
<context:component-scan base-package="at.guigu">
type指定要扫描的内容为注解,expression指定要扫描的对应注解的全限定名
只扫描at.guigu包下有@Controller注解的类
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
-->
</beans>
Step7-2: 在web项目核心目录(即WEB-INF
)下的web.xml中配置SpringMVC的全局初始化参数。web.xml完整代码如下
该全局初始化参数用于定义SpringMVC的配置文件供监听器使用
SpringMVC的全局初始化参数在配置SpringMVC的前端控制器的Servlet的标签体内,如下
<!--配置SpringMVC的前端控制器的Servlet-->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--配置SpringMVC的全局初始化参数-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<!--配置Spring的全局初始化参数-->
<context-param>
<!--定义参数的名称,必须是唯一的-->
<param-name>contextConfigLocation</param-name>
<!--定义参数的值-->
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!--监听器-->
<!--配置Spring所提供的`ContextLoaderListener` 监听器-->
<listener>
<!--监听器类的全限定名-->
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--声明Servlet-->
<!--配置SpringMVC的前端控制器的Servlet-->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--配置SpringMVC的全局初始化参数-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!--将URL模式映射到特定的Servlet上(即DispatcherServlet)-->
<servlet-mapping>
<!--指定的Servlet的类名-->
<servlet-name>DispatcherServlet</servlet-name>
<!--给指定的Servlet设置url,相当于@WebServlet("/")-->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
Step8: 客户端发起请求测试:Tomcat运行该Web项目后输入地址映射的url后会自动跳转到success.jsp页面
完整包结构如下
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。