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 ,但是这个控制器(分发器) 要一些注解:
TestController .java:
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请求