簡體   English   中英

會話未在Servlet中釋放

[英]session is not releasing in servlets

正在使用servlet創建我的網站,並在發布會話時遇到問題,請檢查並找出錯誤:

login.java :
     ResultSet res=smt.executeQuery("Select * from admin where name='"+user+"' and password='"+password+"'");
    while(res.next())
    {
        String name=res.getString("name");
        String pwd=res.getString("password");
    if(category.equals("Admin"))
    {
        if(name.equals(user) && pwd.equals(password))
        {
                           ServletContext context=request.getServletContext();
                           context.setAttribute("name", name);
                            HttpSession session=request.getSession();
            session.setAttribute("name", name);
            RequestDispatcher view=request.getRequestDispatcher("welcome_admin.jsp");
            view.forward(request, response);
        }
        else
        {
            response.sendRedirect("index.jsp");
        }
    }

和logout.jsp是:

   <body>
    <%

    session.removeAttribute("name");

    session.invalidate();



    %>
    <b>
        <%
        RequestDispatcher rd=request.getRequestDispatcher("index.jsp");
        rd.include(request, response);
        %>
    </b >
</body>

但是會話未釋放,如果我單擊“后退”按鈕,它將再次將我重定向到頁面! 有人請幫我!

那是因為您的瀏覽器已經緩存了該頁面,它不再來自服務器,您需要通過添加Filter指示您的瀏覽器不要緩存頁面

問題是緩存。

一種解決方法是將其添加到您的servlet中:

Java Servlet如何禁用頁面緩存

// Set standard HTTP/1.1 no-cache headers.
response.setHeader("Cache-Control", "private, no-store, no-cache, must-revalidate");

// Set standard HTTP/1.0 no-cache header.
response.setHeader("Pragma", "no-cache");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM