SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 中。 SpringMVC 已经成为目前最主流的MVC框架之一,并且随着Spring3.0 的发布,全面超越 Struts2,成为最优秀的 MVC 框架。它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时 它还支持 RESTful 编程风格的请求。
需求:客户端发起请求,服务器端接收请求,执行逻辑并进行视图跳转。
开发步骤:
① 导入SpringMVC相关坐标
② 配置SpringMVC核心控制器DispathcerServlet
③ 创建Controller类和视图页面
④ 使用注解配置Controller类中业务方法的映射地址
⑤ 配置SpringMVC核心文件 spring-mvc.xml
⑥ 客户端发起请求测试
我们开始实操一下:
① 导入Spring和SpringMVC的坐标
<!--Spring坐标-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<!--SpringMVC坐标-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
别忘记导入Servlet和Jsp的坐标
<!--Servlet坐标-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.3</version>
</dependency>
<!--Jsp坐标-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
</dependency>
② 在web.xml配置SpringMVC的核心控制器
我们要用SpringMVC的前端控制器 那么我们是不是需要设置它Servlet 所以现在设置一下 前端控制器【分发器】的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>
<!-- 这里配置一个Servlet -->
<servlet>
<!-- 名字你随便 就是和以前配置的一样即可 -->
<servlet-name>DispatcherServlet</servlet-name>
<!-- 这个写死的 是SpringMVC的前端控制器(分发器) -->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置初始化参数 -->
<init-param>
<!-- 初始化参数名 【写死的】 -->
<param-name>contextConfigLocation</param-name>
<!-- 初始化参数值 SpringMvc的配置文件(容器) -->
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<!-- 优先级 、 这个随便加不加 一般都是加上 1 最先. -->
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 就是说 全部网址请求过来 都要经过这个前端控制器(分发器) -->
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
③ 创建Controller和业务方法
创建个 控制器包 包下随便写个控制器类,其实这个控制器 就相当于是一个 Servlet ,但是这个控制器(分发器) 要一些注解:
package com.bihu.Controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TestController {
@RequestMapping("/go")
public String GoUrl(){
System.out.println("执行了Controller的GoUrl方法 证明你访问了 xxx/go");
//返回字符串 会自动跳转到 s1.jsp 页面!
return "s1.jsp";
}
}
然后你得写个s1.jsp 可以给他跳转:
s1.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>ok!</title>
</head>
<body>
<h2>恭喜你! 体验了SpringMVC 最基本简单的 一个 流程! </h2>
</body>
</html>
然后你得配置一下SpringMVC容器,设置一下他扫描注解的范围:【记得配置Context头部哪里】
<?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">
<!-- 配置注解扫描器 注意这个是SpringMVC的配置文件 配置文件要分开 规范点! -->
<context:component-scan base-package="com.bihu"/>
</beans>
所以呢 重点还是 SpringMVC 容器的配置 和 web.xml 的配置,该写死的就得写死哦
因为报错过几次 所以知道了 他的原理就是 一个 监听器 然后 默认的方式是Get请求
作者:咸瑜