Хотя я отключил кэширование страниц JSP после выхода из системы, когда я обновляю свой браузер, он показывает мне страницы admin.jsp - PullRequest
0 голосов
/ 15 января 2012

У меня есть одна веб-страница login.jsp, где у меня есть два текстовых поля для имени пользователя и пароля, когда пользователь нажимает кнопку «Отправить» на моей веб-странице **

пересылается сервлету jsp checkpass.jsp, где

  1. код проверяет подлинность пользователя, то есть проверяет правильность имени пользователя и пароля,
  2. если пользователь действителен, то создается сеанс, я установил некоторые атрибуты seeion, такие как name, id и т. Д. И
  3. В зависимости от типа пользователя, то есть является ли он администратором или просто пользователем, я снова перенаправляю свою страницу checkpass.jsp на перкулярную страницу. Это все кодирование выполняется в check pass.jsp

** Я предотвратил кеширование большинства страниц. но такие страницы, как login.jsp, logout.jsp, index.jsp. сеанс создается только в том случае, если пользователь действителен, я не написал код для проверки сеанса с кодом, подобным

<%
try{
   String username = session.getValue("UserName").toString();
   String s_Password = session.getValue("password").toString();
   String id = session.getValue("ID").toString();
   // String s_Email = session.getValue("email").toString();
   if ((username==null) ||  (s_Password==null) || (id==null))
       {
    %>
      <jsp:forward page="index.jsp?error=You have Logged Out !!!" />
    <% 
    }}
   catch(Exception e)
   {
       e.printStackTrace();           
               %><jsp:forward page="index.jsp?error=" />
               <% 
    }
%>

такого кода там нет. Так что же происходит, хотя я и запретил кэширование других, включая checkpass.jsp, когда я завершаю сеанс выхода с помощью метода session.invalidate (). поэтому, когда я использую кнопку «Назад» моего браузера, он не отображает страницы, все страницы перенаправляются в index.jsp, как я кодировал выше. но поскольку такого кода нет, браузер checkpass.jsp отображает мне сообщение о том, что пытается перезагрузить страницу, потому что эта страница требует некоторых данных, т.е. я предполагаю имя пользователя и пароль, и когда я нажимаю кнопку обновления моего браузера, он отображает меня Мои страницы admin.jsp Я хочу, чтобы при выходе из системы ни одна из веб-страниц не отображалась, хотя я нажимаю кнопку возврата или обновления моего браузера. это мое веб-приложение. Для этого я использую Net Beans и MySQL и Apache Tomcat. пожалуйста, помогите мне выйти из проблемы. Я буду рад предоставить больше информации. при необходимости

1 Ответ

2 голосов
/ 15 января 2012

Вы не перенаправляете.Вы пересылаете.Вам нужно отправить перенаправление вместо переадресации.

response.sendRedirect("index.jsp");

Таким образом, сервер будет указывать клиенту отправлять новый запрос GET на данный ресурс, а не использовать данный ресурс в качестве ответа длятекущий POST-запрос, как будет происходить с форвардом.Поэтому обновление не будет повторно отправлять предыдущий запрос POST.

См. Также:


Не имеет отношения к конкретной проблеме, я понятия не имею, какие ограничения / требования были наложены вашим преподавателем / курсом, но я пишу код на Java вФайлы JSP вместо классов Java (например, сервлет класс или фильтр класс) и использование устаревших методов - не лучшая практика .Просто скажу, что от этого зависят и ваши очки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...