前言
项目在Spring–框架学习 | 花猪のBlog (cnhuazhu.top)一文中的Spring集成web环境的项目基础上进行开发。
项目结构如下:
概述
SpringMVC是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架。
SpringMVC已经成为目前最主流的MVC框架之一。它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTful编程风格的请求。
项目搭建
流程说明
SpringMVC的开发步骤如下:
- 导入SpringMVC相关坐标
- 配置SpringMVC核心控制器
DispathcerServlet
- 创建Controller类和视图页面
- 使用注解配置Controller类中业务方法的映射地址
- 配置SpringMVC核心文件
spring-mvc.xml
- 客户端发起请求测试
操作
- 在pom.xml配置文件中导入Spring和SpringMVC的坐标:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
- 在web.xml配置文件中配置前端控制器:
<!--配置SpringMVC的前端控制器-->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<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>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
说明:
<load-on-startup>1</load-on-startup> :表示服务器启动时就加载servlet,创建对象。(不写则默认访问时才加载)
<url-pattern>/</url-pattern>:标名任何访问都要经过该控制器
- 在/src/main/webapp目录下新建success.jsp文件(视图页面):
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>Success!</h1>
</body>
</html>
- 在/src/main/java/mvc目录下新建controller文件夹,用于充当临时web层测试,在其中编写UserController类:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controlle
public class UserController {
@RequestMapping("/quick")
public String save() {
System.out.println("Controller save running....");
return "success.jsp";
}
}
说明:
@RequestMapping("/quick"):表示访问/quick会调用save()方法,该方法中的返回值就是跳转的视图页面
- 在/src/main/resources目录下新建spring-mvc.xml配置文件,在其中添加Controller的组件扫描:
<?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">
<!--Controller的组件扫描-->
<context:component-scan base-package="mvc.controller"></context:component-scan>
</beans>
- 启动tomcat服务,浏览器访问http://localhost:8080/quick,可以看到跳转至success视图页面,并在控制台输出打印:
访问流程说明
- 首先浏览器访问http://localhost:8080/quick,发起请求
- 然后找tomcat,通过tomcat去找内部工程
- 接着找到前端控制器Servlet(配置缺省
/
- 下一步前端控制器根据请求的资源去解析,找对应的请求资源
/quick
后记
前端控制器的配置相当于一个核心的Servlet,通过配置缺省/
,所有的请求都要先通过它,进而该控制器再去根据响应的请求去访问其他的资源。