当我使用最新的 Chrome 浏览器并在未关闭 cookie 的情况下登录应用程序时,Glassfish 会采用 URL 重写的原因是什么?我忘记配置什么了吗?它是随机发生的。
最佳答案
JSESSIONID 是确定用户当前 HTTP session 的值。它通常存储在浏览器 cookie(名为 JSESSIONID)中,以将请求与服务器上适当的 session 对象连接。
原始请求中不存在 JSESSIONID 的原因可能是因为服务器没有机会将其发送回浏览器。页面上没有当前 JSESSIONID cookie 的任何链接(例如,使用 c:url)都将使用 URL 重写生成(URL 将包含 jsessionid)。在后续请求中,将 JSESSIONID 存储为浏览器 cookie 后,不会发生 URL 重写。
如果用户的浏览器不支持 cookie(或已关闭 cookie 的使用),则 URL 重写将允许用户通过添加到每个 URL 的 jsessionid 保持连接到同一 session 。
但是,如果您想关闭 URL 重写,可以通过在 glassfish-web.xml 文件中将 enableURLRewriting 属性设置为 false 来实现
<property name="enableURLRewriting" value="false"/>
您还可以通过确保适当的 cookie 存在并重定向到更合适的 URL 来删除 URL 重写。
关于java - Glassfish 使用 URL 重写,即使我没有关闭 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10233494/