網(wǎng)站首頁(yè) 編程語言 正文
介紹
攔截器和過濾器的功能都差不多,攔截器是SpringBoot的,而且過濾器是Servlet的
SpringBoot過濾器
攔截器-過濾器 執(zhí)行順序
發(fā)起請(qǐng)求-》過濾器-》攔截器-》接口
創(chuàng)建攔截器
實(shí)現(xiàn)HandlerInterceptor 的接口,并且實(shí)現(xiàn)他都三個(gè)方法
- preHandle: 進(jìn)入controller前執(zhí)行 true放行 false不放行
- postHandle: controller運(yùn)行完成后執(zhí)行
- afterCompletion: 視圖渲染完畢后執(zhí)行 最后執(zhí)行的方法
三個(gè)方法都默認(rèn)實(shí)現(xiàn),按要求保留即可
@Component //交給IOC容器管理
public class RequestInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//進(jìn)入controller前執(zhí)行 true放行 false不放行
//攔截到執(zhí)行的操作
// return HandlerInterceptor.super.preHandle(request, response, handler);
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
//controller運(yùn)行完成后執(zhí)行
// HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
//視圖渲染完畢后執(zhí)行 最后執(zhí)行的方法
// HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
}
}
注冊(cè)攔截器(配置類)
配置類繼承接口WebMvcConfigurer ,并實(shí)現(xiàn)他都addInterceptors方法,
@Configuration //表示該類為配置類
public class WebConfig implements WebMvcConfigurer {
@Autowired
private RequestInterceptor interceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(interceptor).addPathPatterns("/**");
//攔截所有的請(qǐng)求
// registry.addInterceptor(interceptor)
// .addPathPatterns("/user")//需要攔截的請(qǐng)求
// .excludePathPatterns("/login");//不需要攔截的請(qǐng)求
}
}
攔截路徑的配置
- /*: 攔截所有一級(jí)路徑,如:/login 或 /user …
- /**: 攔截任意路徑,如:/login 或 /user/1 或 /deletes/user/1
- /user/*: 攔截/user的任意一級(jí)路徑 如:/user/login,不可以攔截二級(jí)如:/user/deletes/2
- /user/**: 攔截/user下的任意路徑
原文鏈接:https://blog.csdn.net/dpc5201314/article/details/136046965
- 上一篇:沒有了
- 下一篇:沒有了
相關(guān)推薦
- 2022-10-30 解決docker訪問外部https數(shù)字證書問題_docker
- 2022-10-23 Kubernetes?k8s?configmap?容器技術(shù)解析_云其它
- 2022-11-30 深入了解Golang?interface{}的底層原理實(shí)現(xiàn)_Golang
- 2022-04-07 代碼詳解Python的函數(shù)基礎(chǔ)(1)_python
- 2022-08-05 C#實(shí)現(xiàn)圖形界面的時(shí)鐘_C#教程
- 2022-04-14 如何解決error: failed to push some refs to ‘xxx(遠(yuǎn)程庫(kù))‘
- 2022-03-16 Android跟隨手指移動(dòng)的控件demo實(shí)例_Android
- 2022-06-16 C語言從猜數(shù)字游戲中理解數(shù)據(jù)結(jié)構(gòu)_C 語言
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支