Проблема с HttpSession в Struts2 - PullRequest
       20

Проблема с HttpSession в Struts2

0 голосов
/ 13 апреля 2011

Я делаю многопользовательское приложение для входа в систему, где я использую сеанс для хранения объекта пользователя.

HttpSession session = request.getSession(true);
  session.setAttribute("user",user);

На каждой странице я проверяю, используя JSTL, присутствует ли пользовательский объект в сеансе.

<c:choose>
   <c:when test="${not empty sessionScope.user}"> 
    //jsp code
    </c:when>
   <c:otherwise> 
    <logic:redirect forward="welcome"/>
  </c:otherwise>
</c:choose>

Моя проблема в том, что если пользователь нажимает на ссылку href в приложении, он заменяется на Предыдущий пользователь в сеансе.т.е. он загружает пользователя из кеша.Если я обновлю страницу, она загрузит правильного пользователя.

Как я могу это исправить?

Ответы [ 2 ]

1 голос
/ 13 апреля 2011

Если вы используете Struts2, возможно, имеет смысл иметь эту проверку в Перехватчике, а не повторять код в каждой JSP.

http://struts.apache.org/2.0.11/docs/interceptors.html

0 голосов
/ 13 апреля 2011

Нейт прав, это лучше всего обрабатывать в перехватчике. Этот ответ может быть вам полезен.

Редактировать

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

...