2012-06-11 3 views
-1

내 웹 사이트를 만들기 위해 서블릿을 사용하여 세션을 해제에 문제가, pls는 확인하고 오류를 찾아 이니세션은 서블릿에 공개되지

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> 

하지만 세션이 해제되지 않습니다. 다시 버튼을 클릭하면 다시 페이지로 리디렉션됩니다 !! 누군가가 나를 도와주세요! 브라우저가 해당 페이지를 캐시 때문이다

+0

제안 사항 : 세션 특성을 확인하기 위해 ** ** 필터를 작성합니다. – adatapost

답변

1

에 문제는 캐싱이 필요합니다.

해결 방법은 서블릿이를 추가하는 것입니다

Java servlet how to disable caching of page

// 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");