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

标签 java jakarta-ee glassfish

当我使用最新的 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/

相关文章:

jakarta-ee - Wildfly 在本地网络中独立

java - Glassfish线程池问题

ubuntu - 在 linux 中安装 glassfish 服务器

java - CheckStyle 生成 html 报告

java - J2EE - 实现持续运行的组件/守护进程

java - 避免多个 if/else 条件

apache - Java/jersey Web 服务需要重启(错误代码 500)

java - 带用户输入的 xsd 到 xml 工具

java - jsf 与 jsf 复合组件输出 <html> 标签 2 次

java - 从 JLIST 中删除项目