詳解Spring攔截器流程及多個(gè)攔截器的執(zhí)行順序_第1頁(yè)
詳解Spring攔截器流程及多個(gè)攔截器的執(zhí)行順序_第2頁(yè)
詳解Spring攔截器流程及多個(gè)攔截器的執(zhí)行順序_第3頁(yè)
詳解Spring攔截器流程及多個(gè)攔截器的執(zhí)行順序_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、詳解spr攔截器流程及多個(gè)攔截器的執(zhí)行順序-攔截器的定義-測(cè)試攔截器*多個(gè)攔截器的執(zhí)行順序*讓_pr進(jìn)行攔截*總結(jié)攔截器是Spring中的組件,它可以在進(jìn)入請(qǐng)求方法前做一些操作,也可以在請(qǐng)求方法后和渲染視圖后做一些事情。攔截器的定義的攔截器只需要實(shí)現(xiàn)nrn接口r并進(jìn)行酉配置即可。nrn接門的定義如下:publiinrHan:lerInterceptoroleanpreHan:le(HttpServlerrntrue;oi:postHan:le(HttpServletoi:afterCo:pletion(HttpSerrequest,HttpServletResponseresponsreqHt

2、tpServletResponseresponrequest,HttpServletResponsere在nrn中共有三個(gè)方法,每個(gè)方法的含義如下:prn:進(jìn)入請(qǐng)求方法之前執(zhí)行;pn請(qǐng)求方法執(zhí)行完成之后執(zhí)行;r:p視圖渲染后執(zhí)行。攔截器的執(zhí)行流程類型的n它的返回值影響著請(qǐng)求方法,以及pan口那么后續(xù)的流程將不被執(zhí)行,這可能也是攔截器命名的由來(lái)。的plin在prnd法中,它的返回值是行。具體如下。也就是說(shuō),在pr中如果返回測(cè)試攔截器寫(xiě)一個(gè)簡(jiǎn)單攔截器,代碼如下:Slf4publicpstInterceptorrri:eanpreHan:(preHan:lerreturntrue;pSe

3、rn:lerIntequestrrri:ecvoi:log.inn:leHanpSerOverri:epublicvoilog.inion(HttpSeretion);ttpServletResponseresponsepServletResponseresponse,HttpServletResponserespon創(chuàng)建了一個(gè)下:n的監(jiān)聽(tīng)器類,它實(shí)現(xiàn)了nrn的所有接口。寫(xiě)完n還需要進(jìn)行注冊(cè)。代碼如ConfigurationpinnigipnnfigurerOverri:epiinnrprgirrgireaddIntercepntercep再來(lái)寫(xiě)一個(gè)簡(jiǎn)單的請(qǐng)求方法,代碼如下:GetMappin

4、g(test)publicStringtest()returntest;來(lái)啟動(dòng)我們的項(xiàng)目,并進(jìn)行訪問(wèn),控制臺(tái)的輸出如下:nio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tInter。eptor多個(gè)攔截器的執(zhí)行順序我們來(lái)寫(xiě)多個(gè)相同的監(jiān)聽(tīng)器,分別是Tene、eprner和eperner。然后我們進(jìn)行注冊(cè),注冊(cè)代碼如下:erridepublidaddInterepor,(Inter。eporRegirre,trre,try.addInter

5、。eptor(te,tInter。eptor()re,try.addInter。eptor(te,tInter。eptor2(re,try.addInter。eptor(te,tInter。eptor3(請(qǐng)求我們的方法,輸出如下:nio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tI

6、nter。eptornio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tInter。eptorp跟注冊(cè)順序是相反的。注意觀察輸出的順序,preHandle方法是按注冊(cè)順序進(jìn)行執(zhí)行的,而pHan和eaer讓口preH口進(jìn)行攔截口我們讓ener的jpreHarndle返回值為al,e然后查看一下輸出內(nèi)容。nio-8081-exeeample.demo.Te,tIn

7、ter。eptornio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tInter。eptor可以看到,e行了。ner的jpreHarndle的返回值為al以后,相當(dāng)于在ener的jpreHarndle后續(xù)流程則不再繼續(xù)執(zhí)我們調(diào)整一下注冊(cè)的順序,代碼如下:erridepublidaddInterepor,(Inter。eporRegirre,trre,try.addInter。eptor(te,tInter。eptor2(re,try.addInter。eptor(te,tInter。eptor()re,try.addInter。eptor(te,tInter。eptor3(修改順序后的輸出如下:example.deenerepnee可以看到它后面的流程都被攔截了,沒(méi)有機(jī)會(huì)執(zhí)行了。攔截器是使用一個(gè)進(jìn)行保存,我們

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論