Spring MVC 攔截器(2)-WebRequestInterceptor

上一節(jié)小博老師給大家介紹了SpringMVC中使用HandlerInterceptor接口實(shí)現(xiàn)攔截器的方法,今天小博老師先給大家介紹另外一種攔截器的實(shí)現(xiàn)方式WebRequestInterceptor。我們先來(lái)看一下WebRequestInterceptor接口的源碼結(jié)構(gòu):

WebRequestInterceptor接口同HandlerInterceptor接口一樣定義了三個(gè)方法,preHandle 、postHandle 以及afterCompletion。兩個(gè)接口的方法名都相同,調(diào)用次序也相同。即preHandle是在請(qǐng)求處理之前調(diào)用;postHandle實(shí)在請(qǐng)求處理之后,視圖渲染之前調(diào)用;afterCompletion是在視圖渲染之后調(diào)用。接下來(lái)我們看看他們的不同之處。

1.方法參數(shù)不同。WebRequest是Spring定義的接口,它是對(duì)HttpServletRequest的封裝。對(duì)WebRequest 進(jìn)行的操作都將同步到HttpServletRequest 中。WebRequest 的set/getAttribute(name, value, scope)比HttpServletRequest 的set/getAttribute多了一個(gè)scope參數(shù)。它有三個(gè)取值:

SCOPE_REQUEST:它的值是0,表示request請(qǐng)求作用范圍。

SCOPE_SESSION :它的值是1,表示session請(qǐng)求作用范圍。

SCOPE_GLOBAL_SESSION :它的值是2 ,表示全局會(huì)話作用范圍,即ServletContext上下文作用范圍。

2.preHandle 方法。WebRequestInterceptor的該方法返回值為void,不是boolean。所以該方法不能用于請(qǐng)求阻斷,一般用于資源準(zhǔn)備。

3.postHandle 方法。preHandle 中準(zhǔn)備的數(shù)據(jù)都可以通過(guò)參數(shù)WebRequest訪問(wèn)。ModelMap 是Controller 處理之后返回的Model 對(duì)象,可以通過(guò)改變它的屬性來(lái)改變Model 對(duì)象模型,達(dá)到改變視圖渲染效果的目的。

4.afterCompletion方法。Exception 參數(shù)表示的是當(dāng)前請(qǐng)求的異常對(duì)象,如果Controller 拋出的異常已經(jīng)被處理過(guò),則Exception對(duì)象為null 。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 姓名: 李小娜 [嵌牛導(dǎo)讀]: SpringMVC 中的Interceptor 攔截器也是相當(dāng)重要和相當(dāng)有用的,...
    n184閱讀 3,301評(píng)論 0 4
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂(lè)視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,783評(píng)論 11 349
  • 一、定義Interceptor實(shí)現(xiàn)類 SpringMVC 中的Interceptor 攔截請(qǐng)求是通過(guò)Handler...
    bboymonk閱讀 436評(píng)論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,527評(píng)論 19 139
  • 來(lái)到麗江 不許你浮躁 這座城市的節(jié)奏 是慢的 所以請(qǐng)你你慢下來(lái) 去感受不同的麗江 悠閑的走在四通八達(dá)的大街小巷 ...
    黃欣霖sullen閱讀 253評(píng)論 0 0

友情鏈接更多精彩內(nèi)容