一尘不染

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

tomcat

我处于WTF代码情况下,正在jsp tomcat服务器上工作,并试图将会话
数据(用户ID等)传递给php。我打算用session_set_save_handler()重写php会话处理,我的问题是tomcat在哪里将会话数据存储在其中(硬盘?),
它使用哪种编码?还是我走错了路?我知道混用php和jsp的想法很愚蠢,只是得到了这个任务,我也很生气。


阅读 178

收藏
2020-06-16

共1个答案

一尘不染

尝试避免不同系统之间的会话。您实际上无法
在PHP和Java之间共享会话,因为,

1.它们在不同的进程下运行,也许在不同的机器上运行。没有共享内存。
2.他们的会话数据结构完全不同。
3.序列化不兼容。
4.不同的Cookie风格,“ PHPSESSID”和“ JSESSIONID”。
您几乎必须自己进行会话管理才能共享会话。它是
相当复杂的。以下是您必须编写的组件,

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

2020-06-16