Springmvc进阶

RESTful风格
概念
传统url设计风格
保存品牌:/brand/save
修改品牌:/brand/update
删除1号品牌:/brand/delete?id=1
查询1号品牌:/brand/select?id=1
常见HTTP请求方式
GET:查询
POST:保存
PUT:修改
DELETE:删除
restful设计风格【最终版】
保存品牌:/brand+POST
修改品牌:/brand+PUT
删除1号品牌:/brand/1+DELETE
查询1号品牌:/brand/1+GET
路径参数
@PathVariable
@GetMapping(“/brand/{currentPage}/{pageSize}”) //例如:访问路径: /brand/1/5
public String selectByPage(@PathViriable Integer currentPage,
@PathViriable Integer pageSize){…}
衍生注解
@GetMapping:发送GET请求访问
@PostMapping:发送POST请求访问
@PutMapping:发送PUT请求访问
@DeleteMapping:发送DELETE请求访问

参数校验
第一步,添加依赖
在这里插入图片描述
第二步,添加校验规则
在这里插入图片描述

第三步,在Controller方法中使用@Valid开启校验,使用BindingResult获取校验结果
在这里插入图片描述
文件上传
单文件上传
在这里插入图片描述
多文件上传
在这里插入图片描述
统一响应结果
响应状态码和响应头
@ResponseStatus:描述状态码
在这里插入图片描述

ResponseEntity:响应实体对象,封装状态码、响应头、响应体返回给客户端。
在这里插入图片描述

自定义Result封装响应结果
【第一步】定义Result类
在这里插入图片描述

【第二步】将Controller方法的返回值统一指定为Result类型
在这里插入图片描述
全局异常处理
定义全局异常处理器并使用
作用:将项目中的代码异常统一处理,将来dao层将异常抛到service层,service层将异常抛到controller层,controller层将异常抛到异常处理。
在这里插入图片描述

自定义异常并使用
【第一步】定义类继承RuntimException
在这里插入图片描述

【第二步】在需要的地方抛出自定义异常

在这里插入图片描述

【第三步】在全局的异常处理器中定义方法,处理自定义异常
在这里插入图片描述

定义拦截器并使用
作用:springmvc提供的一种拦截Controller方法的机制,底层采用的是AOP技术,可以对controller层方法进行增强。

【第一步】定义一个类型实现HandlerInterceptor接口,重写需要的方法。

在这里插入图片描述

【第二步】让引导类实现WebMvcConfigurer接口,重写addInterceptors方法,在方法内部定义拦截路径。
在这里插入图片描述
拦截器实现登录验证
在这里插入图片描述
拦截器和过滤器的区别
归属不同: Filter属于Servlet技术,Interceptor属于SpringMVC技术
拦截内容不同: Filter是拦截请求和响应的,Interceptor拦截访问处理器中的方法,也就是拦截Controller中的方法调用。
执行顺序不同:先执行过滤器,后执行拦截器

springmvc执行流程
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值