首頁  >  文章  >  Java  >  Java的SpringMVC攔截器怎麼用

Java的SpringMVC攔截器怎麼用

WBOY
WBOY轉載
2023-05-13 14:55:061322瀏覽

攔截器(interceptor)的功能

Spring MVC 的  攔截器  類似於 Servlet 開發中的過濾器 Filter,用於處理器  預處理  和  後處理  。將攔截器依一定的順序聯結成一條鏈,這條鏈稱為  攔截器鏈(Interceptor Chain)  。在存取被攔截的方 法或欄位時,攔截器鏈中的攔截器就會依其先前定義的順序被呼叫。攔截器也是AOP思想的具體實作。

攔截器和過濾器區別

#   框架的工程才能用攔截範圍在url-pattern 中設定了/*之後,                  對所有要存取的資源中攔截在中配置了/**之                 後,為所有資源可攔截,但可由通            排除不需要攔截的資源
區別 過濾器(Filter) 攔截器(Intercepter)
使用範圍 是servlet 規格的一部分,任何                 Java Web 工程使用
攔截器快速入門

自訂攔截步驟:

① 建立攔截器類別實作HandlerInterceptor介面

public class MyHandlerInterceptor1 implements HandlerInterceptor {
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
        System.out.println("preHandle running...");
        return true;
    }
    public void postHandle(HttpServletRequest request, HttpServletResponse 
        response, Object handler, ModelAndView modelAndView) {
        System.out.println("postHandle running...");
    }
    public void afterCompletion(HttpServletRequest request, HttpServletResponse 
        response, Object handler, Exception ex) {
        System.out.println("afterCompletion running...");
    } 
}
② 設定攔截器

<!--配置拦截器--> 
<interceptors>
 <interceptor>
  <mapping></mapping>
  <bean></bean>
 </interceptor>
</interceptors>
③ 測試攔截器的攔截效果(寫目標方法)

@RequestMapping("/quick23") 
@ResponseBody
public ModelAndView quickMethod23() throws IOException, ParseException {
    System.out.println("目标方法执行....");
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.addObject("name","modelname");
    modelAndView.setViewName("index");
    return modelAndView;
}
(存取網址)

#http ://localhost:8080/project/quick23

控制台列印結果

Java的SpringMVC攔截器怎麼用##多重攔截器操作

步驟同上,在編寫一個MyHandlerInterceptor2操作,測試執行順序即可。

攔截器方法說明

方法名稱preHandle()postHandle()afterCompletion()#
#說明
方法將在請求處理之前進行調用,該方法的返回值是布林值Boolean類型的,                 當它返回為false 時,表示請求結束,後續的 Interceptor 和Controller 都不會  值為true 時就會繼續調用下一個Interceptor 的preHandle 方                法
該方法是在當前請求進行處理之後被調用,前提是preHandle 方法的回傳值為                true 時才能被呼叫,且它會在DispatcherServlet 進行視圖返回渲染之前被調          1     操作
該方法將在整個請求結束之後,也就是在DispatcherServlet 渲染了對應的視圖                之後執行,前提是preHandle 方法的返回值為

以上是Java的SpringMVC攔截器怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除