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

App*_*pps 2 java redirect web-applications cross-context

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

谢谢,应用程序.

Arn*_*ter 8

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

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

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

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

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