Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
虽然我在刷新浏览器时阻止在注销后缓存jsp页面,但它仍然显示admin.jsp页面_Jsp_Session_Refresh_Logout - Fatal编程技术网

虽然我在刷新浏览器时阻止在注销后缓存jsp页面,但它仍然显示admin.jsp页面

虽然我在刷新浏览器时阻止在注销后缓存jsp页面,但它仍然显示admin.jsp页面,jsp,session,refresh,logout,Jsp,Session,Refresh,Logout,我有一个login.jsp网页,当用户点击我的网页上的提交按钮时,我有两个用户名和密码文本框** 转发到jsp servlet checkpass.jsp,其中 代码检查用户的真实性,即检查用户名和密码的正确性 若用户是有效的,那个么会话就被创建了,我已经设置了一些seeion属性,比如name、id等 根据用户类型,即他是管理员还是普通用户,我再次将checkpass.jsp页面转发到特定页面。所有这些编码都是在check pass.jsp中完成的 **我阻止了大部分页面的缓存。但是像logi

我有一个login.jsp网页,当用户点击我的网页上的提交按钮时,我有两个用户名和密码文本框**

转发到jsp servlet checkpass.jsp,其中

  • 代码检查用户的真实性,即检查用户名和密码的正确性
  • 若用户是有效的,那个么会话就被创建了,我已经设置了一些seeion属性,比如name、id等
  • 根据用户类型,即他是管理员还是普通用户,我再次将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=" />
                   <% 
        }
    %>
    
    
    

    这样的代码并不存在。所以,当我通过session.invalidate()方法终止注销会话时,会发生什么呢?尽管我阻止了缓存其他会话,包括checkpass.jsp。因此,当我使用浏览器的“后退”按钮时,它不会显示页面,所有页面都会被重定向到index.jsp,正如我上面所编码的那样。但是,由于没有这样的代码,checkpass.jsp浏览器会显示一些消息,告诉我,尝试重新加载页面,因为该页面需要一些数据,例如,我猜用户名和密码,当我按下浏览器的刷新按钮时,它会显示我的admin.jsp页面我希望任何人在注销网页时都不应被删除通过按下浏览器的“后退”或“刷新”按钮显示。这是我的web应用程序。为此,我使用了NetBeans、MySQL和ApacheTomcat。请帮我解决这个问题。我很乐意提供更多信息。如果需要,您不会重定向。你在转发。您需要发送重定向而不是转发

    response.sendRedirect("index.jsp");
    
    通过这种方式,服务器将指示客户机在给定资源上发送一个全新的GET请求,而不是使用给定资源作为当前POST请求的响应,就像转发请求一样。所以刷新不会重新提交以前的POST请求

    另见:


    与具体问题无关,我不知道你的导师/课程提出了什么限制/要求,但在JSP文件中编写Java代码而不是Java类(例如类或类)并使用它是很重要的。就这个例子来说,你的观点也取决于此。

    嘿,拜托,我真的被困在这里了,我是一名学生,正在做一个项目