国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

SpringBoot攔截器原理解析及使用方法

瀏覽:2日期:2023-05-20 14:41:30

攔截器簡介

攔截器通常通過動態代理的方式來執行。

攔截器的生命周期由IoC容器管理,可以通過注入等方式來獲取其他Bean的實例,使用更方便。

攔截器配置使用方式

實現攔截器接口:

import java.io.IOException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;private class AuthenticationInterceptor implements HandlerInterceptor {// 在請求處理之前進行調用(Controller方法調用之前) @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException{ System.out.println(request.getRequestURL()); User user = (User)request.getSession().getAttribute('USER'); if(user != null){ return true; }else { System.out.println('no login...'); // request.getRequestDispatcher('/index.html').forward(request, response); response.sendRedirect(request.getContextPath()+'login.html'); return false; } return false; } // 在請求處理之后視圖被渲染之前進行調用(Controller方法調用之后) @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) { System.out.println('postHandle...'); }// 在請求結束之后、也就是視圖被渲染之后進行調用(主要是用于進行資源清理工作) @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { System.out.println('afterCompletion...'); }}

將攔截器加入到配置中:

import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.InterceptorRegistration;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configurationpublic class WebSecurityConfig implements WebMvcConfigurer{ @Override public void addInterceptors(InterceptorRegistry registry){ registry.addInterceptor(new AuthenticationInterceptor()) //所有路徑都被攔截 .addPathPatterns('/**') //添加不攔截的路徑 .excludePathPatterns('/userLogin', '/css/**', '/images/**', '/js/**', '/login.html'); registry.addInterceptor(new OtherInterceptor()).addPathPatterns('/**'); }}

備注:

由于 preHandle、postHandle、afterCompletion 是不同的方法,如果在這些方法之間使用共享變量來儲存值,會存在線程安全問題。而使用過濾器實現則不存在此問題。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 成人男女网18免费0 成人男女网18免费看 | 热久久91| 看美女毛片| 91免费高清视频 | 国产成人爱片免费观看视频 | 亚洲一区免费在线观看 | 免费香蕉成视频成人网 | 一级毛片看一个 | 在线观看黄网 | 成人区精品一区二区毛片不卡 | 97超频国产在线公开免费视频 | 日韩性色| 国产精品亚洲欧美日韩区 | 91影视做在线观看免费 | 精品久久成人 | 久久国产精品99久久久久久牛牛 | 成人a在线 | 手机亚洲第1页 | 日本一级特黄a大片 | 日韩毛片一级 | 一本大道香蕉大vr在线吗视频 | 亚洲成人黄色在线 | 日韩精品视频一区二区三区 | 欧美一级毛片欧美一级无片 | 精品国产一区二区三区不卡在线 | 国产91精品一区二区麻豆亚洲 | 新26uuu在线亚洲欧美 | 激情一区二区三区成人 | 亚洲黄色免费在线观看 | 亚洲精品综合久久中文字幕 | 男人的天堂官网 | 国产视频自拍偷拍 | 欧美日韩一本 | 亚洲精品国产成人一区二区 | 免费一级欧美大片在线观看 | 91香蕉国产线观看免 | 韩国日本一级毛片免费视频 | 韩国一区在线 | 欧美成人性色生活片免费在线观看 | 欧美成人777 | 中文字幕在线无限2021 |