Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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 如何在tomcat和php之间传递会话_Java_Php_Apache_Jsp_Tomcat - Fatal编程技术网

Java 如何在tomcat和php之间传递会话

Java 如何在tomcat和php之间传递会话,java,php,apache,jsp,tomcat,Java,Php,Apache,Jsp,Tomcat,嘿,我在一个JSPTomcat服务器上使用WTF代码,并试图将会话数据(用户id等)传递给php。我计划用 我的问题是tomcat在哪里存储它的会话数据(硬盘?)以及它使用什么样的编码? 还是我走错了路? 我知道把php和jsp混合在一起的想法很愚蠢,我刚接到这个任务,我也很生气。你可以尝试使用数据库驱动的会话来解决这个问题。假设tomcat和apache具有相同的会话散列,是否可以跨服务器传输它们?您需要查看tomcat配置文件,它应该位于以session为前缀的文件下。这就是我要开始的地方。

嘿,我在一个JSPTomcat服务器上使用WTF代码,并试图将会话数据(用户id等)传递给php。我计划用 我的问题是tomcat在哪里存储它的会话数据(硬盘?)以及它使用什么样的编码? 还是我走错了路?
我知道把php和jsp混合在一起的想法很愚蠢,我刚接到这个任务,我也很生气。

你可以尝试使用数据库驱动的会话来解决这个问题。假设tomcat和apache具有相同的会话散列,是否可以跨服务器传输它们?您需要查看tomcat配置文件,它应该位于以session为前缀的文件下。这就是我要开始的地方。通常,在UbuntuLinux服务器上,它位于类似/etc/apache2/apache2.conf的位置

我希望这对你有帮助,祝你好运


Kyle

您可以尝试使用数据库驱动的会话来解决此问题。假设tomcat和apache具有相同的会话散列,是否可以跨服务器传输它们?您需要查看tomcat配置文件,它应该位于以session为前缀的文件下。这就是我要开始的地方。通常,在UbuntuLinux服务器上,它位于类似/etc/apache2/apache2.conf的位置

我希望这对你有帮助,祝你好运


Kyle

我相信Tomcat的默认会话管理器会将会话数据存储在应用程序“work”目录下的SESSIONS.ser文件中


您可能需要创建和配置自己的会话管理器:

我相信Tomcat的默认会话管理器会将会话数据存储在应用程序“work”目录下的SESSIONS.ser文件中


您可能需要创建和配置自己的会话管理器:

尽量避免在不同系统之间进行会话。您不能在PHP和Java之间真正共享会话,因为

  • 它们在不同的进程下运行,可能在不同的机器下运行。没有共享内存
  • 它们的会话数据结构完全不同
  • 序列化不兼容
  • 不同的曲奇口味,“PHPSESSID”与“JSESSIONID”
  • 为了共享会话,您几乎必须自己进行会话管理。这很复杂。以下是您必须编写的组件

  • 设置公共会话存储,如DB或memcached。会话存储为大blob
  • 设计一个通用的会话数据结构。我只使用名称-值对。两个系统上必须使用相同的名称,且值必须为字符串(UTF-8)
  • 使用公共序列化。我将使用PHP的session_encode(),它在Java上相当容易处理
  • 处理您自己的会话cookie

  • 尽量避免不同系统之间的会话。您不能在PHP和Java之间真正共享会话,因为

  • 它们在不同的进程下运行,可能在不同的机器下运行。没有共享内存
  • 它们的会话数据结构完全不同
  • 序列化不兼容
  • 不同的曲奇口味,“PHPSESSID”与“JSESSIONID”
  • 为了共享会话,您几乎必须自己进行会话管理。这很复杂。以下是您必须编写的组件

  • 设置公共会话存储,如DB或memcached。会话存储为大blob
  • 设计一个通用的会话数据结构。我只使用名称-值对。两个系统上必须使用相同的名称,且值必须为字符串(UTF-8)
  • 使用公共序列化。我将使用PHP的session_encode(),它在Java上相当容易处理
  • 处理您自己的会话cookie

  • :-哦,只是出于好奇,谁向你要这个?你的项目负责人?还是你的经理?:)我的项目负责人,是的,就是那个蹩脚的项目:(:-o只是出于好奇,谁问你这个?你的项目负责人?还是你的经理?:)我的项目负责人,是的,就是那个蹩脚的项目:(#3,你可以在两个系统上用json#en/decode()序列化你的会话对象。#3,你可以用json#en/decode()序列化你的会话对象。)在这两个系统上。