2

我有两个 Web 应用程序部署在同一个 J2EE 应用程序服务器中。我需要从一个 Web 应用程序重定向到另一个。此外,我需要在 Web 应用程序 1 的 Header 中设置一些信息,以便它在 Web 应用程序 2 中可用。当我尝试访问在 Web App2 的 Web App1 的标头中设置的信息时,我得到“null” . 我response.sendRedirect("http://localhost/webapp2")在 Web 应用程序 1 中使用重定向。请帮我解决这个问题。

谢谢,应用程序。

4

3 回答 3

8

重定向由客户端(浏览器)处理。因此,只有客户端才能获得您发送的标头。标头不会传递给重定向到的 webapp。

您可以执行以下操作之一将信息从一个 webapp 传递到另一个 webapp:

  • 将数据作为请求参数传递
  • 将数据作为 cookie 发送,没有路径限制
  • 使用跨上下文调度

客户端收到的 cookie 将被发送回服务器。客户端不知道它是一个不同的 webapp。您只需要将cookie 路径设置为/.

跨上下文调度由容器中的内部转发完成(使用 ServletContext 中的RequestDispatcher)。客户端永远不会知道,请求是由另一个 webapp 处理的。您可以设置请求属性来传递数据。出于安全原因,容器必须启用跨上下文调度。

于 2010-09-20T07:22:59.597 回答
1

您可以将信息作为 URL 参数发送。

重定向到http://localhost/webapp2?param1=value1&param2=value2 ....

于 2010-09-20T07:05:38.973 回答
0

一种选择是简单地将信息作为 GET 属性传递到您在 sendRedirect 调用中使用的 URL 中。

于 2010-09-20T07:06:12.933 回答