2013-07-17 101 views
2

越來越會話我如下設置在JSP代碼中的會話屬性並提交HTTP表單的servlet:在JSP中設置會話和servlet的

session.setAttribute("qnaInfo", qnaInfo); 
System.out.println("session.getAttribute" + session.getAttribute("qnaInfo")); 

我想獲得會話屬性在servlet代碼如下:

HttpSession session = request.getSession(true); 
AuthQnAInfo storedQnaInfo = (AuthQnAInfo) session.getAttribute("qnaInfo"); 

在servlet中它只在IE中爲null。但在Chrome中,我獲得了價值。
請幫忙解決這個問題。

+0

IE可能配置爲拒絕Cookie。 –

+0

嗨感謝您的回覆。我在Internet Explorer中啓用了Cookie。在阻止cookie級別爲Medium之前,我將其設置爲低,即使在IE中,我也可以在我的servlet中獲得會話數據。但是,這是什麼解決方案?我無法在所有機器上做同樣的事情,我曾經託管我的應用程序。所以請提出一些建議。 – Anita

+0

也許只有當服務器是本地主機時纔會出現問題,並且不會在生產中發生? –

回答

1
在所有瀏覽器

,在session.getAttribute( 「AAAA」)工作,嘗試的人

0

How can I enable session tracking for JSP pages if the browser has disabled cookies?

如果瀏覽器不支持cookie,或者禁用cookie,你仍然可以使用URL重寫來啓用會話跟蹤。 URL重寫本質上包括鏈接本身內的會話ID作爲名稱/值對。 但是,爲了使其有效,您需要爲作爲servlet響應一部分的每個鏈接附加會話ID。通過幾種方法將會話ID添加到鏈接中可以大大簡化:response.encodeURL()將會話ID與給定的URL相關聯,如果您使用重定向,則可以使用response.encodeRedirectURL()重定向的URL作爲輸入。

encodeURL()和encodeRedirectedURL()首先確定瀏覽器是否支持cookie;如果是這樣,由於會話ID將作爲cookie持久保存,因此輸入URL將保持不變。