發布日期:2023-12-25 瀏覽次數:1792
單個攔截器的執行流程:
1. 攔截器類可以通過實現HandlerInterceptor接口或繼承HandlerInterceptor接口的實現類(如HandlerInterceptorAdapter)來定義。
2. 在程序執行時,會首先執行攔截器類中的preHandle()方法。
3. 如果preHandle()方法的返回值為true,則程序會繼續向下執行處理器中的方法;如果返回值為false,則不再向下執行。
4. 在業務處理器(即控制器Controller類)處理完請求后,會執行postHandle()方法。
5. 然后會通過DispatcherServlet向客戶端返回響應。
6. 在DispatcherServlet處理完請求后,才會執行afterCompletion()方法。
多個攔截器的執行流程:
1. 攔截器類可以通過實現WebRequestInterceptor接口或繼承WebRequestInterceptor接口的實現類來定義多個攔截器。
2. 在程序中有多個攔截器同時工作時,它們的preHandle()方法會按照配置文件中攔截器的配置順序執行。
3. 如果有多個攔截器同時工作,它們的postHandle()方法和afterCompletion()方法則會按照配置順序的反序執行。