利用Filter处理Session过期
2008-08-29 16:28
176 查看
package comm;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.*;
public class AccessControlFilter implements Filter {
private FilterConfig filterConfig = null;
public void init(FilterConfig config) throws ServletException {
this.filterConfig = config;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException,
IOException {
HttpServletRequest req = (HttpServletRequest) request;
req.getSession().getAttribute("oms_user");
System.out.println("filter start ........ " + "Chain=:" + chain);
System.out.println("Session oms_user : " + req.getSession().getAttribute("oms_user"));
String path = req.getServletPath();
if (path.equalsIgnoreCase("/LoginServlet")) {
chain.doFilter(request, response);
} else {
// String islogin = (String) session.getAttribute("passed");
if (req.getSession().getAttribute("oms_user") != null) {
chain.doFilter(request, response);
} else {
req.getSession().invalidate();
PrintWriter out = response.getWriter();
out.println("<script language=javascript>");
out.println("alert('Session is timeout, pleas login again')");
out.println("</script>");
out.println("<html><head></head>");
out.println("<Script LANGUAGE='javascript'> self.parent.location= '/woms/webpage/index.htm';</script>");
out.println("</head>");
out.println("<body>");
out.println("<h1>please login first</h1>");
out.println("</body></html>");
}
}
}
public void destroy() {
this.filterConfig = null;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<filter>
<filter-name>loginfilter</filter-name>
<filter-class>comm.AccessControlFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginfilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>loginfilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<session-config>
<session-timeout>36000</session-timeout>
</session-config>
</web-app>
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.*;
public class AccessControlFilter implements Filter {
private FilterConfig filterConfig = null;
public void init(FilterConfig config) throws ServletException {
this.filterConfig = config;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException,
IOException {
HttpServletRequest req = (HttpServletRequest) request;
req.getSession().getAttribute("oms_user");
System.out.println("filter start ........ " + "Chain=:" + chain);
System.out.println("Session oms_user : " + req.getSession().getAttribute("oms_user"));
String path = req.getServletPath();
if (path.equalsIgnoreCase("/LoginServlet")) {
chain.doFilter(request, response);
} else {
// String islogin = (String) session.getAttribute("passed");
if (req.getSession().getAttribute("oms_user") != null) {
chain.doFilter(request, response);
} else {
req.getSession().invalidate();
PrintWriter out = response.getWriter();
out.println("<script language=javascript>");
out.println("alert('Session is timeout, pleas login again')");
out.println("</script>");
out.println("<html><head></head>");
out.println("<Script LANGUAGE='javascript'> self.parent.location= '/woms/webpage/index.htm';</script>");
out.println("</head>");
out.println("<body>");
out.println("<h1>please login first</h1>");
out.println("</body></html>");
}
}
}
public void destroy() {
this.filterConfig = null;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<filter>
<filter-name>loginfilter</filter-name>
<filter-class>comm.AccessControlFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginfilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>loginfilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<session-config>
<session-timeout>36000</session-timeout>
</session-config>
</web-app>
相关文章推荐
- flask session session已过期,再发送ajax请求如何处理?
- flex(替代session过期)用户长时间不操作要求重新登录的处理
- 关于session过期跳转的处理方法
- ajax前置处理实现异步请求session过期时跳转登录页面
- Session 过期时的处理方法之一:禁止弹出窗口
- Ajax 请求session过期的统一处理
- JAVA Web 安全机制----使用filter验证session用户和页面缓存问题处理
- Session 过期时的处理方法之二:Redirect 到其它页面
- MVC过滤器处理Session过期
- 调用ajax时session过期的处理方法
- session过期情况下弹出窗口显示2个登陆页面的问题处理
- 利用ThreadLocal & Filter 实现事务处理
- 【转】Session 过期问题处理
- 关于session过期后处理问题
- Session 过期时的处理方法之二:Redirect 到其它页面
- Session 过期时的处理方法之一:禁止弹出窗口
- 利用ASP.NET MVC Filter 处理网站异常
- 使用filter验证session用户和页面缓存问题处理
- js--Ajax的小知识(二):处理ajax的session过期的请求
- session过期,处理ajax请求,使其重新登录