Сессия истекла при отправке формы - PullRequest
0 голосов
/ 23 февраля 2012

Существует сценарий, в котором у меня есть форма, которая из моего приложения показывается как динамическое всплывающее окно для различных событий. Я заполняю форму и отправляю ее, что приводит к истечению срока сессии.

Я обнаружил, что при печати значений заголовков запроса в форме я вижу, что идентификатор jsession отсутствует или иногда создается новый идентификатор jseesion.

Это происходит не часто. В рабочих случаях я не пропускаю ни одного идентификатора jsession или получаю разные идентификаторы jseesion.

Есть предложения?

Ниже приведен пример кода.

<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>

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

В файле 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 минут

1 голос
/ 23 февраля 2012

Вы должны установить время ожидания вашего сеанса через web.config следующим образом:

<configuration>
  <system.web>
     <sessionState timeout="100000"></sessionState>
  </system.web>
 </configuration>

1000 мс = 1 секунда

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...