2016-10-13 6 views
1

내 로그 아웃 메서드에서 session.invalidate()를 사용하여 세션을 닫을 수 없습니다. 도와주세요!내 세션 서블릿을 닫을 수 없습니다.

public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException 
{ 
    response.setContentType("text/html"); 
    PrintWriter out = response.getWriter(); 

    response.getWriter().println("<h3><a href='/assign2'>Logged out Successfully</a></h3>"); 
    HttpSession session = request.getSession(false); 
    if(session!=null) 
    session.invalidate(); 


} 

사용자 이름은 여기 내 시작 페이지가 내가 그것을

HttpSession session=request.getSession(false); 

    if(session!=null) 
    { 
     if((request.getSession().getServletContext().getAttribute("userid")) != null) 
     { 
      username = request.getSession().getServletContext().getAttribute("userid").toString(); 
     } 

    } 


    System.out.println(username); 

답변

0

로그 오프 페이지는 OK입니다 리디렉션하고 곳의 모든

를 null로 작성하지만되지 않습니다 시작 페이지에서 당신

session.invalidate의 실행으로 인해 바인딩 된 모든 속성이 바인딩 해제되지만 속성가 검색 중입니다., Session이 아니라 ServletContext에서. 또한 request.getSession()은 필요한 경우 새 세션을 만듭니다.

저장하고 속성이의 HttpSession 객체를 통해 것입니다 검색 할 수있는 일관된 방법 :

HttpSession session=request.getSession(false); 

if(session!=null) 
{ 
    if((session.getAttribute("userid")) != null) 
    { 
     username = session.getAttribute("userid").toString(); 
    } 
} 
System.out.println(username); 
+0

는 당신에게 당신은 환영 –

+0

너무 감사합니다. –