JavaWeb项目设置Session失效时长,失效后自动跳转页面

Posted shuzu渊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb项目设置Session失效时长,失效后自动跳转页面相关的知识,希望对你有一定的参考价值。

1、在项目的web.xml文件中设置session失效时间,并添加过滤器

<!-- 配置session30分钟后过期 -->
<session-config>
  <session-timeout>30</session-timeout>
</session-config>


<!-- 配置过滤器,filter-class路径为所编写的过滤器类的路径 --> <filter> <filter-name>loginFilter</filter-name> <filter-class>com.sale.filter.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>loginFilter</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping>

2、过滤器类

package com.sale.filter;
import java.io.IOException;  

import javax.servlet.Filter;  
import javax.servlet.FilterChain;  
import javax.servlet.FilterConfig;  
import javax.servlet.ServletException;  
import javax.servlet.ServletRequest;  
import javax.servlet.ServletResponse;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import javax.servlet.http.HttpSession;  
/**
 * 过滤器类
 * @author Saffi
 * @date 2018年1月31日
 */ public class LoginFilter implements Filter { @Override public void destroy() { } @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpReq=(HttpServletRequest)req; HttpServletResponse httpRes=(HttpServletResponse)res; HttpSession httpSession=httpReq.getSession(); String path = httpReq.getRequestURI(); //当前请求相对url String loginUrl = httpReq.getContextPath()+ "/loginout.action"; //登录界面url String initUrl = httpReq.getContextPath()+ "loginInit.action"; //初始化界面url String userName = (String)httpSession.getAttribute("currentUsername"); //在session中获取当前用户名 // 登陆页面、初始化页面均无需过滤 if(loginUrl.equals(path) || initUrl.equals(path)) { chain.doFilter(req, res); return; } if(userName==null){ httpRes.sendRedirect(loginUrl); return; }else{ chain.doFilter(req, res); return; } } @Override public void init(FilterConfig arg0) throws ServletException { } }

 










以上是关于JavaWeb项目设置Session失效时长,失效后自动跳转页面的主要内容,如果未能解决你的问题,请参考以下文章

shiro的session失效后重新登录,怎么回到首页

java中怎么设置一个session在整个web中的时间

session 失效 时间

java web中,在session失效之前向数据库插入一条数据,应该怎么做?如何监听session失效?

php session操作期间经常失效怎么解决

设置session失效的几种方法