2016-10-13 44 views
1

我無法在我的註銷方法中使用session.invalidate()來關閉會話,請大家幫忙!無法關閉我的會話Servlets

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

的註銷頁面是確定的,但在歡迎頁面正在混合的概念:

儘管session.invalidate的執行取消綁定所有綁定屬性,但您正在檢索屬性userid來自ServletContext,而不是Session。此外,請注意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

歡迎您。 –