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

标签 java web-applications redirect cross-context

我有两个 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/

相关文章:

java - .Net 的 Interlocked 类在 Java 中的等价物是什么?

.net - 在哪里可以找到有关使用 MySQL 设置 ASP.NET Web 应用程序的信息?

c# - IIS/ASP.NET - 部署代码中的无限重定向

php - 使用 PHP 在 Heroku 上从非 www 重定向到 www

java - 使用 Spring JPA/Hibernate 的条件插入

java - 当我定位较旧的 Android 设备时,我应该使用哪个版本的 Google API?

java/jni : Can't find dependent libraries in windows

javascript - FormData 服务器端 NodeJS

web-applications - 启动 Cinema 4D [R13+] 和 Three.js

api - 使用亚马逊 ASIN 编号创建链接以通过用户设置链接正确的国家/地区(例如 amazon.com、.co.uk、.jp)?