我处于WTF代码情况下,正在jsp tomcat服务器上工作,并试图将会话 数据(用户ID等)传递给php。我打算用session_set_save_handler()重写php会话处理,我的问题是tomcat在哪里将会话数据存储在其中(硬盘?), 它使用哪种编码?还是我走错了路?我知道混用php和jsp的想法很愚蠢,只是得到了这个任务,我也很生气。
尝试避免不同系统之间的会话。您实际上无法 在PHP和Java之间共享会话,因为,
1.它们在不同的进程下运行,也许在不同的机器上运行。没有共享内存。 2.他们的会话数据结构完全不同。 3.序列化不兼容。 4.不同的Cookie风格,“ PHPSESSID”和“ JSESSIONID”。 您几乎必须自己进行会话管理才能共享会话。它是 相当复杂的。以下是您必须编写的组件,
1.设置公共会话存储,例如DB或memcached。会话存储为大Blob。 2.设计一个通用的会话数据结构。我只使用名称-值对。两个系统上必须使用相同的名称,并且值必须是字符串(UTF-8)。 3.使用通用的序列化。我将使用PHP的session_encode(),它在Java上相当容易处理。 4.处理您自己的会话cookie。