java?SpringMvc中攔截器的應(yīng)用
什么是攔截器
攔截器(Interceptor)是SpringMVC中的組件。
可以使很多個(gè)請(qǐng)求被處理時(shí),都會(huì)執(zhí)行攔截器中的代碼。
攔截器可以選擇阻止執(zhí)行或放行。
舉個(gè)栗子:
基本使用
在SpringMVC中實(shí)現(xiàn)HandlerInteceptor攔截器接口,這個(gè)類就是一個(gè)攔截器類。
利用攔截器最核心的在用控制preHandle方法的返回值,返回true就成功了,返回false就表示進(jìn)行攔截處理了。
實(shí)例
首先,創(chuàng)建一個(gè)類繼承攔截器
public class DemoInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("prehandle"); return true; } //在控制器之后執(zhí)行 @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("posthandle"); } //在視圖處理后執(zhí)行 @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("afterComplete"); } }
返回true繼續(xù)執(zhí)行
重構(gòu)SpringMvcConfig類,才能工作
@Configuration @ComponentScan("cn.tedu.controller") //WebMvcConfigurer 是springmvc的配置模板,配合注解一起使用 @EnableWebMvc public class SpringMvcConfig implements WebMvcConfigurer { //重寫配置模板中的攔截器方法 @Override public void addInterceptors(InterceptorRegistry registry) { //創(chuàng)建DemoInterceptor對(duì)象,注冊(cè)到SpringMVC中 //addPathPatterns()方法到作用是約定攔截器到URL //注冊(cè)一個(gè)攔截器,在請(qǐng)求/home/index.do時(shí)候執(zhí)行攔截器到功能 registry.addInterceptor(new DemoInterceptor()).addPathPatterns("/home/index.do"); } }
實(shí)現(xiàn)WebMvcConfigurer重寫配置模板中的攔截器方法
WebMvcConfigurer 是springmvc的配置模板,配合@EnableWebMvc注解一起使用
創(chuàng)建DemoInterceptor對(duì)象,注冊(cè)到SpringMVC中。
addPathPatterns()方法到作用是約定攔截器到URL
執(zhí)行查看攔截器執(zhí)行循序
總結(jié)
到此這篇關(guān)于java SpringMvc中攔截器的應(yīng)用的文章就介紹到這了,更多相關(guān)java SpringMvc攔截器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實(shí)現(xiàn)對(duì)map的字典序排序操作示例
這篇文章主要介紹了java實(shí)現(xiàn)對(duì)map的字典序排序操作,結(jié)合實(shí)例形式分析了java參照微信官網(wǎng)算法實(shí)現(xiàn)的字典序排序操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-07-07基于自定義校驗(yàn)注解(controller、method、(groups)分組的使用)
這篇文章主要介紹了基于自定義校驗(yàn)注解(controller、method、(groups)分組的使用),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10Eclipse自定義啟動(dòng)畫面和圖標(biāo)的方法介紹
這篇文章主要介紹了Eclipse自定義啟動(dòng)畫面和圖標(biāo)的方法介紹,以及一些eclipse的快捷鍵,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11Java Mybatis框架多表操作與注解開發(fā)詳解分析
MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲(chǔ)過程以及高級(jí)映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作。MyBatis 可以通過簡單的 XML 或注解來配置和映射原始類型、接口和 Java POJO為數(shù)據(jù)庫中的記錄2021-10-10泛型的類型擦除后fastjson反序列化時(shí)如何還原詳解
這篇文章主要為大家介紹了泛型的類型擦除后fastjson反序列化時(shí)如何還原詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11SpringBoot使用@Value實(shí)現(xiàn)給靜態(tài)變量注入值
這篇文章主要介紹了SpringBoot使用@Value實(shí)現(xiàn)給靜態(tài)變量注入值的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07