Java设置session过期时间的几种方法(亲测有效)
warning:
这篇文章距离上次修改已过424天,其中的内容可能已经有所变动。
在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的过期时间,具体使用哪种取决于你的具体需求和场景。
评论已关闭