java?SpringMvc中攔截器的應(yīng)用
什么是攔截器
攔截器(Interceptor)是SpringMVC中的組件。
可以使很多個請求被處理時,都會執(zhí)行攔截器中的代碼。
攔截器可以選擇阻止執(zhí)行或放行。
舉個栗子:
基本使用
在SpringMVC中實現(xiàn)HandlerInteceptor攔截器接口,這個類就是一個攔截器類。
利用攔截器最核心的在用控制preHandle方法的返回值,返回true就成功了,返回false就表示進(jìn)行攔截處理了。
實例
首先,創(chuàng)建一個類繼承攔截器
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對象,注冊到SpringMVC中 //addPathPatterns()方法到作用是約定攔截器到URL //注冊一個攔截器,在請求/home/index.do時候執(zhí)行攔截器到功能 registry.addInterceptor(new DemoInterceptor()).addPathPatterns("/home/index.do"); } }
實現(xiàn)WebMvcConfigurer重寫配置模板中的攔截器方法
WebMvcConfigurer 是springmvc的配置模板,配合@EnableWebMvc注解一起使用
創(chuàng)建DemoInterceptor對象,注冊到SpringMVC中。
addPathPatterns()方法到作用是約定攔截器到URL
執(zhí)行查看攔截器執(zhí)行循序
總結(jié)
到此這篇關(guān)于java SpringMvc中攔截器的應(yīng)用的文章就介紹到這了,更多相關(guān)java SpringMvc攔截器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于自定義校驗注解(controller、method、(groups)分組的使用)
這篇文章主要介紹了基于自定義校驗注解(controller、method、(groups)分組的使用),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10Java Mybatis框架多表操作與注解開發(fā)詳解分析
MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲過程以及高級映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作。MyBatis 可以通過簡單的 XML 或注解來配置和映射原始類型、接口和 Java POJO為數(shù)據(jù)庫中的記錄2021-10-10SpringBoot使用@Value實現(xiàn)給靜態(tài)變量注入值
這篇文章主要介紹了SpringBoot使用@Value實現(xiàn)給靜態(tài)變量注入值的方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07