/** * * * * 拦截器的作用: * 每个请求到达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方法。 * */
新闻热点
疑难解答