M:模型
V:视图
C:控制器
在Java EE开发中,系统经典的三层架构包括表现层、业务层和持久层。
表现层(Web层)负责接收客户端请求,并向客户端响应结果;
业务层(Service层)负责业务逻辑处理,和项目需求息息相关;
持久层(Dao层)负责和数据库交互,对数据库表进行增删改查。

MyBatis:作为持久层
Spring作为粘合剂处理接口
Spring MVC 作为表现层
Spring MVC作用于三层架构中的表现层,用于接收客户端的请求并进行响应。Spring MVC中包含了控制器和视图,控制器接收到客户端的请求后对请求数据进行解析和封装,接着将请求交给业务层处理。业务层会对请求进行处理,最后将处理结果返回给表现层。表现层接收到业务层的处理结果后,再由视图对处理结果进行渲染,渲染完成后响应给客户端。
a.支持多语言
b.支持多视图
c.易扩展
1、新建一个普通的maven工程
2.在文件中找到项目结构,点击加号添加web
(或者直接在pom.xml声明当前是一个maven的web工程,语法:
3、引入Maven依赖:项目创建完成后,为保障项目的正常运行,需要导入项目所需的依赖到项目的pom.xml文件中
- "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.0modelVersion>
-
- <groupId>org.examplegroupId>
- <artifactId>SpringMVCdemo01artifactId>
- <version>1.0-SNAPSHOTversion>
- <packaging>warpackaging>
- <properties>
- <maven.compiler.source>8maven.compiler.source>
- <maven.compiler.target>8maven.compiler.target>
- properties>
- <dependencies>
-
- <dependency>
- <groupId>mysqlgroupId>
- <artifactId>mysql-connector-javaartifactId>
- <version>8.0.27version>
- dependency>
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-contextartifactId>
- <version>5.3.26version>
- dependency>
- <dependency>
- <groupId>javax.servletgroupId>
- <artifactId>javax.servlet-apiartifactId>
- <version>3.1.0version>
-
- <scope>providedscope>
- dependency>
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-jdbcartifactId>
- <version>5.3.26version>
- dependency>
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-txartifactId>
- <version>5.3.26version>
- dependency>
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-aspectsartifactId>
- <version>6.0.9version>
- dependency>
- <dependency>
-
- <groupId>org.springframeworkgroupId>
-
- <artifactId>spring-aopartifactId>
-
- <version>5.2.8.RELEASEversion>
-
- dependency>
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-webmvcartifactId>
- <version>5.2.8.RELEASEversion>
- dependency>
-
- dependencies>
- <build>
-
- <plugins>
-
- <plugin>
- <groupId>org.apache.tomcat.mavengroupId>
- <artifactId>tomcat7-maven-pluginartifactId>
- <version>2.2version>
- <configuration>
- <uriEncoding>utf-8uriEncoding>
- <port>8080port>
-
- <path>/SpringMVCdemo01path>
- 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前端控制器的配置
- "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>DispatcherServletservlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet
- servlet-class>
- <init-param>
- <param-name>contextConfigLocationparam-name>
- <param-value>classpath:spring-mvc.xmlparam-value>
- init-param>
- <load-on-startup>1load-on-startup> servlet>
- <servlet-mapping>
- <servlet-name>DispatcherServletservlet-name>
- <url-pattern>/url-pattern>
- servlet-mapping>
-
- web-app>
5、配置处理器映射信息和视图解析器:创建Spring MVC的配置文件spring-mvc.xml,用于配置处理器映射信息和视图解析器。
- "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>
注意前缀
6、创建处理器:创建处理器FirstController类,用于处理客户端的请求并指定响应时转跳的页面。
- 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文件,用于对客户端请求进行处理后的视图展示、
- <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
- html>
- <html>
- <body>
- <h1>Hello Spring MVC!!!h1>
- <h2>这是你的第一个Spring MVCh2>
-
- body>
- html>
8、启动项目,测试应用:项目启动成功后,在浏览器中对处理器进行请求访问,访问地址为localhost:8080/SpringMVCdemo01/firstController,访问后,IDEA控制台打印信息“访问到FirstController!”,并且浏览器跳转到success.jsp页面中,页面内容如下所示。

9、整体项目位置

注意好WEB-INF文件的位置
10.部署maven的快捷键
在idea的最右边找到maven点击开后在插件中找到tomcat7:run,然后右键编辑配置

效果
