java filter
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
HttpSession session = req.getSession(true);
UserBean user = (UserBean) session.getAttribute("user");
String url = req.getRequestURL().toString();//
if (url.contains(".jsp") || url.contains(".action")) {
if (session == null || user == null) {// Session invalidate
if (!this.ignoreUrl(url)) {
request.getRequestDispatcher("/login.jsp").forward(request, response);
// return;
// res.sendRedirect(req.getContextPath() + "/login.jsp");
}
} else {
if (user.getId() != 0) {
ClientUserHolder.setCurUserId(user.getId());
chain.doFilter(request, response);
} else {
res.sendRedirect(req.getContextPath() + "/login.jsp");
}
}
}
}
public void init(FilterConfig config) throws ServletException {
}
private boolean ignoreUrl(String url) {
String[] ignoreList = { "login_login.action", "login.jsp" };
for (String ignore : ignoreList) {
// if (url.contains(ignore)) {
if (url.indexOf(ignore) > -1) {
return true;
}
}
return false;
}
比如我现在打开了一个页面,然后我把项目重新启动了
我不刷新之前的页面,直接点击注销。
界面不跳转到登录页面。
希望大家可以帮助下,在线求助!