2014-02-27 40 views
3

我正在開發一個單頁的Web應用程序。我已經包含一個java過濾器來攔截html頁面請求。因此,在此過濾器中,我使用request.getSession()創建了一個會話。 然後我明確設置JSESSIONID cookie,因爲我必須在響應標頭Set-Cookie中設置HttpOnly標誌,以防止客戶端通過document.cookie發生XSS攻擊。爲什麼request.getsession()不返回相同的會話

現在登錄後我需要會話,所以我使用request.getSession()訪問會話。並根據HttpServletRequest的Javadoc HttpServletRequest javadoc

request.getSession()返回與此請求相關聯的當前會話,或者如果請求不具有會話,創建一個。

但是我登錄後得到不同的會話。

+0

定義「不同」會話?與您期望的不同的實例或...? – nablex

+0

@ user1109519一個不同的會話ID正在被創建,因此一個不同的'JSESSIONID' cookie被髮送到瀏覽器,而不是前一個。 – tiger

+0

你是否每次都在過濾器中設置'JSESSIONID'?顯示過濾器的一些代碼。 –

回答

0

如果您使用同一瀏覽器請求應用程序,如果您從另一個瀏覽器請求它將返回新會話,我將重試同一會話。

相關問題