Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 处理JSP会话的一个问题_Java_Servlets - Fatal编程技术网

Java 处理JSP会话的一个问题

Java 处理JSP会话的一个问题,java,servlets,Java,Servlets,我在处理会议时遇到了麻烦 我有这个: www.mydomain.com sub1.mydomain.com sub2.mydomain.com sub3.mydomain.com 当我登录到“www”时,我会切换到“sub2”(例如)I 找出它是否创建了另一个会话:S 这是为什么 我需要对www、sub1、sub2、sub3等进行相同的会话。。全部 “mydomain.com” 我能做什么??是这样的吗?我得耍个花招??或者是 对于我想要的东西,有一个“合法”的解决方案吗?是的,就是这样,因为每

我在处理会议时遇到了麻烦

我有这个:

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

当我登录到“www”时,我会切换到“sub2”(例如)I 找出它是否创建了另一个会话:S 这是为什么

我需要对www、sub1、sub2、sub3等进行相同的会话。。全部 “mydomain.com”

我能做什么??是这样的吗?我得耍个花招??或者是
对于我想要的东西,有一个“合法”的解决方案吗?

是的,就是这样,因为每个不同的域都有单独的会话cookie。您使用哪个web服务器?您可以实施与SSO相关的解决方案来跨域共享数据。

是的,这是因为您将为每个不同的域提供单独的会话cookie。您使用哪个web服务器?您可以实现与SSO相关的解决方案来跨域共享数据。

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

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

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

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


Glassfish v3允许您为会话cookie设置域。这是通过。我不确定这是否在Glassfish的v2或更低版本中可用。

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

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

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

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

Glassfish v3允许您为会话cookie设置域。这是通过。我不确定这在Glassfish的v2或更低版本中是否可用。

请看本教程: 我总结了Glassfish 3.1和会话复制的所有步骤参见本教程:
我总结了Glassfish 3.1和会话复制的所有步骤

好吧,一切都只是一个应用程序,只是我使用子域让用户“跳过”选择一个城市。。它就像:www.mywebsite.com/,这将是一个普通的网站。。chicago.mywebsite.com//whicha is chicago the selected city。。miami.mywebsite.com//所选城市是迈阿密。。在“www”上,用户可以选择城市并重定向到该子域。。但在里面,我只是计算子域,我做“相同”的事情,就像有一个选择当前城市的组合框一样。。这是一个坏习惯吗?我不认为这是一个坏习惯;这纯粹是一个主观的话题。你可以看一下最新的答案。非常好,谢谢。。我做到了,在sun-web.xml的会话配置中。。我尝试了GlassFish v3和v2,效果非常好。。再一次。。谢谢…好吧,一切都只是一个应用程序,只是我使用子域让用户“跳过”选择一个城市。。它就像:www.mywebsite.com/,这将是一个普通的网站。。chicago.mywebsite.com//whicha is chicago the selected city。。miami.mywebsite.com//所选城市是迈阿密。。在“www”上,用户可以选择城市并重定向到该子域。。但在里面,我只是计算子域,我做“相同”的事情,就像有一个选择当前城市的组合框一样。。这是一个坏习惯吗?我不认为这是一个坏习惯;这纯粹是一个主观的话题。你可以看一下最新的答案。非常好,谢谢。。我做到了,在sun-web.xml的会话配置中。。我尝试了GlassFish v3和v2,效果非常好。。再一次。。谢谢你…我用玻璃鱼。。。还有SSO,一点也不,因为一切都是同一个应用程序。。在同一个Web服务器中,甚至在同一个contextpath。。。。是的,我制作了jsp来打印sessionId,它是相同的“index.jsp”,但有不同的子域(只是名称,因为所有东西都地址相同的IP),它显示不同的ID…我使用GlassFish。。。还有SSO,一点也不,因为一切都是同一个应用程序。。在同一个Web服务器中,甚至在同一个contextpath。。。。是的,我制作了jsp来打印sessionId,它是相同的“index.jsp”,但是有不同的子域(只是名称,因为所有的东西都地址相同的IP),并且它显示不同的ID。。。。