SpringMVC18_MVC简介2
一、SpringMVC概述
SpringMVC是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow 中。
SpringMVC已经成为目前最主流的MVC框架之一,并且随着Spring3.0的发布,全面超越Struts2,成为最优秀的MVC框架。它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTful编程风格的请求。
二、SpringMVC快速入门
需求:客户端发起请求,服务器端接收请求,执行逻辑并进行视图跳转。
开发步骤:
1. 导入SpringMVC相关坐标
2. 配置SpringMVC核心控制器DispathcerServlet:前端控制器
3. 创建Controller类和视图页面
4. 使用注解配置Controller类中业务方法的映射地址
5. 配置SpringMVC核心文件spring-mvc.xml
6. 客户端发起请求测试
代码实现:
1. pom.xml导入Spring和SpringMVC的坐标、导入Servlet和Jsp的坐标
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.itheima</groupId> <artifactId>itheima_spring_mvc</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.22.RELEASE</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.2.22.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.2.22.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.22.RELEASE</version> </dependency> </dependencies> </project>
2. 在web.xml配置SpringMVC的核心控制器
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <!--配置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> <!--服务器启动时加载spring创建对象--> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
3. 创建Controller和业务方法
package com.itheima.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; public class UserController { public String save(){ System.out.println("Controller save running..."); //返回跳转的视图 return "success.jsp"; } }
创建视图页面success.jsp
4. 配置注解
package com.itheima.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class UserController { @RequestMapping("/quick") //访问quick时会映射到save方法,执行save逻辑 public String save(){ System.out.println("Controller save running..."); //返回跳转的试图 return "success.jsp"; } }
5. 创建spring-mvc.xml
6. 访问测试地址
run tomcat,浏览器访问localhost:8080/quick,检查浏览器显示及控制台输出:
三、SpringMVC流程图示
浏览器访问地址,地址请求Tomcat,Tomcat找工程,匹配到全局配置中的缺省的url-pattern,DispatcherServlet内部根据请求资源去解析找到对应的资源,找到UserController中的quick资源,访问save方法。
前端控制器内部获得请求资源后,按照资源名称映射地址quick找到quick并执行方法。
四、知识要点
SpringMVC的开发步骤
1. 导入SpringMVC相关坐标
2. 配置SpringMVC前端控制器DispathcerServlet,内部封装了共有行为
3. 创建Controller类和视图页面
4. 使用注解配置Controller及类中业务方法的映射地址:Controller放入Spring容器及把Controller内部的某个方法配成一个对应的映射资源
5. 配置SpringMVC核心文件spring-mvc.xml:目前主要是扫描Controller
6. 客户端发起请求测试