有一种情况,我有一个表单,从我的应用程序显示为动态弹出各种事件。我填写表格并提交,导致会话到期。
我发现在表单中打印请求标头的值时,我发现缺少jsession id或者有时会创建新的jseesion id。
这种情况并不常发生。在工作的情况下,我不会错过任何jsession id或获得不同的jseesion id。
有什么建议吗?
以下是代码示例。
<HTML>
<HEAD>
</HEAD>
<%
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements())
{
String headerName = headerNames.nextElement();
String headerValue = request.getHeader(headerName);
System.out.println("Header Name " +headerName );
System.out.println("headerValue " +headerValue );
}
%>
<body>
Comments </br>
<form name = 'savefrm' action ='save.jsp'>
<textarea name = 'comments' id = 'text' cols=38 rows=8>"+comments.trim()+"</textarea>
<input type="submit" value="ok"/>
</form>
</body>
</html>
答案 0 :(得分:1)
您应该通过web.config设置会话超时,如下所示:
<configuration>
<system.web>
<sessionState timeout="100000"></sessionState>
</system.web>
</configuration>
1000 ms = 1秒
答案 1 :(得分:1)
在web.xml文件中:
<web-app>
<session-config>
<session-timeout>20</session-timeout>
</session-config>
</web-app>
20 = 20分钟
或者您可以在代码中执行此操作:
HttpSession session = request.getSession();
session.setMaxInactiveInterval(20*60);
20 * 60 = 20分钟