我有两个 Web 应用程序部署在同一个 J2EE 应用程序服务器中。我需要从一个 Web 应用程序重定向到另一个 Web 应用程序。另外,我需要在 Web 应用程序 1 的 header 中设置一些信息,以便它在 Web 应用程序 2 中可用。
当我尝试访问 Web App2 中 Web App1 header 中设置的信息时,我得到“null”。我在 Web 应用程序 1 中使用 response.sendRedirect("http://localhost/webapp2")
进行重定向。请帮我解决这个问题。
谢谢, 应用程序。
最佳答案
重定向由客户端(浏览器)处理。因此只有客户端才能收到您发送的 header 。 header 不会传递到重定向到的 Web 应用程序。
您可以执行以下操作之一,将信息从一个网络应用程序传递到另一个网络应用程序:
- 将数据作为请求参数传递
- 将数据作为 cookie 发送,没有路径限制
- 使用跨上下文调度
客户端收到的cookie将被发送回服务器。客户端不知道这是一个不同的 Web 应用程序。您只需设置 cookie path到 /
。
跨上下文调度是通过容器中的内部转发完成的(使用 ServletContext 中的RequestDispatcher)。客户端永远不会知道,该请求是由另一个 Web 应用程序处理的。然后您可以设置请求属性来传递数据。出于安全原因,容器必须启用跨上下文调度。
关于java - 从一个 Web 应用程序重定向到另一个 Web 应用程序时如何传递数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3749246/