0

场景:用户访问Web容器A(Apache Tomcat),A在会话范围内设置值,

HttpServletRequest.getSession().setAttribute(“key”, “value”);

并将用户重定向到另一个 Web 容器 B(一个 php 服务器)。

HttpServletResponse.sendRedirect("path to server B");

B 能否在 A 设置的会话范围内获得相同的值?

HttpServletRequest.getSession().getAttribute(“key”);

根据这个问题,java servlet application scope redirect

似乎有可能,虽然它可能重定向到同一个容器,但 httpsession 将在同一个 VM中,或者负载平衡服务器中的另一个容器中,httpsession 可以在这些容器之间迁移,因此httpsession在这两种情况下将保持静止。

如果我想在重定向时在两个不同的服务器(java 和 PHP)之间传递属性怎么办?

希望我能正确表达我的想法,任何建议将不胜感激,谢谢。

4

1 回答 1

2

如果您希望在 Java Web 服务器和 PHP Web 服务器之间传递属性,您必须将它们作为请求参数(作为查询字符串的一部分,HTTP URL 之后的部分?)添加到传出的 HTTP 请求中。

Java Web 服务器中的HttpSession信息在服务器端可用,并通过JSESSIONID请求参数或 cookie(基于浏览器是否支持 cookie)在两个无状态 HTTP 会话之间连接。因此,在 Java Web 服务器的 Session 中设置的任何属性对于 PHP Web 服务器都将不可用。

于 2012-10-02T03:32:27.473 回答