在web.xml中配置:
<filter>
<filter-name>Check Session Timeout</filter-name>
<filter-class>com.utils.filter.SessionTimeoutFilter</filter-class>
<init-param>
<param-name>loginPage</param-name>
<param-value>login.jsp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Check Session Timeout</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Check Session Timeout</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Check Session Timeout</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<session-config>
<session-timeout>20</session-timeout>
</session-config>
过滤器类:
public class SessionTimeoutFilter implements Filter{
public String loginPage = null;
public void init(FilterConfig config) throws ServletException {
loginPage=config.getInitParameter("loginPage");
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
res.addHeader("P3P", "CP=CAO PSA OUR");
HttpSession session = req.getSession(false);
boolean flag = false;
String targetURL = req.getRequestURI();
if (session != null && session.getAttribute("username_phone") != null) {
flag = true;
}else if(targetURL.endsWith(loginPage)) {
flag = true;
}else {
String BasePath = null;
if (req.getContextPath().equals("")){
BasePath = req.getScheme() + "://" + req.getServerName()
+ ":" + req.getServerPort() + "/login.jsp";
}
else{
BasePath = req.getScheme() + "://" + req.getServerName()
+ ":" + req.getServerPort() + req.getContextPath()
+ "/login.jsp";
}
res.sendRedirect(BasePath);
return;
}
if (!flag) {
/*java.io.PrintWriter writer = res.getWriter();
writer.print("<script language=\"javascript\">");
writer.print("if(window.parent==null){");
writer.print("window.open(\"" + req.getContextPath() + "/login.jsp"
+ "\");");
writer.print("}else{");
writer.print("window.parent.top.location.href=\""
+ req.getContextPath() + "/login.jsp" + "\";}");
writer.print("</script>");
writer.flush();*/
return;
} else {
chain.doFilter(request, response);
}
}
public void destroy() {
this.loginPage=null;
}
}
分享到:
相关推荐
使用过滤器实现判断用户是否登录验证 使用过滤器实现判断用户是否登录验证
C++实现的布隆过滤器,其中使用到的bitset也是自己简单实现的一个BitContainer。可以处理千万条到亿条记录的存在性判断。做成dll可以在很多场合使用,如自己写爬虫,要判断一个url是否已经访问过,判断一个单词是否...
过滤器实现get请求乱码问题 过滤器实现get请求乱码问题 过滤器实现get请求乱码问题
JSP过滤器方式实现无损坏给图片添加水印
SSM登陆验证之过滤器实现,未登录用户访问首页自动拦截跳转到登陆页面,注释清楚,代码简介,适合初学者。
管道过滤器程序,主要用java实现 管道过滤器程序,主要用java实现
一个超帅的jsp过滤器 ,对登录进行验证
对于hibernate中session周期的控制
过滤器实现分目录权限控制 servlet+jsp 没加数据库
布隆过滤器,大家学过数据结构的应该都清楚,一般的字典树要实现嵌入和查找都内存的消耗非常大,布隆过滤器有BloomFilter,string, BKDRHash, APHash, DJBHash> bf五个参数你要查找的元素个数,查找元素类型,三个...
方法过滤器日志实现
使用java实现的布隆过滤器算法,jdk-1.7,使用java实现的布隆过滤器算法,jdk-1.7,使用java实现的布隆过滤器算法,jdk-1.7,
实现网站的内容过滤,示例为过滤图片,可以定义多个
4899过滤器4899过滤器4899过滤器4899过滤器4899过滤器4899过滤器4899过滤器
不允许未登陆用户访问的过滤器配置,filter,用户登陆过滤器,session判断用户登陆 不允许未登陆用户访问的过滤器配置
登陆过滤器登陆过滤器登陆过滤器登陆过滤器登陆过滤器登陆过滤器登陆过滤器登陆过滤器登陆过滤器
JAVA过滤器 过滤器JAVA过滤器 过滤器JAVA过滤器 过滤器JAVA过滤器 过滤器JAVA过滤器 过滤器JAVA过滤器 过滤器JAVA过滤器 过滤器JAVA过滤器 过滤器JAVA过滤器 过滤器JAVA过滤器 过滤器
管道过滤器的实现java,希望大家能够一起学习,我只是将文件放到了里面,希望大家自己搭建工程
在嵌入式qt项目中,有时并不...在qt项目中,可以通过重写事件过滤器来实现屏幕操作的检测,加上定时器的时间控制,可以实现指定时间内没有屏幕操作,给应用程序发送一个信号;通过这个方式,也可以用于屏保应用的实现
QT事件过滤器实现动态图片按钮,就是鼠标按下时按钮图片发生变化,同时响应鼠标的按下事件。