SpringMVC需要用到的jar包下载:click
SpringMVC执行过程分析:
1、客户端发送请求到tomcat服务器。
2、SpringMVC的前端控制器收到所有请求,看请求地址和哪个RequestMapping匹配,就利用反射执行对应方法。
3、方法执行完后,SpringMVC利用视图解析器拼接字符串得到目标地址,前端控制器帮我们转发到目标页面。
注意:index.jsp中的跳转链接如果以 / 开头,则使用绝对路径,还需要在前面加上项目名方可访问;不以 / 开头则会认为是相对路径,请求的真正路径为原来的URL拼接上新的请求路径。而RequestMapping注解中value的 / 可加可不加。
一、IDEA的SpringMVC工程
1、创建工程并导入jar包
2、修改文件目录
3、改配置
① web.xml配置(tomcat端)
② Spring配置
*.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
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.cj.controller"></context:component-scan>
</beans>
3、配置web服务器
4、测试
index.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<a href="Req.form">发出请求</a>
</body>
</html>
FirstController:
package com.cj.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class FirstController {
@RequestMapping("Req")
public String req() {
System.out.println("处理请求中...");
return "/WEB-INF/pages/resp.jsp";
}
}
resp.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Response</title>
</head>
<body>
<h1>做出响应</h1>
</body>
</html>
下图表示SpringMVC环境搭建成功。
二、maven工程
1、创建Maven工程并添加依赖
pom.xml配置:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<!-- 复用spring版本-->
<spring.version>5.1.5.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
2、修改文件目录
3、修改配置
可以使用SpringMVC默认去寻找的xml,这时候不需要再web.xml中配置servlet中的init-param。
SpringMVC_Config.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
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.cj.controller"></context:component-scan>
<!-- 配置视图解析器, 能帮我们拼接页面地址-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
3、web服务器配置
4、测试
index.jsp:
<html>
<body>
<h2>Hello World!</h2>
<a href="hello">Click</a>
</body>
</html>
HelloController:
package com.cj.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloController {
@RequestMapping("/hello")
public String hello() {
System.out.println("正在处理hello请求...");
return "success";
}
}
success.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Success</title>
</head>
<body>
<h1>成功!</h1>
</body>
</html>
测试结果: