<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