2011-12-25 21 views
-3

我在我的servlet中有以下代碼段。在這裏,出於某種原因,我無法在創建一個會話後爲同一用戶保留會話。HttpSession不起作用

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
// TODO Auto-generated method stub 

response.setContentType("text/html"); 
PrintWriter writer = response.getWriter(); 
String userName = request.getParameter("userName"); 
HttpSession session = request.getSession(); 

if (userName != "" && userName != null) { 
    session.setAttribute("savedUserName", userName); 
} 

writer.println("Request parameter has user name as : " + userName + "<br />"); 
writer.println("Request session has user name as : " + (String) session.getAttribute("savedUserName") + "<br />"); 
    } 
+0

你應該接受的答案你前面的問題的人回答你的問題。 – 2011-12-25 21:12:50

回答

1

您暗示會話不工作的基礎是什麼?唯一可能不起作用的情況是當你沒有提供userName,在這種情況下,它將是null,並且會話永遠不會被創建,因爲你的下面的代碼是以錯誤的順序測試條件,並且等式檢查應該使用equals()和不!=

if (userName != "" && userName != null) { 
    session.setAttribute("savedUserName", userName); 
} 

應改爲

if (userName != null && !userName.equals("")) { 
    session.setAttribute("savedUserName", userName); 
} 
+0

感謝您的建議。我已經解決了這個問題。 – Shahjalal 2011-12-26 00:19:06

+0

@Shahjalal是什麼問題?它與你發佈的代碼有關嗎? – 2011-12-26 00:34:02