public class SessionHandlerInterceptor extends HandlerInterceptorAdapter {
/**
* 对拦截的请求进行处理
*
* @param request 请求
* @param response 响应
* @param handler 处理器
* @return 返回是否通过
* @throws Exception 异常
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
if (null == AuthUtil.getSessionUserAuth(request)) {
if (request.getHeader("x-requested-with") != null
&& request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")) {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
response.setDateHeader("Expires", 0);
response.setHeader("sessionstatus", "timeout");
}
response.setHeader("ip", WebToolUtils.getLocalIP());
return false;
}
response.setHeader("ip", WebToolUtils.getLocalIP());
return true;
}
/**
* 发送处理请求
*
* @param request 请求
* @param response 响应
* @param handler 处理
* @param modelAndView 模型及视图
* @throws Exception 异常
*/
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
super.postHandle(request, response, handler, modelAndView);
}
/**
* 对拦截的请求进行处理
*
* @param request 请求
* @param response 响应
* @param handler 处理器
* @return 返回是否通过
* @throws Exception 异常
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
if (null == AuthUtil.getSessionUserAuth(request)) {
if (request.getHeader("x-requested-with") != null
&& request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")) {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
response.setDateHeader("Expires", 0);
response.setHeader("sessionstatus", "timeout");
}
response.setHeader("ip", WebToolUtils.getLocalIP());
return false;
}
response.setHeader("ip", WebToolUtils.getLocalIP());
return true;
}
/**
* 发送处理请求
*
* @param request 请求
* @param response 响应
* @param handler 处理
* @param modelAndView 模型及视图
* @throws Exception 异常
*/
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
super.postHandle(request, response, handler, modelAndView);
}
}
在spring-servelt.xml中配置自定义拦截器
<!-- 配置自定义过滤 -->
<mvc:interceptors>
<mvc:interceptor>
<!-- 需要被拦截的路径 -->
<mvc:mapping path="/app/**"></mvc:mapping>
<mvc:exclude-mapping path="/app/user/**"></mvc:exclude-mapping>
<!-- 拦截处理的interceptor -->
<bean class="com..counting.web.interceptor.SessionHandlerInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>