从一个Web应用程序重定向到另一个Web应用程序时如何传递数据?

时间:2010-09-20 07:01:50

标签: java web-applications redirect cross-context

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

谢谢, 的应用程序。

3 个答案:

答案 0 :(得分:7)

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

您可以执行以下操作之一,将信息从一个Web应用程序传递到另一个Web应用程序:

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

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

其中一个选项是将简单传递信息作为您在sendRedirect调用中使用的URL中的GET属性。