实现session过期,刷新页面后登录页最大化
实现方法:在session过滤器中定义页面打开方式
public class SessionFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
response.setHeader("Access-Control-Allow-Origin", "*");
String[] notFilter = new String[] { "/img", "/js", "/css", "/login" ,"/layui", "/doLogin","/interfaces"};
String uri = request.getRequestURI();
boolean doFilter = true;
for (String s : notFilter) {
if (uri.indexOf(s) != -1) {
doFilter = false;
break;
}
}
if (doFilter) {
Object obj = request.getSession().getAttribute("user");
//若session中无用户信息
if (obj == null) {
//登录页面最大化
String root = request.getContextPath();
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
StringBuilder builder = new StringBuilder();
builder.append("<script type=\"text/javascript\">");
builder.append("window.top.location.href='");
builder.append(root+"/login");
builder.append("';");
builder.append("</script>");
out.print(builder.toString());
return;
} else {
filterChain.doFilter(request, response);
}
} else {
filterChain.doFilter(request, response);
}
}
public static boolean isAjaxRequest(HttpServletRequest request) {
String header = request.getHeader("X-Requested-With");
if (header != null && "XMLHttpRequest".equals(header))
return true;
else
return false;
}
}