Как избежать доступа к истории после выхода из системы - PullRequest
5 голосов
/ 16 июня 2011

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

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

    <s:form action="Login" >
    <s:textfield label="username" name="userName"/>
    <s:password label="password" name="password"/>
    <s:submit name="login" value="login"></s:submit>
    </s:form>

как управлять сеансомКроме того, кто-нибудь может помочь мне Войти1017 *

struts.xml

              <!DOCTYPE struts PUBLIC
     "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
         "http://struts.apache.org/dtds/struts-2.1.dtd">

 <struts>
      <!-- Configuration for the default package. -->
<package name="default" extends="struts-default">

    <interceptors>

        <interceptor name="logintest"
class="interceptor.logintest"></interceptor>

        <interceptor-stack name="newStack">
            <interceptor-ref name="logintest"/>
            <interceptor-ref name="defaultStack" />
        </interceptor-stack>
    </interceptors>
    <global-results  >
        <result name="loginRedirect" type="redirect" >/login.jsp</result>
    </global-results>
    <action class="action.Login" name="Login">
        <interceptor-ref name="newStack"></interceptor-ref>
        <result name="input">/login.jsp</result>

        <result name="success">/loginsuccess.jsp</result>

    </action>

    <action class="action.Logout" name="Logout">

        <interceptor-ref name="newStack"></interceptor-ref>

        <result name="success">/login.jsp</result>
    </action>
</package>

Ответы [ 2 ]

0 голосов
/ 15 декабря 2011

Попробуйте это

<html>
<head>
<title>Back Button Demo: Page One</title>
<script>
function backButtonOverride()
{
  // Work around a Safari bug
  // that sometimes produces a blank page
  setTimeout("backButtonOverrideBody()", 1);

}

function backButtonOverrideBody()
{
  // Works if we backed up to get here
  try {
    history.forward();
  } catch (e) {
    // OK to ignore
  }
  // Every quarter-second, try again. The only
  // guaranteed method for Opera, Firefox,
  // and Safari, which don't always call
  // onLoad but *do* resume any timers when
  // returning to a page
  setTimeout("backButtonOverrideBody()", 500);
}
</script>
</head>
<body onLoad="backButtonOverride()">
<h1>Back Button Demo: Page One</h1>
<a href="page2.html">Advance to Page Two</a>
</body>
</html>

Ссылка на источник

0 голосов
/ 16 июня 2011

Как Ливиу.упомянул, что поведение контролируется браузером клиента.Максимум, что вы можете сделать, это отправлять заголовки без кэша и, возможно, без хранилища с каждым запросом для ваших зарегистрированных страниц, чтобы браузер не сохранял их, а когда пользователь нажимает обратно, браузер должен повторно запросить страницу, чторезультаты на странице входа в систему.

Конкретные заголовки, которые вы хотите установить, будут:

response.setHeader("Cache-Control", "no-cache, no-store");
response.setDateHeader("Expires", 0);
response.setHeader("Vary", "*");
...