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