重新認識HTTP3xx重定向機制
阿新 • • 發佈:2020-12-09
1.自定義攔截器Spring MVC也可以使用攔截器對請求進行攔截處理,使用者可以自定義攔截器來實現特定的功能,自定義的攔截器必須實現HandlerInterceptor介面
preHandle():這個方法在業務處理器處理請求之前被呼叫,在該方法中對使用者請求 request 進行處理。如果程式設計師決定該攔截器對請求進行攔截處理後還要呼叫其他的攔截器,或者是業務處理器去 進行處理,則返回true;如果程式設計師決定不需要再呼叫其他的元件 去處理請求,則返回false。 postHandle():這個方法在業務處理器處理完請求後,但是DispatcherServlet 向客戶端返回響應前 被呼叫,在該方法中對 使用者請求request進行處理。 afterCompletion():這個方法在 DispatcherServlet 完全處理完請求後被呼叫,可以在該方法中進行一些資源清理的操作。實現步驟:①實現HandlerInterceptor介面
來自為知筆記(Wiz)
②在springMVC配置檔案中註冊public class FirstInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("preHandle"); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("postHandle"); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("afterCompletion"); } }
<mvc:interceptors>
<bean class="com.wyb.springMVC.interceptors.FirstInterceptor"></bean>
</mvc:interceptors>
2.攔截器方法執行順序圖:3.當有多個攔截器配置時執行順序<mvc:interceptors> <bean class="com.wyb.springMVC.interceptors.FirstInterceptor"></bean> ///這裡預設對所有請求攔截 <!-- <bean class="com.wyb.springMVC.interceptors.SecondInterceptor"/>--> <mvc:interceptor> <mvc:mapping path="/"/> ////這裡可以對攔截器配置攔截url路徑 <bean class="com.wyb.springMVC.interceptors.SecondInterceptor"/> </mvc:interceptor> </mvc:interceptors>
來自為知筆記(Wiz)