第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

Spring MVC攔截器

ReasonLee JAVA開發(fā)工程師
難度中級
時長41分
學習人數(shù)
綜合評分9.77
244人評價 查看評價
9.9 內(nèi)容實用
9.8 簡潔易懂
9.6 邏輯清晰
  • 多個攔截器應(yīng)用https://img1.sycdn.imooc.com//5d54c37c0001fc6c12820711.jpg

    查看全部
  • preHandle

    https://img1.sycdn.imooc.com//5d54c14b0001eda611480258.jpg


    postHandle

    https://img1.sycdn.imooc.com//5d54c1710001109d09900189.jpg


    afterCompletion?

    https://img1.sycdn.imooc.com//5d54c1d100010abf12200139.jpg

    查看全部
  • 過濾器解決中文亂碼問題

    https://img1.sycdn.imooc.com//5d54ba480001146512930535.jpg

    https://img1.sycdn.imooc.com//5d54ba670001305b10490291.jpg


    查看全部
  • 攔截器的實現(xiàn)

    https://img1.sycdn.imooc.com//5d54b8d400013b5405760226.jpg


    注冊攔截器

    https://img1.sycdn.imooc.com//5d54b9210001ecf711750559.jpg

    配置攔截器的攔截規(guī)則

    https://img1.sycdn.imooc.com//5d54b9ca0001aa0110870254.jpg


    查看全部
  • 攔截器在實際項目中,用于對登錄權(quán)限進行管理,當用戶session失效或者未登錄狀態(tài)下,需跳轉(zhuǎn)到登錄頁進行登錄,重寫session,并根據(jù)是否攜帶resultUrl 地址進行回跳的操作,次resultUrl 是上一次被攔截的請求URL

    查看全部
  • 本章對攔截器和過濾器進行了對比,并對課程進行了總結(jié)。

    區(qū)別:

    【a】過濾器Filter依賴于Servlet容器,基于回調(diào)函數(shù),過濾范圍大。

    【b】 攔截器Interceptor依賴于框架容器,基于反射機制,只過濾請求。

    總結(jié):

    攔截器可以處理Web應(yīng)用中請求的一些通用性問題。

    共性問題在攔截器中處理,可以減少重復(fù)代碼,便于維護。




    查看全部
  • 本章主要對攔截器的使用場景進行介紹,解決了亂碼問題和權(quán)限驗證問題。

    攔截器的使用場景

    使用原則:處理所有請求的共同問題。

    1、通過攔截器解決亂碼問題(可以設(shè)置請求編碼(preHandle中進行設(shè)置)和響應(yīng)編碼設(shè)置)。

    攔截器類的preHandle方法中,使用HttpServletRequest對象的setCharacterEncoding("utf-8"),這樣請求執(zhí)行之前字符集被更改為utf-8。

    https://img1.sycdn.imooc.com//5d1c967b0001ddf609500189.jpg2、解決權(quán)限驗證問題(比如:有些頁面只有登陸后,才可以使用)

    在攔截器類的preHandle方法中進行判斷,如果登入成功時,會往session域中存儲一個值,該方法通過參數(shù)HttpServletRequest對象的getSesssion().getAttribute(“存儲的值”)判斷改值是否為null,也就是如果session域中沒有該值,則終止請求,通過HttpServletRequest對象的getRequestDispatcher返回登陸頁面,并且返回false。


    https://img1.sycdn.imooc.com//5d1c987a0001ae7209550336.jpg


    查看全部
  • 攔截器的其他實現(xiàn)方式:攔截器類實現(xiàn)另一個接口WebRequestInterceptor,它也會實現(xiàn)三個方法,方法名和前面學到的方法名一樣,只不過是參數(shù)有一些區(qū)別,還有另外一個區(qū)別是preHandle方法沒有返回值,也就是它不能像實現(xiàn)HandlerInterceptro那樣通過false返回值來終止請求,所以實際開發(fā)中經(jīng)常使用HandlerInterceptor接口,這種實現(xiàn)方式在SpringMVC中配置的寫法是不變的。

    查看全部
  • 多個攔截器應(yīng)用

    多個攔截器:定義兩個攔截器類并實現(xiàn)HandlerInterceptor,并在SpringMVC配置文件中進行配置。

    https://img1.sycdn.imooc.com//5d1c242c0001a35909770212.jpg

    多個攔截器執(zhí)行順序:

    https://img1.sycdn.imooc.com//5d1c248e0001ffe310270640.jpg


    查看全部
  • 攔截器的方法介紹

    1、preHandle方法:在請求被處理之前進行調(diào)用,方法返回值為boolean,該返回值代表是否將當前請求進行攔截,如果為true,請求將繼續(xù)運行,如果為false,請求將被終止(也就是請求不會到達控制器,也不會執(zhí)行另外兩個攔截器方法),該方法有三個參數(shù),HttpServletRequest存儲了請求的信息,HttpServletResponse存儲了響應(yīng)的信息,Object表示被攔截的請求目標的對象(當前攔截的就是請求要訪問的TestController的viewAll方法,可以理解為TestController的實例)。

    https://img1.sycdn.imooc.com//5d1c1abd0001a1e406360331.jpg

    擴展:Maven中無法使用EL表達式解決方法?

    答:問題因為2.5之前,web.xml文件中的頭定義中,el表達式默認是忽略不解析的,有如下三種解決方法。

    【1】jsp文件頭上添加:<%@ page isELIgnored="false"%>

    ? ? ? ? 【2】web.xml中添加定義。(不做詳細)

    ? ? ? ? ? ? ?【3】web.xml頭中添加定義。(不做詳細)

    2、postHandle方法:在請求被處理之后進行調(diào)用,處了以上三個參數(shù)外,還有一個ModelAndView參數(shù),可以通過該參數(shù)改變顯示的視圖。

    https://img1.sycdn.imooc.com//5d1c1f1f0001289209900270.jpg

    3、afterCompletion方法:在請求響應(yīng)結(jié)束之后(視圖顯示之后)才進行調(diào)用,主要用于一些資源的銷毀,例如連接、流等,不經(jīng)常使用它。


    查看全部
  • 攔截器的實現(xiàn)

    步驟1:編寫攔截器類實現(xiàn)HandlerInterceptor接口,并實現(xiàn)了三個方法(preHandle():到達Controller前執(zhí)行的方法,postHandle():執(zhí)行Controller后執(zhí)行的方法,afterCompletion():執(zhí)行完Controller后的方法),分別進行了輸出,并把preHandle方法返回值false改為true

    https://img1.sycdn.imooc.com//5d1b4d990001e58009320506.jpg

    步驟2:SpringMVC的配置文件(mvc-dispatcher-servlet.xml)中注冊攔截器

    使用<mvc:interceptor><bean class="攔截器的路徑"</bean></mvc:interceptor>,使用它之前需要使用到mvc的命名空間,并且配置了mvc的格式描述。

    https://img1.sycdn.imooc.com//5d1b4e5d00019d6606870051.jpg

    https://img1.sycdn.imooc.com//5d1b4e5d0001bb7807800060.jpg

    https://img1.sycdn.imooc.com//5d1b4ea400011fe909700149.jpg
    步驟3:在SpringMVC的配置文件中(mvc-dispatcher-servlet.xml)配置攔截器的攔截規(guī)則,通過<mvc:mapping path="攔截路徑"/>,例如以viewAll.form結(jié)尾的請求(path="/viewAll.form"),如果再增加一個新的方法,訪問該方法就不會執(zhí)行攔截器的方法。

    https://img1.sycdn.imooc.com//5d1b515e0001426d09700237.jpg

    查看全部
  • SpringMVC攔截器的工作原理

    解決亂碼問題:SpringMVC提供的一個過濾器類(在org.springframework.web-3.0.1.RELEASE-A.jar——>org.springframework.web.filter)CharacterEncodingFilter可以解決該問題。

    案例:配置SpringMVC過濾器,和過濾器相似通過<filter>和<filter-mapping>進行配置,只不過過濾器的<filter-class>是自己手動編寫,而SpringMVC提供的不用再手動去設(shè)置字符集(自定義過濾器實現(xiàn)Filter接口,并手動獲取request對象,然后再設(shè)置字符集為UTF-8,再跳轉(zhuǎn)頁面,SpringMVC是固定的,也就是<init-param>中的<param-name>的值是encoding,<param-value>的值是utf-8)

    拓展:關(guān)于web.xml的url映射的小知識:
    < url-pattern>/</url-pattern> ?會匹配到/login這樣的路徑型url,不會匹配到模式為*.jsp這樣的后綴型url
    < url-pattern>/*</url-pattern> 會匹配所有url:路徑型的和后綴型的url(包括/login,*.jsp,*.js和*.html等)

    注意一下CharacterEncodingFilte只可以過濾post請求編碼

    查看全部
  • 過濾器可以過濾靜態(tài)資源,攔截器只對請求過濾

    查看全部
  • 驗證登錄,都是從 request 請求中獲取session 信息

    查看全部
  • 攔截器,統(tǒng)一處理亂碼

    查看全部

舉報

0/150
提交
取消
課程須知
學習本門課程前需要具備Spring MVC的基礎(chǔ)知識,可以觀看慕課網(wǎng)的《Spring MVC起步》課程;還需要對過濾器的知識有所了解。
老師告訴你能學到什么?
1、理解Spring MVC攔截器的工作原理 2、掌握如何實現(xiàn)Spring MVC攔截器 3、了解Spring MVC攔截器的使用場景 4、理解Spring MVC攔截器與過濾器的區(qū)別

微信掃碼,參與3人拼團

微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復(fù)購買,感謝您對慕課網(wǎng)的支持!