sesja serwletu, po wylogowaniu, po naciśnięciu przycisku wstecz przeglądarki ponownie wyświetlana jest bezpieczna strona [duplikat]

To pytanie ma już tutaj odpowiedź:

Zapobiegaj wyświetlaniu poprzednio odwiedzonej zabezpieczonej strony po wylogowaniu 5 odpowiedzi

Mam serwlet i stronę HTML. Jak mogę uniemożliwić użytkownikowi kliknięcie przycisku wstecz przeglądarki po wylogowaniu? Przeczytałem to samo pytanie w stackoverflow, ale odpowiedzi używają historii przeglądarki wyłączonej za pomocą skryptu java lub przy użyciu strony - brak pamięci podręcznej w nagłówkach http. W jaki sposób możemy zaimplementować go za pomocą serwletów, które zapobiegają akcji cofania, nagłówek http bez pamięci podręcznej jest bezużyteczny, ponieważ Firefox mówi, że strona wygasła, gdy jest ona odświeżana dwa razy ponownie, wyświetlana jest bezpieczna strona.

Zrobiłem w pewien sposób przykładową metodę tylko dla próby (nie jest prawdziwa) Moja nazwa użytkownika i hasło są wysyłane do serwletu ze strony HTML serwlet przechowuje to w sesji, jeśli hasło i nazwa użytkownika są poprawne. Gdy ponownie zażąda się bezpiecznej strony, jeśli sesja istnieje, wyświetlana jest bezpieczna strona i identyfikator wylogowania użytkownika z sesji, na której wyświetlana jest strona logowania, wszystko działa, z wyjątkiem wylogowania, które nie powiedzie się, jeśli użytkownik kliknie przycisk przeglądarki.

Jak możemy zapobiec wyświetlaniu zawartości bezpiecznego serwletu po wylogowaniu, a następnie nacisnąć przycisk Wstecz w przeglądarce?

src z welcome.html

<html>
<body>

<form method="POST" action="Sessionexample">
<div align="center">
<table border="1"   style="border-collapse: collapse">
    <tr>
        <td>Username</td>
        <td><input type="text" name="username" size="20"></td>
    </tr>
    <tr>
        <td>Password</td>
        <td><input type="text" name="password" size="20"></td>
    </tr>
    <tr>
        <td height="24">&nbsp;</td>
        <td height="24">&nbsp;</td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td><input type="submit" value="Submit" name="B1"></td>
    </tr>
</table>
</div>
</form>
</body>
</html>

src serwletu

public class Sessionexample extends HttpServlet implements Servlet , Filter {
    private static final long serialVersionUID = 1L;
    public String username =null, password=null;
    public HttpSession session ;
    public PrintWriter pw;
    int do_get =0 ;
    /**
     * Default constructor. 
     */


    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) res;

        HttpSession session = request.getSession(false);         
        if (session == null || session.getAttribute("username") == null) {
            response.sendRedirect("welcome.html"); // No logged-in user found, so redirect to login page.
            response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
            response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
            response.setDateHeader("Expires", 0);
        } else {
            chain.doFilter(req, res);  
        }
    }


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    {

        do_get=1;
        pw = response.getWriter();
        session=request.getSession(false);
        try
        {
            if(request.getParameter("action")!=null)
            {
                if(request.getParameter("action").equals("logout"))
                {

                    session = request.getSession(true);
                    session.setAttribute("username", "");
                    session.setAttribute("password", "");
                    session.invalidate();
                     response.sendRedirect("welcome.html");
                    return; 
                }
            }
            else
            if(session !=null)
                {
                 if( (String)session.getAttribute(username)!=null)
                username = (String)session.getAttribute("username").toString();
                if( (String)session.getAttribute("password") !=null)
                 password =session.getAttribute("password").toString();
                pw.write("not new-");
                serviced(request,response);
                }

        }
        catch(Exception ex)
        {
            pw.write("Error-"+ex.getMessage());
        } 

    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    {

        if(request.getParameter("username")!=null && request.getParameter("password")!=null )
        {
             username = request.getParameter("username").toString();
             password =  request.getParameter("password").toString(); 
        } 

        serviced(request,response);

    }


    protected void serviced(HttpServletRequest request, HttpServletResponse response) throws IOException
    {

            response.setContentType("text/html");

            pw = response.getWriter();  
        if( username !=null && password !=null)
            if( username.equals("admin") && password.equals("a"))
            {

                try
                {

                    if(do_get==0)
                    {
                session = request.getSession(true);
                session.setAttribute("username", "admin");
                session.setAttribute("password", "a");
                    }               
                pw.write("You are logged in : "+username+"  <br/> "+"<a href='?action=logout'><h1>   Logout </h1> </a>");

                }
                catch(Exception ex)
                {
                                        response.sendRedirect("welcome.html");

                }

            }
            else
            {
            response.sendRedirect("welcome.html");
            }
            else
                response.sendRedirect("welcome.html");
    }

    @Override
    public boolean accept(Object arg0) throws IOException {
        // TODO Auto-generated method stub
        return false;
    }       

}

questionAnswers(1)

yourAnswerToTheQuestion