Glassfish使用URL重写,即使我没有关闭cookie

时间:2012-04-19 17:29:12

标签: java java-ee glassfish

当我使用最新的Chrome浏览器并在未关闭Cookie的情况下登录应用程序时,Glassfish采用网址重写的原因是什么?我忘记配置什么或者什么?它是随机发生的。

1 个答案:

答案 0 :(得分:3)

JSESSIONID是确定用户当前HTTP会话的值。它通常存储在浏览器cookie(名为JSESSIONID)中,以将请求与服务器上的相应会话对象连接起来。

原始请求中不存在JSESSIONID的原因可能是因为服务器没有机会将其发送回浏览器。将使用URL重写生成页面上的任何链接(例如,使用c:url),而不使用当前的JSESSIONID cookie(URL将包含jsessionid)。在subsequnt请求中,在将JSESSIONID存储为浏览器cookie之后,不会发生URL重写。

如果用户的浏览器不支持cookie(或已关闭cookie的使用),则URL重写将允许用户通过添加到每个URL的jsessionid连接到同一会话。

但是,如果要关闭URL重写,可以通过在glassfish-web.xml文件中将enableURLRewriting属性设置为false来执行此操作

<property name="enableURLRewriting" value="false"/>

您也可以通过确保存在适当的cookie并重定向到更合适的URL来删除URL重写。