吉尔伽胖虎 2023-02-10 17:17 采纳率: 66.7%
浏览 15
已结题

关于拦截器和过滤器作为校验登陆

我看过有俩个项目,分别用了过滤器和拦截器进行登陆的校验工作,所以想问下,一般情况下是使用哪一种的?以及有没有比较公认的写法

  • 写回答

3条回答 默认 最新

  • 纳川_cys 2023-02-10 17:47
    关注

    以我个人常用的Spring Boot 项目工程为例,使用过滤器和拦截器进行登录校验都是可以的。
    拦截器::适用于处理请求和响应的预处理和后处理。如果你希望控制请求的生命周期,并对请求/响应进行更多的修改,那么拦截器更适合你。
    过滤器:适用于对请求/响应的内容进行预处理和后处理。如果你只需要处理请求/响应的内容,而不需要对其生命周期进行控制,那么过滤器更适合你。

    另上述提到的:控制请求的生命周期的常见场景,例如:
        1. 权限控制:在访问某些资源之前,需要对用户进行身份校验。例如,在访问私有页面之前,需要先登录。
        2. 日志记录:在处理请求时,需要记录请求的信息,例如请求的 URL、请求头、请求参数等。
        3. 参数校验:在接收请求参数时,需要对参数进行校验,例如对请求参数的数据类型、数据格式等进行校验。
        4. 安全防护:在处理请求时,需要防范恶意攻击,例如 XSS 攻击、SQL 注入攻击等。
    (这些场景下,如果使用过滤器来处理,很可能不够灵活,可能需要对多个过滤器进行配置,才能实现相应的功能。而使用拦截器,可以方便地实现对请求的生命周期的控制,并实现上述功能。)
    

    所以,关于选择哪一种,取决于具体的业务场景和需求。
    至于有没有比较公认的写法,这是个主观的问题。不过,在实际项目开发中,大多数人通常会使用拦截器来进行登录校验,因为它具有更高的灵活性。可以通过定义不同的拦截器来实现不同的校验策略,更方便扩展。
    以上描述,希望能够帮到你~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月2日
  • 已采纳回答 2月22日
  • 创建了问题 2月10日

悬赏问题

  • ¥15 求会做聚类,TCN的朋友有偿线上指导。以下是目前遇到的问题
  • ¥100 无网格伽辽金方法研究裂纹扩展的程序
  • ¥15 错误于library(org.Hs.eg.db): 不存在叫‘org.Hs.eg.db’这个名称的程序包,如何解决?
  • ¥60 求一个图片处理程序,要求将图像大小跟现实生活中的大小按比例联系起来的
  • ¥50 求一位精通京东相关开发的专家
  • ¥100 求懂行的大ge给小di解答下!
  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活