/** * * * * 攔截器的作用: * 每個請求到達Controller之前,或者每個響應到達view之前,都可以進行攔截。 * 1.全局日志(誰提交了請求,要做什么事) * 2.權限管理(每個請求都能判斷權限) * 代碼: * 寫一個類,實現springframework.web.servlet.HandlerInterceptor接口 * preHandle請求前攔截(尚未執行Controller) * postHandle控制器執行完,生成視圖之前可以加入的動作(加入模型中的公共部分,如版權信息) * afterCompletion 釋放資源,比如在pre中打開了數據庫鏈接,在這里可以進行關閉 * * 這三個方法根據業務選,不實不編寫代碼就可以了。 * * * 設置攔截器鏈 * <mvc:interceptors> * <mvc:interceptor> * <mvc:mapping path=""/> 可選項。若不指定,則默認攔截所有請求; 若指定了,則只攔截符合一定模式的請求。 * 例子:<mvc:mapping path="/user/*"/> eg:攔截user/下的所有請求 * <bean class="com.my.common.MyInterceptor"></bean> * </mvc:interceptor> * * <mvc:interceptor> 攔截器鏈中的第二個 * </mvc:interceptor> * * </mvc:interceptors> *
處理流程
1請求沿著攔截器①--攔截器②…攔截器N的preHandle方法執行,最終到達控制器
2在控制器執行完畢,將要生成視圖之前依次執行攔截器N--攔截器N-1….攔截器②---攔截器①中的postHandle方法。 * */
新聞熱點
疑難解答