拦截器用于对浏览器到服务器的请求数据或者服务器到浏览器的返回数据作一些更改,或者对请求数据作一些加强spring
配置拦截器的拦截规则
<mvc:interceptors>浏览器
<mvc:interceptor> <mvc:mapping path="/hello3"/> <!-- 定义在mvc:interceptor下面的表示是对特定的请求才进行拦截的 --> <bean class="interceptor.Test1Interceptor"/> </mvc:interceptor>
</mvc:interceptors>服务器
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {mvc
System.out.println("postHandle"); modelAndView.addObject("name","被拦截器修改后的消息");
}app
使用原则:处理全部请求的共同问题框架
1.解决乱码问题jsp
2.解决权限验证问题函数
在preHandle方法中对用户是否登陆进行判断,若未登陆,则跳转至登陆页面:post
if(args.getSession.getAttribute("user")==null){
arg0.getRequestDispatcher("/login.jsp").forward(arg0,arg1);
return false;
}
return true;spa
过滤器Filter依赖于servlet容器,基于回调函数,过滤范围大
拦截器Interceptor依赖于框架容器,基于反射机制,只过滤请求。
只是记录下知识点,参考自https://zhuanlan.zhihu.com/p/...