2016-04-26 3 views
0

У меня проблема с обработкой сеансов между сервлетом Java, страницей jsp и действием Struts. Java-сервлет добавляет некоторый параметр в сеанс, когда запрашивает запрос, и sendRedirect на какой-то page1.jsp. На странице 1 У меня есть URL-адрес Struts Action, такого как strutsAction.do. Когда запрос StrutsAction получает, сеанс не содержит атрибутов, которые я добавил в Java-сервлет. Нажав на страницу, возвращенную этим действием, не обновляет сеанс Java Servlet, но у них есть тот же SessionId. Итак, после session.getMaxInactiveInterval() сеанса сеанса сервлетов я получаю событие sessionDestroyed(), даже когда я делаю действия на странице, возвращенной StrutsAction. enter image description here Как исправить эту проблему?Обновление сеанса другого сервлета

ответ

0

В случае SendRedirect называют старый запрос и объект ответа теряется, поскольку он рассматривается как новый запрос,

Вы должны попробовать следующий код

RequestDispatcher rd = servletContext.getRequestDispatcher("/pathToResource"); 
    rd.forward(request, response); 

becuase когда вперед вызывается requestdispather объекта мы переходим объект запроса и ответа, поэтому наш старый объект запроса присутствует на новом ресурсе, который будет обрабатывать наш запрос.