中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java的SpringMVC攔截器怎么用

發布時間:2022-04-06 15:06:09 來源:億速云 閱讀:144 作者:iii 欄目:開發技術

今天小編給大家分享一下Java的SpringMVC攔截器怎么用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

攔截器(interceptor)的作用

Spring MVC 的  攔截器  類似于 Servlet 開發中的過濾器 Filter,用于對處理器進行  預處理  和  后處理  。 將攔截器按一定的順序聯結成一條鏈,這條鏈稱為  攔截器鏈(Interceptor Chain)  。在訪問被攔截的方 法或字段時,攔截器鏈中的攔截器就會按其之前定義的順序被調用。攔截器也是AOP思想的具體實現。

攔截器和過濾器區別

區別過濾器(Filter)攔截器(Intercepter)
使用范圍是 servlet 規范中的一部分,任何                  Java Web 工程都可以使用是 SpringMVC 框架自己的,只有使用了                  SpringMVC 框架的工程才能用
攔截范圍在 url-pattern 中配置了/*之后,                  可以對所有要訪問的資源攔截在<mvc:mapping path=“”/>中配置了/**之                  后,也可以多所有資源進行攔截,但是可以通                  過<mvc:exclude-mapping path=“”/>標簽                  排除不需要攔截的資源

攔截器快速入門

自定義攔截步驟:

① 創建攔截器類實現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...");
    } 
}

② 配置攔截器

<!--配置攔截器--> 
<mvc:interceptors>
 <mvc:interceptor>
  <mvc:mapping path="/**"/>
  <bean />
 </mvc:interceptor>
</mvc: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()方法將在請求處理之前進行調用,該方法的返回值是布爾值Boolean類型的,                 當它返回為false 時,表示請求結束,后續的Interceptor 和Controller 都不會                 再執行;當返回值為true 時就會繼續調用下一個Interceptor 的preHandle 方                 法
postHandle()該方法是在當前請求進行處理之后被調用,前提是preHandle 方法的返回值為                 true 時才能被調用,且它會在DispatcherServlet 進行視圖返回渲染之前被調                 用,所以我們可以在這個方法中對Controller 處理之后的ModelAndView 對象                 進行操作
afterCompletion()該方法將在整個請求結束之后,也就是在DispatcherServlet 渲染了對應的視圖                 之后執行,前提是preHandle 方法的返回值為true 時才能被調用

以上就是“Java的SpringMVC攔截器怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兰坪| 吴桥县| 威海市| 都匀市| 额敏县| 凌云县| 灵石县| 孙吴县| 英超| 天镇县| 宜黄县| 华宁县| 当涂县| 饶平县| 灵山县| 睢宁县| 永清县| 鞍山市| 江达县| 钟山县| 丰顺县| 天津市| 安徽省| 石棉县| 桂阳县| 鸡东县| 阳山县| 集贤县| 威远县| 元氏县| 河间市| 嵊州市| 兰考县| 南溪县| 惠州市| 龙里县| 中卫市| 临西县| 班玛县| 和田县| 巫溪县|