项目在Spring–框架学习 | 花猪のBlog (cnhuazhu.top)一文中的Spring集成web环境的项目基础上进行开发。
项目结构如下:
SpringMVC是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架。
SpringMVC已经成为目前最主流的MVC框架之一。它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTful编程风格的请求。
SpringMVC的开发步骤如下:
DispathcerServlet
spring-mvc.xml
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<!--配置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>:标名任何访问都要经过该控制器
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>Success!</h1>
</body>
</html>
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()方法,该方法中的返回值就是跳转的视图页面
<?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>
/
/quick
前端控制器的配置相当于一个核心的Servlet,通过配置缺省/
,所有的请求都要先通过它,进而该控制器再去根据响应的请求去访问其他的资源。