как я могу запретить пользователю доступ к предыдущей странице jsp с помощью кнопки «Назад» или возврата в браузере

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


person Mohammad Faisal    schedule 27.04.2011    source источник


Ответы (2)


Вы не можете запретить пользователю нажимать кнопку «Назад» в браузере.

Однако вы можете поддерживать состояние в сеансе.

Пример:

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

person Laurent Pireyn    schedule 27.04.2011
comment
не могли бы вы уточнить это. как использовать его на практике (код) - person Mohammad Faisal; 28.04.2011
comment
@Mohammad Faisal: я не могу подробнее рассказать, так как понятия не имею о контексте вашего веб-приложения. Вы должны быть в состоянии реализовать мое предложение довольно легко; существует множество руководств по сервлетам и JSP. - person Laurent Pireyn; 30.04.2011
comment
Мы можем запретить пользователю использовать кнопку «Назад» в браузере. Должен быть какой-либо скрипт, чтобы остановить использование кнопки «Назад». - person Mohammad Faisal; 04.07.2011
comment
@Mohammad Faisal: Невозможно обеспечить соблюдение порядка URL-адресов, запрашиваемых клиентами: HTTP - это протокол без сохранения состояния, без подключения, и клиенты в конечном итоге решают, какой URL-адрес они запрашивают. Существуют некоторые приемы JavaScript для управления кнопкой «Назад», но они раздражают и их очень легко обойти. - person Laurent Pireyn; 05.07.2011

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

<html>

<head>
  <script type="text/javascript">
    window.history.forward();

    function noBack() {
      window.history.forward();
    }
  </script>
</head>

<body onload="noBack();" onpageshow="if (event.persisted) noBack();">
  <!-- your html/jsp code -->
</body>

</html>
person Piyush Chaudhari    schedule 26.08.2012