色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

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

攔截器簡(jiǎn)介

攔截器通常通過(guò)動(dòng)態(tài)代理的方式來(lái)執(zhí)行。

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

攔截器配置使用方式

實(shí)現(xiàn)攔截器接口:

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 {// 在請(qǐng)求處理之前進(jìn)行調(diào)用(Controller方法調(diào)用之前) @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; } // 在請(qǐng)求處理之后視圖被渲染之前進(jìn)行調(diào)用(Controller方法調(diào)用之后) @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) { System.out.println('postHandle...'); }// 在請(qǐng)求結(jié)束之后、也就是視圖被渲染之后進(jìn)行調(diào)用(主要是用于進(jìn)行資源清理工作) @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 是不同的方法,如果在這些方法之間使用共享變量來(lái)儲(chǔ)存值,會(huì)存在線程安全問(wèn)題。而使用過(guò)濾器實(shí)現(xiàn)則不存在此問(wèn)題。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 男女午夜爱爱久久无遮挡 | 日本黄大片影院一区二区 | 亚洲欧美18v中文字幕高清 | 国产欧美日韩不卡一区二区三区 | 午夜福利国产一级毛片 | 女教师的一级毛片 | 中文字幕亚洲天堂 | 国产一级视频免费 | 三级毛片在线 | 国产一级视频在线 | 免费观看成人毛片 | 国产99视频精品免费视频免里 | 夜间福利在线观看 | 亚洲欧洲日产国码二区在线 | 毛片高清 | 日本黄区 | 18视频在线观看 | 欧美日韩国产一区二区三区播放 | avav在线看| 色天天躁夜夜躁天干天干 | 亚洲国产资源 | 在线高清一级欧美精品 | 国产欧美日韩精品第二区 | 麻豆国产96在线 | 日韩 | 欧美日韩一区二区三区在线 | 日本一区二区高清不卡 | 国产亚洲精品一区二区在线观看 | 日本a级三级三级三级久久 日本a级特黄三级三级三级 | 亚洲第一在线播放 | 日本黄区 | 欧美做爰性欧美 | 国产精品成人自拍 | 97久久草草超级碰碰碰 | 香蕉久久a毛片 | 欧美日韩一区二区三区视视频 | 日韩午夜在线视频不卡片 | 一级色网站 | 成人99国产精品 | 亚洲国产欧美日韩精品一区二区三区 | 国产大乳喷奶水在线看 | 国产黄色一级网站 |