我的环境:
有时链接的URL包含jsessionid ,请参见以下内容:
<a href="/VocabDB-1.0/MyVocab/Index;jsessionid=UGGha-TULRrZNFqQdtqdVlpBQQEDE-WwRrj4l78P.gpcit2ua7371tv9">Test Link</a>
大多数情况下,链接是
<a href="/VocabDB-1.0/MyVocab/Index">Test Link</a>
有什么想法吗?谢谢!
答案 0 :(得分:0)
那是完全正常的:在第一个请求上,服务器不知道客户端是否接受cookie,因此它发送cookie ,并且还将会话ID存储在URL中。
在第二个请求上,如果它从cookie中接收到会话ID,它就知道该会话不再需要将其添加到URL中,因此就停止执行该操作。
顺便说一句,javadoc of encodeURL已经解释了:
通过包括会话ID来编码指定的URL,或者,如果不需要编码,则返回不变的URL。此方法的实现包括确定会话ID是否需要在URL中编码的逻辑。例如,如果浏览器支持cookie,或者关闭了会话跟踪,则不需要URL编码。
为了进行可靠的会话跟踪,应通过此方法运行servlet发出的所有URL。否则,URL重写不能与不支持cookie的浏览器一起使用。