SpringMVC简介
01-SpringMVC简介
SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装。
SpringMVC是处于Web层的框架,所以其主要作用就是用来接收前端发过来的请求和数据,然后经过处理之后将处理结果响应给前端,所以如何处理请求和响应是SpringMVC中非常重要的一块内容。
REST是一种软件架构风格,可以降低开发的复杂性,提高系统的可伸缩性,后期的应用也是非常广泛。
对于SpringMVC的学习,最终要达成的目标:
- 掌握基于SpringMVC获取请求参数和响应JSON数据操作
- 熟练应用基于REST风格的请求路径设置与参数传递
- 能根据实际业务建立前后端开发通信协议,并进行实现
- 基于SSM整合技术开发任意业务模块功能
SpringMVC概述
-
如果所有的处理都交给Servlet来处理的话,所有的东西都耦合在一起,对后期的维护和扩展极其不利
- 所以将后端服务器Servlet拆分成三层,分别是web、service和dao
- web层主要由servlet来处理,负责页面请求和数据的收集以及响应结果给前端
- service层主要负责业务逻辑的处理
- dao层主要负责数据的增删改查操作
- 所以将后端服务器Servlet拆分成三层,分别是web、service和dao
-
但servlet处理请求和数据时,存在一个问题:一个servlet只能处理一个请求
-
针对web层进行优化,采用MVC设计模式,将其设计为Controller、View和Model
- controller负责请求和数据接收,接收后将其转发给service进行业务处理
- service根据需要会调用dao对数据进行增删改查
- dao把数据处理完后,将结果交给service,,service再交给controller
- controller根据需求组装成Model和View,Model和View组合起来生成页面,转发给前端浏览器
- 这样做的好处就是controller可以处理多个请求,并对请求进行分发,执行不同的业务操作
随着互联网的发展,上面的模式因为是同步调用,性能慢慢的跟不是需求,所以异步调用慢慢的走到了前台,是现在比较流行的一种处理方式。
- Web程序工作流程
学习SpringMVC我们先来回顾下现在Web程序是如何做的,我们现在的Web程序大都基于MVC三层架构来实现的。
即:用户通过浏览器访问页面,前端页面使用异步提交的方式发送请求到后端服务器,后端服务器采用表现层、业务层、数据层的三层架构进行开发。页面发送的请求由表现层接收,获取用户的请求参数后将参数传递到业务层再由业务层访问数据层,得到用户需要访问的数据后,将数据通过业务层返回给表现层,表现层拿到数据后将数据转换成json格式将数据发送给前端页面,前端页面接收后解析数据并组织成用户浏览的最终页面信息交给浏览器
- 因为是异步调用,所以后端不需要返回View视图,将其去除
- 前端如果通过异步调用的方式进行交互,后端就需要将返回的数据转换成JSON格式进行返回
- pringMVC主要负责的就是
- controller如何接收请求和数据
- 如何将请求和数据转发给业务层
- 如何将响应数据转换成JSON发挥到前端
SpringMVC是一种基于Java实现MVC模型的轻量级Web框架
- 优点
- 使用简单、开发快捷(相比较于Servlet)
- 灵活性强
这里说的优点,我们通过下面的讲解与练习慢慢体会
02-SpringMVC入门案例
因为SpringMVC是一个Web框架,将来是要替换Servlet,所以先来回顾下以前Servlet是如何进行开发的
- 创建web工程(Maven结构)
- 设置tomcat服务器,加载web工程(tomcat插件)
- 导入坐标(Servlet)
- 定义处理请求的功能类(UserServlet)
- 设置请求映射(配置映射关系)
SpringMVC的制作过程和上述流程几乎是一致的,具体的实现流程是什么?
- 创建web工程(Maven结构)
- 设置tomcat服务器,加载web工程(tomcat插件)
- 导入坐标(SpringMVC+Servlet)
- 定义处理请求的功能类(UserController)
- 设置请求映射(配置映射关系)
- 将SpringMVC设定加载到Tomcat容器中
案例制作
- 步骤一:创建Maven项目
- 步骤二:导入所需坐标(SpringMVC+Servlet)
在pom.xml中导入下面两个坐标
<!--servlet-->
<dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope>
</dependency>
<!--springmvc-->
<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.10.RELEASE</version>
</dependency>
- 步骤三:创建SpringMVC控制器类(等同于我们前面做的Servlet)
//定义Controller,使用@Controller定义Bean
@Controller
public class UserController {//设置当前访问路径,使用@RequestMapping@RequestMapping("/save")//设置当前对象的返回值类型@ResponseBodypublic String save() {System.out.println("user save...");return "{'module':'SpringMVC'}";}
}
- 步骤四:初始化SpringMVC环境(同Spring环境),设定SpringMVC加载对应的Bean
//创建SpringMVC的配置文件,加载controller对应的bean
@Configuration
@ComponentScan("com.yolo.controller")
public class SpringMvcConfig {
}
- 步骤五:初始化Servlet容器,加载SpringMVC环境,并设置SpringMVC技术处理的请求
配置tomcat
在idea edit configurations 加上tomcat,选local。
配置路径
Deployment中添加当前项目