我有一些奇怪的错误:当我在某些浏览器中首次打开页面时,所有引用都有jsessionid参数(如 a href =“/ articles?name = art jsessionid = 5as45df4as5df”..)。 当我按F5或通过任何其他方式刷新页面,
当我按F5或通过任何其他方式刷新页面,所有的东西都消失了,一切正常,直到我关闭浏览器(所有选项卡也应该关闭)。当我再次打开它,我看到这个奇怪的jsessionid参数。
我使用jstl< c:url ..>用于创建所有URL的标签。
前段时间我已经看过,如果cookies被禁用,jsessionid是Cookie的替代方法,但cookies已启用,实际上并不使用cookies。
这不是一个bug,它是设计的。当创建新会话时,服务器不确定客户端是否支持Cookie,因此它会生成一个cookie以及该URL上的jsessionid。当客户端第二次回来,并显示cookie时,服务器知道jsessionid不是必需的,并将其丢弃到会话的其余部分。如果客户端返回没有cookie,那么服务器需要继续使用jsessionid重写。您可能不会显式使用Cookie,但您确实隐含有会话,容器需要跟踪该会话。