Java设置session过期时间的几种方法(亲测有效)
warning:
这篇文章距离上次修改已过180天,其中的内容可能已经有所变动。
在Java中,设置session过期时间可以通过以下几种方法实现:
- 在web.xml中配置全局session超时时间:
<web-app ...>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
</web-app>
这里的时间单位是分钟,上面的例子表示session将在30分钟后过期。
- 在Servlet中通过
HttpSession
的setMaxInactiveInterval
方法设置:
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
session.setMaxInactiveInterval(60); // 单位是秒,设置为60秒后过期
}
- 在JSP中通过
session
对象的setMaxInactiveInterval
方法设置:
<%
session.setMaxInactiveInterval(60); // 单位是秒,设置为60秒后过期
%>
- 在Filter中设置:
public class SessionTimeoutFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpSession session = httpRequest.getSession();
session.setMaxInactiveInterval(60); // 单位是秒,设置为60秒后过期
chain.doFilter(request, response);
}
}
在web.xml中注册这个Filter:
<filter>
<filter-name>SessionTimeoutFilter</filter-name>
<filter-class>com.yourpackage.SessionTimeoutFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SessionTimeoutFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
以上方法均可设置session的过期时间,具体使用哪种取决于你的具体需求和场景。
评论已关闭