spring自定义拦截器
主要内容
访问页面的时候我们需要对没有登陆的用户进行拦截,所以我们要对部分请求进行拦截。
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/appInfo/**"/>
<!--当请求以appInfo开头的时候经过这个拦截器-->
<bean class="util.Sysintercepter"></bean>
<!--标注拦截器定义的位置-->
</mvc:interceptor>
</mvc:interceptors>
这样就可以定义一个拦截器在配置文件中的配置信息,当访问的请求以appInfo开头的时候会经过这个拦截器。
然后我们需要定义一个拦截器,拦截器需要继承HandlerInterceptorAdapter。
我们可以重写三个方法。
在preHandle中,可以进行编码、安全控制等处理;
在postHandle中,有机会修改ModelAndView;
在afterCompletion中,可以根据ex是否为null判断是否发生了异常,进行日志记录。
public class Sysintercepter extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
if(null==request.getSession().getAttribute("devUser")){
System.out.println("这里当session为空的时候返回登陆页面");
response.sendRedirect("/login");
return false;
}
return true;
}
}