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

Leo*_*tov 1 php java apache jsp tomcat

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

ZZ *_*der 6

尽量避免不同系统之间的会话.您无法在PHP和Java之间共享会话,因为,

  1. 它们在不同的进程下运行,可能是不同的机器 没有共享内存.
  2. 他们的会话数据结构完全不同.
  3. 序列化不兼容.
  4. 不同的cookie口味,"PHPSESSID"与"JSESSIONID".

您几乎必须自己进行会话管理才能共享会话.这很复杂.以下是您必须编写的组件,

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