Spring MVC中攔截器HandlerInterceptorAdapter中的preHandle方法


攔截器:顧名思義,就是對請求進行攔截,做一些預處理、后處理或返回處理的操作 
Spring MVC中使用攔截器的方法,繼承HandlerInterceptorAdapter類,並根據需求實現其中的preHandle方法(預處理)、postHandle方法(返回處理),afterCompletion方法(后處理)。

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)     
        throws Exception {     
        return true;    

 }     
public void postHandle(     
        HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)     
        throws Exception {     
}     
public void afterCompletion(     
        HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)     
        throws Exception {     

現在着重說preHandler方法:

當請求來的時候,先經過applyPreHandle,內部會按順序獲取所有的攔截器,並依次攔截

當進入攔截器鏈中的某個攔截器,並執行preHandle方法后
1.當preHandle方法返回false時,從當前攔截器往回執行所有攔截器的afterCompletion方法,再退出攔截器鏈。也就是說,請求不繼續往下傳了,直接沿着來的鏈往回跑
2.當preHandle方法全為true時,執行下一個攔截器,直到所有攔截器執行完。再運行被攔截的Controller。然后進入攔截器鏈,運行所有攔截器的postHandle方法,完后從最后一個攔截器往回執行所有攔截器的afterCompletion方法.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM