我看过有俩个项目,分别用了过滤器和拦截器进行登陆的校验工作,所以想问下,一般情况下是使用哪一种的?以及有没有比较公认的写法
3条回答 默认 最新
- 纳川_cys 2023-02-10 17:47关注
以我个人常用的Spring Boot 项目工程为例,使用过滤器和拦截器进行登录校验都是可以的。
拦截器::适用于处理请求和响应的预处理和后处理。如果你希望控制请求的生命周期,并对请求/响应进行更多的修改,那么拦截器更适合你。
过滤器:适用于对请求/响应的内容进行预处理和后处理。如果你只需要处理请求/响应的内容,而不需要对其生命周期进行控制,那么过滤器更适合你。另上述提到的:控制请求的生命周期的常见场景,例如: 1. 权限控制:在访问某些资源之前,需要对用户进行身份校验。例如,在访问私有页面之前,需要先登录。 2. 日志记录:在处理请求时,需要记录请求的信息,例如请求的 URL、请求头、请求参数等。 3. 参数校验:在接收请求参数时,需要对参数进行校验,例如对请求参数的数据类型、数据格式等进行校验。 4. 安全防护:在处理请求时,需要防范恶意攻击,例如 XSS 攻击、SQL 注入攻击等。 (这些场景下,如果使用过滤器来处理,很可能不够灵活,可能需要对多个过滤器进行配置,才能实现相应的功能。而使用拦截器,可以方便地实现对请求的生命周期的控制,并实现上述功能。)
所以,关于选择哪一种,取决于具体的业务场景和需求。
至于有没有比较公认的写法,这是个主观的问题。不过,在实际项目开发中,大多数人通常会使用拦截器来进行登录校验,因为它具有更高的灵活性。可以通过定义不同的拦截器来实现不同的校验策略,更方便扩展。
以上描述,希望能够帮到你~本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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后台保活