提问人:Raja Vallapan 提问时间:6/29/2023 最后编辑:Roman CRaja Vallapan 更新时间:6/30/2023 访问量:50
如何在Struts2中设置会话超时?
How to set session timeout in Struts2?
问:
如何在 Struts 2 中设置会话超时:
import java.util.Map;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class SessionInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 1L;
@Override
public String intercept(ActionInvocation invocation) throws Exception {
Map<String,Object> session = invocation.getInvocationContext().getSession();
if(session.isEmpty())
return "session";
return invocation.invoke();
}
}
它不起作用。
答:
0赞
Roman C
6/30/2023
#1
您可以在拦截器中使用的此代码:
HttpServletSession httpsession = invocation.getInvocationContext().getServletRequest().getSession();
httpsession.setMaxInactiveInterval(timeout);
您可以阅读有关将超时设置为 http 会话的更多信息:
使用
web.xml
和setMaxInactiveInterval
设置会话超时的区别第一种方法是在所有会话的配置中使用静态常量。第二种方法是动态的,您可以在运行时使用 servlet API 动态设置值,并且仅影响调用该方法的会话。设置该值后,无论使用哪种方法,容器都会使会话失效。看看文档是怎么说的:
HttpSession#setMaxInactiveInterval(int)
指定在 servlet 容器使此会话失效之前,客户机请求之间的时间(以秒为单位)。
间隔值为零或更小表示会话不应超时。
部署描述符中的值以“分钟”为单位,但该方法接受以“秒”为单位的值。
web.xml
setMaxInactiveInterval()
评论
0赞
Roman C
9/6/2023
如果这个答案对你有帮助,那么你应该把它标记为接受。我在答案左边的复选框。此外,值得投票支持帮助您的答案,以帮助其他人选择正确的答案。
评论