您的位置:首页 > 编程语言 > Java开发

判断用户session 是否过期,如果过期,让用户重新登录

2017-03-29 15:59 387 查看
1、在web.xml配置:

<!-- 判断用户session 是否过期,如果过期,让用户重新登录 -->
<filter>
<filter-name>WmsFilter</filter-name>
<filter-class>com.test.wms.filter.WmsFilter</filter-class>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>WmsFilter</filter-name>
<url-pattern>/mgr/*</url-pattern>/*基于请求路径过滤*/
</filter-mapping>

2、对应过滤器代码:

public class WmsFilter implements Filter {
// 日志
Logger logger = LoggerFactory.getLogger(WmsFilter.class);

public void destroy() {
// TODO Auto-generated method stub
}

public void doFilter(ServletRequest sreq, ServletResponse sresp, FilterChain chain)
throws IOException, ServletException {
if (!(sreq instanceof HttpServletRequest) || !(sresp instanceof HttpServletResponse)) {
throw new ServletException("OncePerRequestFilter just supports HTTP requests");
}
HttpServletRequest httpRequest = (HttpServletRequest) sreq;
HttpServletResponse httpResponse = (HttpServletResponse) sresp;
httpResponse.setHeader("Cache-Control","no-cache"); 
httpResponse.setHeader("Pragma","no-cache"); 
httpResponse.setDateHeader ("Expires", -1); 
httpResponse.setHeader("P3P","CP=CAO PSA OUR");

HttpSession session = httpRequest.getSession();
if(!httpResponse.isCommitted()){
if(session != null){
Object object = session.getAttribute("userName");
String userName = object == null ? null : (String) object;
if (userName == null) {
boolean isAjaxRequest = isAjaxRequest(httpRequest);
if (isAjaxRequest) {
httpResponse.sendError(HttpStatus.UNAUTHORIZED.value(), "您已经太长时间没有操作,请刷新页面");
}
httpResponse.sendRedirect("/wms/index.jsp");
}
}else{
httpResponse.sendRedirect("/wms/index.jsp");
}
}
chain.doFilter(sreq, sresp);
}

/**
* 判断是否为Ajax请求

* @param request
*            HttpServletRequest
* @return 是true, 否false
*/
public static boolean isAjaxRequest(HttpServletRequest request) {
return (request.getHeader("X-Requested-With") != null
&& "XMLHttpRequest".equals(request.getHeader("X-Requested-With").toString()));
}

public void init(FilterConfig config) throws ServletException {
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  web spring mvc
相关文章推荐