1、需求明细
2、业务实现
2.1、部署环境
创建maven web工程(如果不会的话,请在下方留言,我来制作一期),添加如下依赖 — pom.xml
<properties>
<spring.version>5.0.2.RELEASE
</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework
</groupId>
<artifactId>spring-context
</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>javax.servlet
</groupId>
<artifactId>servlet-api
</artifactId>
<version>2.5
</version>
<scope>provided
</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp
</groupId>
<artifactId>jsp-api
</artifactId>
<version>2.0
</version>
<scope>provided
</scope>
</dependency>
</dependencies>
配置前端控制器(本质上是一个Servlet) — web.xml
<servlet>
<servlet-name>dispatcherServlet
</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet
</servlet-name>
<url-pattern>/
</url-pattern>
</servlet-mapping>
配置Spring MVC — SpringMVC.xml(需要在resource下手动创建)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
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/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
</beans>
基于当前编译器将所有的环境添加到WEB-INF/lib 目录中
2.2、 编写入门程序
请检查你的index.jsp 是否有类似如下代码,有则跳过,反之添加
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
创建HelloController 类(此类需要位于层级包下)
通常包名为公司或组织域名倒着写.项目名称.模块名称.类名
举例:
com
.alibaba
.hellospringmvc
.controoler
.HelloController
@Controller
public class HelloController {
@RequestMapping(path
= "/hello")
public String
sayHello() {
System
.out
.println("Hello,Spring MVC");
return "success";
}
}
设置包扫描器 — SpringMVC-config.xml
<context:component-scan base-package="控制器类所在的包位置"/>
路径通常写到其类的上二级目录,比如控制器类位于com.alibaba.controller.HelloController,则我们的包扫描器 base-package 属性的位置就是: com.alibaba;
加载配置文件,在servlet标签中,添加初始化参数 — web.xml
<init-param>
<param-name>contextConfigLocation
</param-name>
<param-value>classpath:SpringMVC-config.xml
</param-value>
</init-param>
<load-on-startup>1
</load-on-startup>
在WEB-INF目录下创建一个pages目录,创建一个 success.jsp文件,在body标签中,添加如下内容
<h3>入门成功
</h3>
配置视图解析器 — SpringMVC-config.xml (beans 标签中)
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
开启Spring MVC 框架注解支持 — Spring MVC-config.xml(beans 标签中)
<mvc:annotation-driven/>
设置超链接,访问success页面,测试Spring MVC入门案例 — index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$
</title>
</head>
<body>
<h3>入门程序
</h3>
<a href="hello"> 入门程序
</a>
</body>
</html>
2.3、测试程序
将当前应用部署到tomcat 中
启动tomcat 即可通过访问index.jsp 点击超链接实现入门成功 ! ! !
2.4、图解Spring入门案例
2.5、入门案例的执行过程
当启动tomcat时,因为配置了load-on-startup标签,所以会创建DispatcherServlet对象,就会加载springmvc.xml配置文件
开启注解扫描,那么HelloController对象就会被创建
从index.jsp发送请求,请求会先到达DispatcherServlet核心控制器,根据配置@RequestMapping注解找到执行的具体方法
根据执行方法的返回值,再根据配置的视图解析器,去指定的目录下查找指定的JSP文件
tomcat服务器渲染页面,做出相应
BUG分析:
1.
请检查自己的请求路径是否配置正确
依赖库是否上传到WEB-INF/lib 目录下
是否缺少相关注解
依赖库是否完善
错误详情:
org.springframework.beans.factory.BeanDefinitionStoreException:
IOException parsing XML document from ServletContext resource [/WEB-INF/dispatcherServlet-servlet.xml];
nested exception is java.io.FileNotFoundException:
Could not open ServletContext resource [/WEB-INF/dispatcherServlet-servlet.xml]
错误分析:
错误显示不能从 WEB-INF下读取dispatcherServlet-servlet.xml ,应该是文件在读取时出现问题
解决方案:
请检查Spring MVC 配置文件初始化是否正确
Spring mvc 配置文件存放目录是否正确