SpringMVC
- SpringMVC
- 使用SpringMVC的两个配置@EnableWebMVC 和 ACWAC
- SpringMVC执行流程
- 接收请求参数
- Postman 发包工具()
- get 请求---简单类型数据(基本数据类型和String)
- get 请求---对象类型数据
- get 请求---数组类型
- get 请求 --- 集合类型 @RequestParam
- get 请求 --- 日期类型 @DateTimeFormat
- post 请求 --- 请求体类型 @RequestBody
- 请求---路径参数 @Pathvariable
- @RequestParam的三个应用场景
- 总结
- 全局异常处理器
- 两个注解 @RestControllerAdvice 和 @ ExceptionHandler
- Restful 风格
- Restful四种方式(注解)
- 注解总结(十四)
SpringMVC
介绍:
SpringMVC将Servlet一些通用功能进行了抽取和封装,使用它之后,代码主要有两部分组成:
前端控制器:由SpringMVC提供,主要负责接收参数和返回数据(在进入控制层之前的位置 会先经过前端控制器 再 到 控制层 返回数据时在控制层之后)
处理器:由程序员编写,主要负责参数的处理和业务层调用,可以理解为自己所写的业务逻辑代码
还有视图解析器等,视图解析器可以搭配JSP使用,但是现在不用JSP,也不用表单提交,就不对视图解析器做过多解释
使用SpringMVC的两个配置@EnableWebMVC 和 ACWAC
需要在这个config包下添加SpringMVC的初始化类和在配置类(有@Component修饰的类)中添加 @EnableWebMVC注解 加载SpringMVC,在初始化类中继承ADSI父类重写3个方法,可以创建SpringMVC容器 配置要处理请求的路径 创建Spring容器
SpringMVC执行流程
@RequestMapping注解的作用是接收前端请求,有两个重要的属性 value 和 method
@RsponseBody注解的作用是声明返回前端的数据为Json类型
@Controller 和 @RsponseBody 可以进行合并 @RestController 用在类上表明类中的所有方法均返回前端json格式的数据
接收请求参数
Postman 发包工具()
这里介绍一个小工具Postman 可以发送 get post put delete 请求 ,模拟前端请求,
可以携带参数或请求体,这样救不用写表单来进行测试了
get 请求—简单类型数据(基本数据类型和String)
get 请求—对象类型数据
get 请求—数组类型
get 请求 — 集合类型 @RequestParam
get 请求 — 日期类型 @DateTimeFormat
post 请求 — 请求体类型 @RequestBody
请求—路径参数 @Pathvariable
@RequestParam的三个应用场景
应该也可以给集合起别名(参考Mybatis中 的@Param注解猜想)
总结
@RequestMapping 如果不指定method属性 默认接收所有请求类型
全局异常处理器
就是在controller层之前不进行异常的处理,所有的异常都会向上层抛出,直到抛到控制层为止,全局异常处理器会对控制层中的异常进行处理,
两个注解 @RestControllerAdvice 和 @ ExceptionHandler
@RestControllerAdvice 标注在类上,声明当前类是一个用于专门处理异常的类
@ExceptionHandler 标注在方法上,声明当前方法可以处理哪些异常
Restful 风格
Restful风格是一种通过请求方式和请求路径确定方法的方式,避免了一些请求方法的暴露,提高了安全性和简洁性
REST是一种软件架构风格,其强调HTTP应当以资源为中心[在请求地址中尽量的不要出现动词]。
REST使用不同的请求方式表示不同的操作操作: GET(获取)、POST(新建)、PUT(更新)、DELETE(删除)
Restful四种方式(注解)
@GetMapping 相当于@RequestMapping( method = RequestMethod.GET) 常用与查询请求 可以与路径参数方式搭配使用
@PostMapping
@PutMapping
@DeleteMapping
ps:get 方式 和 delete 方式 不能携带请求体 要想获取必须通过将数据作为参数的形式传到后端
路径参数也可以传递数组形式的参数 接收不定长的数组的时候前端可以通过集合接收
注解总结(十四)
@EnableWebMVC
@RequestMapping
@Resonpse
@RestController
@RequestParam
@DateTimeFormat
@RequestBody
@Pathvariable
@RestControllerAdvice
@ ExceptionHandler
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping