gpt4 book ai didi

java - 在 Tomcat 5.5 上禁用更新 session

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:58:08 25 4
gpt4 key购买 nike

如何在 Tomcat 5.5 中针对特定请求禁用重置 session 超时?在一个页面上,我有一个 javascript 函数,它定期向服务器发送 ajax 调用。在服务器端,我不希望这些调用更新 session 生命周期。

谢谢。

最佳答案

好的,既然您不喜欢我的第一个想法,我想出了这个 JSP 演示。这有点像 hack,但确实有效。要测试,请复制并粘贴。浏览到第一个 JSP。它将启动一个 session 并设置非 Activity 间隔。重定向后,继续点击浏览器上的刷新按钮。无论您请求第二个 JSP 多少次,当前 session 都会终止。

测试1.jsp

<%
session.setMaxInactiveInterval(20); //for easy testing
response.sendRedirect("test2.jsp");
%>

test2.jsp

<%@ page session="false" import="java.util.*" %>
<%
HttpSession session = request.getSession(false);
if(session == null){
out.print("Error, No Session!");
return;
}
long creationTime = session.getCreationTime();
long now = new Date().getTime();
long lastAccessedTime = session.getLastAccessedTime();
int oldInterval = session.getMaxInactiveInterval();
int inactivePeriod = (int)(now - lastAccessedTime)/1000;
session.setMaxInactiveInterval(oldInterval - inactivePeriod);
int newInterval = session.getMaxInactiveInterval();
%>
<html>
<body>
session id is <%=session.getId()%>
<br/><%=creationTime%> = creationTime
<br/><%=lastAccessedTime%> = lastAccessedTime
<br/><%=now%> = now
<br/><%=oldInterval%> = oldInterval in seconds
<br/><%=inactivePeriod%> = inactivePeriod
<br/><%=newInterval%> = newInterval in seconds
</body>
</html>

关于java - 在 Tomcat 5.5 上禁用更新 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10463402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com