SpringMVC简介
1.概述
SpringMVC是⼀种基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow中
M:Model,主要⽤于数据封装,业务逻辑处理
V:View,视图,⽤于数据的展⽰
C:Controller,控制器,主要⽤于分发,指派的⼯作
SpringMVC已经成为⽬前最主流的MVC框架之⼀,并且随着Spring3.0的发布,全⾯超越Struts2,成为最优秀的MVC框架。它通过⼀套注解,让简单的Java类成为处理请求的控制器(web层---Servlet),⽽⽆须实现任何接⼝。同时它还⽀持RESTful变成风格。
web层Servlet⼀般执⾏哪些动作?
接受请求参数,封装实体,访问业务层,接受返回结果,指派页⾯(视图)
web层的每个Servlet都去执⾏这些动作(共有⾏为),因此可以进⾏抽取,抽取的那⼀部分,⼀般情况下,就是web层的框架帮助完成的。特有⾏为,⽐如说,表单数据的校验,cookie的编写
2.SpringMVC的开发步骤
需求:客户端发起请求,服务器端接收请求,执⾏逻辑并进⾏视图跳转
(1)导⼊SpringMVC包(导⼊SpringMVC相关坐标)
SpringMVC⽤Servlet去充当前端控制器的
(2)配置Servlet(配置SpringMVC核⼼控制器DispatcherServlet)
配置时候要知道Tomcat请求过来的时候,每个请求都要去共有⾏为的Servlet,再去分发特有⾏为的。
(3)编写POJO(Controller)(创建Controller类和视图页⾯)
内部负责调⽤业务层,指派视图(JSP)
(4)将Controller使⽤注解配置到spring容器中(@Controller)(使⽤注解配置Controller类中业务⽅
法的映射地址)
把普通的POJO通过bean标签的⽅式配置到spring容器中,或者通过注解的⽅式放到spring容器中
(5)配置l⽂件(配置组件扫描)(配置SpringMVC核⼼⽂件l)
(6)执⾏访问测试(客户端发起请求测试)
下⾯按照上⾯的开发步骤实现⼀下
第⼀步:在l中导⼊spring-mvc坐标
第⼆步:配置SpringMVC核⼼控制器DispatcherServlet,在l中
在l中添加Controller组件扫描
第三步:创建Controller类和视图页⾯UserController.java和success.jsp
UserController.java
ller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class UserController {
// 访问quick时,帮你映射到save()⽅法,执⾏下⾯的逻辑,最终返回,跳到success.jsp视图中
@RequestMapping("/quick")
public String save() {
System.out.println("Controller ");
return "success.jsp";
}
}
  success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>success</h1>
</body>
</html>
  第四步:使⽤注解配置Controller类中业务⽅法的映射地址
第五步:配置SpringMVC核⼼⽂件l
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="/schema/beans"
xmlns:xsi="/2001/XMLSchema-instance"
xmlns:context="/schema/context"
xsi:schemaLocation="
/schema/beans /schema/beans/spring-beans.xsd
/schema/context /schema/context/spring-context.xsd ">
<!--Controller组件扫描-->
<context:component-scan base-package="ller"/>
</beans>
第六步:客户端请求测试
开启Tomcat服务器
完整版的l
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) Huawei Technologies Co., Ltd. 2020-2020. All rights reserved.
-->
<web-app xmlns="/xml/ns/javaee"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/xml/ns/javaee /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>l</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>
<!--全局初始化参数-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>l</param-value>
</context-param>
<!--配置-->
<listener>
<listener-class>org.t.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>UserServlet</servlet-name>
<servlet-class>company.web.UserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserServlet</servlet-name>
<url-pattern>/userServlet</url-pattern>
</servlet-mapping>
</web-app>
完整版的l
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="/POM/4.0.0"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId&le</groupId>
<artifactId>spring_mvc</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<finalName>simple-webapp</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<webXml>webapp\l</webXml>
</configuration>
</plugin>
</plugins>
</build>
<!--web⼯程的打包⽅式war-->
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.6</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId&hange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
springmvc常用标签
<artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
</dependencies>
</project>
从代码⾓度看整个流程
配置缺省的/ <url-pattern>/</url-pattern>,缺省的每次访问都要过整个<servlet></servlet>,根据请求资源去解析,对应的资源3.总结:springmvc流程图⽰

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。