java - 处理 JSP Session 的问题

标签 java servlets

我在处理 session 时遇到了不便..

我有这个:

www.mydomain.com
sub1.mydomain.com
sub2.mydomain.com
sub3.mydomain.com

当我登录到“www”时,然后我更改为“sub2”(例如)我 弄清楚它会创建另一个 session :S 这是为什么??

我需要 www、sub1、sub2、sub3 等相同的 session .. 全部在 “我的域名.com”..

我能做什么??是这样的,我必须把戏吗?或者是 有我想要的“合法”解决方案吗??

最佳答案

JSESSIONID cookie 由容器发出,cookie 域和路径始终是 Web 应用程序的域和上下文根。

看起来好像你有多个应用程序,在这种情况下,一个应用程序发出的 JSESSIONID 不会被另一个应用程序识别,因为域或上下文根发生了变化,即使应用程序在同一个容器中.

有多种方法可以解决这个问题:

  • 如果您处理的不是高值(value)应用程序,并且可以保证服务器上不会部署“恶意”应用程序,则可以将服务器配置为跨应用程序共享 session 。 Weblogic Server可以配置为执行此操作。
  • 使用中央身份验证和 session 管理提供商 - SSO。
  • 使用 TLS/SSL - 大多数服务器在通过 SSL 进行通信时不会发出 JSESSIONID cookie,而是使用 SSL 本身来存储状态。你会在这里得到不同的结果。

更新:

Glassfish v3 允许您为 session cookie 设置域。这是通过 session-config element in sun-web.xml 完成的.我不确定这是否适用于 v2 或更低版本的 Glassfish。

关于java - 处理 JSP Session 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1303193/

相关文章:

java - 使用相同的支持 bean 将数据从 page1 传递到 page2 的最佳方法是什么?

java - 错误 : javax. servlet 不存在

c# - 是 C#'s attributes better designed than Java' 的注释吗?

java - 在 LIBGDX 中实现游戏 handle Controller ?

java - 使用 enctype ="multipart/form-data"的表单是否会导致访问隐藏字段时出现问题

java - 编码/解码HttpPost UTF-8 Java

java - 将动态数据传递到 servlet 中的哈希表

java - HstResponse::addHeadElement 没有效果

java - 什么 Java 方法采用 int 并返回 +1 或 -1?

Java,不同对象的重复逻辑 block ,清理代码