AI人工智能在線問(wèn)答網(wǎng)頁(yè)版,國(guó)內(nèi)訪問(wèn)免費(fèi)試用,具備高度穩(wěn)定性
瀏覽器直接訪問(wèn)發(fā)布日期:2023-12-25 瀏覽次數(shù):1141
單個(gè)攔截器的執(zhí)行流程:
1. 攔截器類可以通過(guò)實(shí)現(xiàn)HandlerInterceptor接口或繼承HandlerInterceptor接口的實(shí)現(xiàn)類(如HandlerInterceptorAdapter)來(lái)定義。
2. 在程序執(zhí)行時(shí),會(huì)首先執(zhí)行攔截器類中的preHandle()方法。
3. 如果preHandle()方法的返回值為true,則程序會(huì)繼續(xù)向下執(zhí)行處理器中的方法;如果返回值為false,則不再向下執(zhí)行。
4. 在業(yè)務(wù)處理器(即控制器Controller類)處理完請(qǐng)求后,會(huì)執(zhí)行postHandle()方法。
5. 然后會(huì)通過(guò)DispatcherServlet向客戶端返回響應(yīng)。
6. 在DispatcherServlet處理完請(qǐng)求后,才會(huì)執(zhí)行afterCompletion()方法。
多個(gè)攔截器的執(zhí)行流程:
1. 攔截器類可以通過(guò)實(shí)現(xiàn)WebRequestInterceptor接口或繼承WebRequestInterceptor接口的實(shí)現(xiàn)類來(lái)定義多個(gè)攔截器。
2. 在程序中有多個(gè)攔截器同時(shí)工作時(shí),它們的preHandle()方法會(huì)按照配置文件中攔截器的配置順序執(zhí)行。
3. 如果有多個(gè)攔截器同時(shí)工作,它們的postHandle()方法和afterCompletion()方法則會(huì)按照配置順序的反序執(zhí)行。