<c:url value="/web/pclub/userprofile" var="test">
<c:param name="userid" value="${user.id}"/>
</c:url>
${test}
但是,當我檢查頁面禁用Cookie,然後將JSESSIONID不追加。 有誰知道爲什麼會發生這種情況?
<c:url value="/web/pclub/userprofile" var="test">
<c:param name="userid" value="${user.id}"/>
</c:url>
${test}
但是,當我檢查頁面禁用Cookie,然後將JSESSIONID不追加。 有誰知道爲什麼會發生這種情況?
的jsessionid
當禁用Cookie只附加和當會話已經在服務器端創建(並因此在服務器端需要以某種方式通知客戶有關這一點,其中一個cookie會是默認方法)。如果沒有創建會話,則沒有任何附加jsessionid
的要點。
嘗試將以下行添加到JSP的頂部,至少在調用<c:url>
行之前。它不僅爲您打印/調試會話ID,還會隱式創建會話(如果尚未完成)。
${pageContext.session.id}
這樣做僅用於測試目的。如果它有效,那麼問題的原因是沒有會話的手段。保持原樣。沒有必要不必要地創建會話。對於每當有會話並且瀏覽器不支持cookie的情況,c:url
都可以正常工作。
順便說一句,以驗證Cookie被禁用確實由Firebug跟蹤請求頭。如果請求中沒有Cookie
標題,即使服務器在響應中設置了一個Set-Cookie
標題,那麼這意味着Cookie確實在客戶端被禁用。
我覺得BalusC是正確的,但是強制在服務器上創建一個會話,你可以在你的JSP的頂部添加一個指令頁,像這樣:
<%@ page session="true" %>
確定餅乾*是*禁用?你是怎麼做到的? – skaffman 2011-01-13 19:12:55