亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        關(guān)于Spring MVC攔截器的簡介以及使用

        2017-03-15 18:51:24陶艷芳
        知音勵志·社科版 2017年1期
        關(guān)鍵詞:攔截器過濾器

        陶艷芳

        摘 要Spring MVC攔截器作為Spring MVC中的一部分,在實際工作中得到廣泛的應用,在項目中合理使用攔截器,可以解決許多常見的問題,本文主要會簡單概述什么是Spring MVC攔截器,如何通過代碼的方式來配置攔截器,使用攔截器的場景,最后就是簡述攔截器與過濾器的對比,通過詳細的描述,你會對Spring MVC中攔截器的使用會有更深刻的理解。

        【關(guān)鍵詞】攔截器;Spring MVC;過濾器

        1 什么是攔截器

        在了解攔截器之前,我們首先要了解一些基本知識。我們都知道,當我們在瀏覽器中輸入URL地址的時候,作為客戶端的瀏覽器就會向?qū)姆掌靼l(fā)送一個請求,同時,瀏覽器中的Burl地址通過各種get或者post的方式向服務器提交數(shù)據(jù),服務器在得到這些數(shù)據(jù)前,如果我們想對數(shù)據(jù)進行修改或者配置,那么這個時候我們就需要使用到攔截器,簡單來說,攔截器就像海關(guān),如果你攜帶的東西不合標準,就扣下,符合了標準,才會讓你通行。攔截器在Spring MVC中處理字符編碼和權(quán)限管理的時候有很大的作用。

        2 攔截器的工作原理

        要想了解攔截器的工作原理,我們首先要對Spring MVC的整體工作流程有了解,下面我就簡單介紹Spring MVC的工作流程,在最新版的Spring MVC中,工作流程如下:當用戶在瀏覽器地址欄輸入一個Burl請求的時候,該請求首先會找到配置文件中的DispatcherServlet,如果你沒有配置,那么此時會報錯,如果配置好了,那么下一步就是找到HandlerMapping來找到對應的HandlerAdapter,這樣能找到你自己寫好的Handler,這里的Handler指的就是你用來處理該請求的類,當然,你可以通過注解的方式來配置。在這個Handler中,返回對象會是一個ModelAndView對象,這其中的Model表示的就是處理這個url請求得到的數(shù)據(jù)結(jié)果,這里的View就是服務器返回給該請求的響應界面,這樣Spring MVC框架就會攜帶數(shù)據(jù)到對應的界面,從而展示結(jié)果給該URL請求。在了解了Spring MVC的工作流程后,我們就很好理解了,攔截器就是通過一些特殊的技術(shù),在Burl請求發(fā)送到DispatcherServlet之間進行了攔截。

        3 攔截器的實現(xiàn)

        下面我們就通過幾個步驟來實現(xiàn)一個簡單的攔截器:

        (1)寫一個EncodInterceptor類并實現(xiàn)HandlerInterceptro接口,其中會有三個方法需要實現(xiàn),分別是preHandle、postHandle、afterCompletion,在我們使用之前,需要在afterCompletion方法中的返回值設置為true,攔截器才會起作用。

        (2)寫好一個類就可以嗎?當然不行,只寫一個類,系統(tǒng)不會知道你這個攔截器要攔截什么請求,我們要在配置文件中添加對該類的配置,在配置文件中首先使用mvc:interceptor標簽,然后在標簽中通過bean標簽將上面寫好攔截器的類添加進去,其中bean標簽的class屬性表示的是類的包名點類名的形式。

        通過上面的配置,在系統(tǒng)運行起來的時候,客戶端向服務器端發(fā)送請求后,請求經(jīng)歷配置好的攔截器,默認會執(zhí)行其中三個方法。至于這三個方法具體的作用,我們下面會談論到,但是上面的配置,任意一個請求都會通過該攔截器,我們有什么方法讓攔截器只攔截我們需要攔截的請求呢?答案是肯定有的,第二步的配置應該使用mvc:interceptors標簽,然后在標簽中添加mvc:interceptors子標簽,最后該標簽中會有mvc:mapping標簽,該標簽中的path中就可以寫你需要攔截的路徑。

        4 攔截器中的方法介紹

        在上面我們通過HandlerInterceptor接口的方式實現(xiàn)攔截器時,默認會有三個方法需要實現(xiàn):preHandle方法,postHandle方法,afterCompletion方法,下面一一介紹:preHandle方法較特殊,該方法在請求被響應前會被調(diào)用,返回值為boolean類型,表示的是是否要將請求攔截,如果我們在此方法中返回false,客戶端發(fā)送過來的請求會被終止,不再執(zhí)行下去,如果是true,請求才會繼續(xù)運行。postHandle方法會在請求被處理之后調(diào)用,而其中的第三個參數(shù)可以用來顯示視圖以及數(shù)據(jù),在該請求的攔截器中通過參數(shù)來修改該請求對應的響應視圖,而該視圖的優(yōu)先級是大于對應的handler的。afterCompletion方法表示的是在請求執(zhí)行完后會調(diào)用的方法,就像是PHP中的析構(gòu)函數(shù),最后才調(diào)用。

        5 攔截器的使用場景

        既然知道了如何使用攔截器,那么接下來,我們就要知道在什么情況下使用,常見的場景有如下幾種:

        (1)解決亂碼問題:亂碼在項目中經(jīng)常遇到,或許是因為代碼編輯工具的問題,也可能是字符編碼問題,但有攔截器后,都可在請求發(fā)出之前統(tǒng)一設置編碼。

        (2)解決權(quán)限認證問題:很多項目如商城項目,必須用戶登錄后才能去購買商品,那么此時在請求發(fā)出前,需要判斷用戶是否已經(jīng)登錄,此時在攔截器中就可先判斷用戶是否登錄,若未登錄,就跳轉(zhuǎn)到登錄界面等。

        6 攔截器與過濾器的對比與總結(jié)

        相信學習過java Web的都知道過濾器,其實,攔截器和過濾器是基本相似的,但是還是有區(qū)別,下面來描述一下:首先,攔截器和過濾器的依賴是不同的,如果你使用的項目沒有使用到Spring MVC框架,那么此時你就是不能使用攔截器,因為攔截器依賴框架容器,其本身基于java中的反射機制,而過濾器即使沒有Spring MVC框架支持,也可以使用,因為過濾器是基于Servlet容器的,并通過了回調(diào)函數(shù)來使用。那么到此為止,對于攔截器的描述就結(jié)束了,攔截器可以處理我們在Web項目中請求的通用性的問題,合理使用攔截器,可以減少我們的代碼工作量,同時項目也便于維護。

        參考文獻

        [1](美)阿諾德,Ken-Arnold,等.Java程序設計語言[M].北京:人民郵電出版社,2006.

        作者單位

        邵陽學院 湖南省邵陽市 422000

        猜你喜歡
        攔截器過濾器
        基于Fluent的過濾器內(nèi)部流場數(shù)值模擬
        多動能攔截器協(xié)同制導規(guī)律的研究及仿真
        制導與引信(2022年2期)2022-07-22 05:37:54
        英國MARSS公司推出新型反無人機攔截器
        無人機(2022年2期)2022-05-20 06:43:32
        以色列“天鎖”公司展出新式反無人機攔截器
        輕兵器(2022年5期)2022-05-19 00:56:24
        聲音過濾器
        趣味(語文)(2018年2期)2018-05-26 09:17:55
        基于LOGO!的空氣過濾器自潔控制系統(tǒng)
        自動化博覽(2014年6期)2014-02-28 22:32:20
        HVM膜過濾器管板改造總結(jié)
        中國氯堿(2014年11期)2014-02-28 01:05:07
        基于AOP理念的Struts2攔截器的研究與應用
        免费av一区男人的天堂| 国产精品久久久久av福利动漫| 久久精品国产亚洲av高清漫画| 国产短视频精品区第一页| 帮老师解开蕾丝奶罩吸乳视频 | 久久久亚洲一区二区三区| 97超碰国产成人在线| 亚洲熟妇av一区| 日韩精品一区二区三区免费视频| 91视频爱爱| 日韩一二三四区免费观看| 一级黄色一区二区三区| 国产极品女主播国产区| 久久中文字幕无码专区| 免费国产99久久久香蕉| 中文字幕久久人妻av| 午夜国产视频一区二区三区| 国产精品美女久久久久av超清 | 亚洲国产成人久久精品不卡 | 青青草视频在线观看绿色| 色窝窝无码一区二区三区| 国产裸拍裸体视频在线观看| 视频一区精品自拍| 久久老熟女乱色一区二区 | 97国产精品麻豆性色| 中文字幕人妻互换av| 岛国av无码免费无禁网站| 黄色视频在线免费观看| 日韩AV无码中文无码AV| 白白色免费视频一区二区在线| 欧美亚洲精品suv| 亚洲av综合久久九九| 巨乳av夹蜜桃站台蜜桃机成人| 日本一区不卡在线观看| 不卡的av网站在线观看| 中文字幕被公侵犯的漂亮人妻| 国内无遮码无码| 美女福利视频网址导航| 一区二区精品国产亚洲 | 日韩精品无码av中文无码版| 亚洲成A人A∨久在线观看|