过滤器统一处理token的注意事项

注意点

如果在controller的参数上加了@RequestParam注解,那么在获取这个参数值的时候不会进入到过滤器的方法中

在其他不需要进入自定义过滤的而参数加上注解,不加也可以,只要名称不一样就不会往下走

要获取的token相关参数,不要加此注解

自定义的过滤器可以多个参数获取只需要在入口处,多加一个参数名称判断,且在返回参数值的时候,根据名称不同返回不同的值即可

所以即使比如你的过滤器拦截了所有的请求,但是,对于requestParam这种形式的请求不会经过过滤器,一定要在控制层controller中自己处理!!!

其次有人会问,既然如此为什么不换种办法,用requestbody注解作为参数,但是这个我的请求体的参数是有文件的,不太适合requestbody的形式,对于requestbody这种,使用方法也很多
比如

1.

2.

@PostMapping("handupload")
public Result insertArchiveDB(@RequestBody HandUploads request) {
  String type = request.getType();
  String year = request.getYear();
  String candidateId = request.getCandidateId();
  MultipartFile files = request.getFiles();
  
  // 继续处理请求参数
  // ...
  // 返回结果
}

这里的HandUploads是自定义的一个实体,这些都是可以的,但是要注意@autowired注解,以及get和set方法的编写,这块我也没有暂时深入学习,大致如下
 

public class HandUploads {
  private String type;
  private String year;
  private String candidateId;
  private MultipartFile files;
  public String getType() {
    return type;
  }
  @Autowired
  public void setType(String type) {
    this.type = type;
  }
  public String getYear() {
    return year;
  }
  @Autowired
  public void setYear(String year) {
    this.year = year;
  }
  public String getCandidateId() {
    return candidateId;
  }
  @Autowired
  public void setCandidateId(String candidateId) {
    this.candidateId = candidateId;
  }
  
  public MultipartFile getFiles() {
    return files;
  }
  @Autowired
  public void setFiles(MultipartFile files) {
    this.files = files;
  }
}

综上主要就是因为要根据token处理请求,发现我用请求参数的写法似乎过滤器不管用,查阅资料后故作记录

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值