一.什么是Spring MVC
1.什么是MVC(一种思想模式)
M:模型
V:视图
C:控制器
2、Java EE三层架构
在Java EE开发中,系统经典的三层架构包括表现层、业务层和持久层。
表现层(Web层)负责接收客户端请求,并向客户端响应结果;
业务层(Service层)负责业务逻辑处理,和项目需求息息相关;
持久层(Dao层)负责和数据库交互,对数据库表进行增删改查。
MyBatis:作为持久层
Spring作为粘合剂处理接口
Spring MVC 作为表现层
3、对Spring MVC在表现层作用的分析
Spring MVC作用于三层架构中的表现层,用于接收客户端的请求并进行响应。Spring MVC中包含了控制器和视图,控制器接收到客户端的请求后对请求数据进行解析和封装,接着将请求交给业务层处理。业务层会对请求进行处理,最后将处理结果返回给表现层。表现层接收到业务层的处理结果后,再由视图对处理结果进行渲染,渲染完成后响应给客户端。
4、特点
a.支持多语言
b.支持多视图
c.易扩展
二、第一个SpringMVC程序
1、新建一个普通的maven工程
2.在文件 中找到项目结构,点击加号添加web
(或者直接在pom.xml声明当前是一个maven的web工程,语法:<packaging>war</packaging>)
3、引入Maven依赖:项目创建完成后,为保障项目的正常运行,需要导入项目所需的依赖到项目的pom.xml文件中
XML
<?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>org.example</groupId>
<artifactId>SpringMVCdemo01</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 声明当前是一个maven的web工程-->
<packaging>war</packaging>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
<!-- Spring的核心基本包 ioc相关-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.26</version>
</dependency>
<!-- 服务器相关配置-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<!--依赖范围-->
<scope>provided</scope>
</dependency>
<!-- jdbc相关-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.26</version>
</dependency>
<!-- spring事务相关-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.3.26</version>
</dependency>
<!-- springAOP相关-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>6.0.9</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
<!-- Spring MVC相关 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.8.RELEASE</version> <!-- 版本号根据您的实际情况进行调整 -->
</dependency>
</dependencies>
<build>
<!-- 加入tomcat插件-->
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<uriEncoding>utf-8</uriEncoding>
<port>8080</port> <!-- 访问端口-->
<!--虚拟项目名-->
<path>/SpringMVCdemo01</path> <!-- 访问路径,一般就是你的项目名注意前面有个'/'-->
</configuration>
</plugin>
</plugins>
</build>
</project>
需要注意的是,要在IDEA中使用插件运行Maven项目,除了需要在pom.xml文件中配置对应的插件外,还需要在IDEA中进行项目运行的相关配置,具体操作如下:
单击IDEA工具栏中的"Run"(运行)→"Edit Configurations..."(编辑配置)选项,弹出Run/Debug Configurations对话框。
在Run/Debug Configurations对话框中,单击左上角的"+"按钮,弹出Add New Configurations菜单列表
在Add New Configurations菜单列表中,单击左侧菜单中的"Maven"选项,进入Maven指令的配置界面。
4、配置前端控制器:在项目的web.xml文件中进行Spring MVC前端控制器的配置
XML
<?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">
<servlet> <servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<!-- 配置初始化参数,读取Spring MVC的配置文件 --><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>
</web-app>
5、配置处理器映射信息和视图解析器:创建Spring MVC的配置文件spring-mvc.xml,用于配置处理器映射信息和视图解析器。
XML
<?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 https://www.springframework.org/schema/context/spring-context.xsd">
<!-- 注解扫描-->
<context:component-scan base-package="com.yx.controller"/>
<!-- 视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 后缀-->
<property name="suffix" value=".jsp"/>
<!-- 前缀-->
<property name="prefix" value="/WEB-INF/pages/"/>
</bean>
</beans>
注意前缀<property name="prefix" value="/WEB-INF/pages/"/>的"/"的用法
6、创建处理器:创建处理器FirstController类,用于处理客户端的请求并指定响应时转跳的页面。
java
package com.yx.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class FirstController {
@RequestMapping("/firstController")
public String sayHello(){
System.out.println("你好!这是访问的第一个controller");
// string返回值,默认返回的是视图的名字(视图解析器的前缀+此处的字符串+视图解析器的后缀)
return "success";
}
}
7、创建视图(View)页面:创建名称为page的文件夹,并在page文件夹下创建名称为success的jsp文件,用于对客户端请求进行处理后的视图展示、
XML
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<body>
<h1>Hello Spring MVC!!!</h1>
<h2>这是你的第一个Spring MVC</h2>
</body>
</html>
8、启动项目,测试应用:项目启动成功后,在浏览器中对处理器进行请求访问,访问地址为localhost:8080/SpringMVCdemo01/firstController,访问后,IDEA控制台打印信息"访问到FirstController!",并且浏览器跳转到success.jsp页面中,页面内容如下所示。
9、整体项目位置
注意好WEB-INF文件的位置
10.部署maven的快捷键
在idea的最右边找到maven点击开后在插件中找到tomcat7:run,然后右键编辑配置
效果