сеанс, чтобы показать сообщение и кнопку назад - PullRequest
0 голосов
/ 07 января 2012

у меня есть 3 jsp: -

  1. a.jsp
  2. b.jsp
  3. c.jsp

Из.jsp Я собираюсь на b.jsp, чтобы показать какой-то результат.И когда пользователь обновляет одну из записей, я вызываю c.jsp, который фактически обновляет ее.Поэтому после обновления он пересылается в .jsp с сообщением «Успешно обновлено».И я установил это сообщение в сессии.И в a.jsp после показа этого сообщения.я лишил законной силы сеанс.

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

Ответы [ 2 ]

1 голос
/ 07 января 2012

Я бы предложил несколько шагов для этого ...

Когда вы нажмете кнопку "Назад", браузер получит страницу из кэша ... поэтому установите дату страницы JSP Expires на какой-то предыдущий день /время получить его с сервера (источника) вместо кеша.Это можно сделать, написав пользовательский тег и в этом заголовке Expires объекта HttpServletRequest и добавив этот тег на страницу JSP.

Чтобы сделать страницу недействительной и перенаправить ее на a.jsp, когданет допустимого сеанса, запишите Filter в это задание.

Метка может быть записана так

public class ExpiryTag extends SimpleTagSupport{

    @Override
    public void doTag() throws JspException, IOException {

        PageContext pageContext = (PageContext) getJspContext(); 
        Calendar instance = Calendar.getInstance();
        instance.add(Calendar.DAY_OF_MONTH, -1);
        HttpServletResponse response = (HttpServletResponse) pageContext.getResponse();
        response.addHeader("Expires", instance.getTime().toString());

    }

}

Метка карты в файле tld, например

<tag>
            <name>expired</name>
            <tag-class>com.analysis.mvc.tags.ExpiryTag</tag-class>
            <body-content>empty</body-content>
        </tag>

Затем используйте тег в JSP следующим образом:

<prefix:expired/>

Для обработки сеанса вы можете пройти это для базового понимания.

0 голосов
/ 11 января 2012

Если a.jsp, b.jsp и c.jsp являются частичным процессом, попробуйте разместить их на одной странице (например, abc.jsp)Теперь при использовании некоторых атрибутов показывается содержимое либо a.jsp / b.jsp / c.jsp, что-то похожее на мастер.

...