携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第21天,点击查看活动详情
SpringMVC简介
- SpringMVC是一种基于Java实现MVC模型的轻量级Web框架
主要学习的内容包含如下模块:
- SpringMVC简介
- ==请求与响应==
- ==REST风格==
- ==SSM整合(注解版)==
- 拦截器
SpringMVC简介:主要是来认识下到底什么是SpringMVC。
请求与相应:SpringMVC是替换Servlet处于Web的框架,所以其主要的作用就是用来接收前端发过来的请求和数据然后经过处理并将处理的结果响应给前端,所以如何处理请求和响应是SpringMVC中非常重要的一块内容。
REST风格:是一种软件架构风格,可以降低开发的复杂性,提高系统的可伸缩性,在以后开发中非常重要和常用。
SSM整合:是把咱们所学习的SpringMVC+Spring+Mybatis整合在一起来完成业务开发,是对我们所学习这三个框架的一个综合应用。
拦截器:是SpringMVC中的一个小知识点。
SpringMVC概述
当前WEB程序的工作流程:
三层架构
-
web程序通过浏览器访问前端页面,发送异步请求到后端服务器
-
后台服务器采用三层架构进行功能开发
- 表现层负责接收请求和数据然后将数据转交给业务层
- 业务层负责调用数据层完成数据库表的增删改查,并将结果返给表现层
- 表现层将数据转换成json格式返回给前端
-
前端页面将数据进行解析最终展示给用户。
表现层与数据层的技术选型:
-
数据层采用Mybatis框架
-
表现层采用SpringMVC框架,SpringMVC==主要==负责的内容有:
- controller如何接收请求和数据
- 如何将请求和数据转发给业务层
- 如何将响应数据转换成json发回到前端
知识点1:@Controller
| 名称 | @Controller |
|---|---|
| 类型 | 类注解 |
| 位置 | SpringMVC控制器类定义上方 |
| 作用 | 设定SpringMVC的核心控制器bean |
知识点2:@RequestMapping
| 名称 | @RequestMapping |
|---|---|
| 类型 | 类注解或方法注解 |
| 位置 | SpringMVC控制器类或方法定义上方 |
| 作用 | 设置当前控制器方法请求访问路径 |
| 相关属性 | value(默认),请求访问路径 |
知识点3:@ResponseBody
| 名称 | @ResponseBody |
|---|---|
| 类型 | 类注解或方法注解 |
| 位置 | SpringMVC控制器类或方法定义上方 |
| 作用 | 设置当前控制器方法响应内容为当前返回值,无需解析 |
总结
SpringMVC入门程序开发总结(1+N)
-
一次性工作
- 创建工程,设置服务器,加载工程
- 导入坐标
- 创建web容器启动类,加载SpringMVC配置,并设置SpringMVC请求拦截路径
- SpringMVC核心配置类(设置配置类,扫描controller包,加载Controller控制器bean)
-
多次工作
- 定义处理请求的控制器类
- 定义处理请求的控制器方法,并配置映射路径(@RequestMapping)与返回json数据(@ResponseBody)
流程分析
为了更好的使用SpringMVC,我们将SpringMVC的使用过程总共分两个阶段来分析,分别是启动服务器初始化过程和单次请求过程
启动服务器初始化过程
-
服务器启动,执行ServletContainersInitConfig类,初始化web容器
-
执行createServletApplicationContext方法,创建了WebApplicationContext对象
- 该方法加载SpringMVC的配置类SpringMvcConfig来初始化SpringMVC的容器
-
加载SpringMvcConfig配置类
-
-
执行@ComponentScan加载对应的bean
- 扫描指定包下所有类上的注解,如Controller类上的@Controller注解
-
-
加载UserController,每个@RequestMapping的名称对应一个具体的方法
-
执行getServletMappings方法,定义所有的请求都通过SpringMVC
单次请求过程
-
发送请求localhost/save
-
web容器发现所有请求都经过SpringMVC,将请求交给SpringMVC处理
- 因为符合上面第五步设置的请求路径,所以该请求会交给SpringMVC来处理
-
解析请求路径/save
-
由/save匹配执行对应的方法save()
- 上面的第五步已经将请求路径和方法建立了对应关系,通过/save就能找到对应的save方法
-
执行save()
-
检测到有@ResponseBody直接将save()方法的返回值作为响应求体返回给请求方
PostMan
PostMan简介
代码编写完后,我们要想测试,只需要打开浏览器直接输入地址发送请求即可。但是我们如果我们发送的是GET请求可以直接使用浏览器,但是如果要发送的是POST请求呢?
如果要求发送的是post请求,我们就得准备页面在页面上准备form表单,测试起来比较麻烦。所以我们就需要借助一些第三方工具,如PostMan.
-
PostMan是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。
-
作用:常用于进行接口测试
-
特征
- 简单
- 实用
- 美观
- 大方