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

发布于 2024-09-24 06:36:11 字数 287 浏览 5 评论 0原文

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

谢谢, 应用程序。

I have two web application which are deployed in the same J2EE Application server. I need to redirect from one web application to another. Also I need to set some information in the Header from web application 1 so that it is available in web application 2.
When I try to access the information which set in the header of Web App1 in Web App2, I'm getting "null". I'm using response.sendRedirect("http://localhost/webapp2") in Web Application 1 to redirect. Please help me to solve this.

Thanks,
Apps.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

羅雙樹 2024-10-01 06:36:11

重定向由客户端(浏览器)处理。因此只有客户端才能收到您发送的标头。标头不会传递到重定向到的 Web 应用程序。

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

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

客户端收到的 Cookie 将发送回服务器。客户端不知道这是一个不同的 Web 应用程序。您只需设置 cookie 路径/

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

A redirect is processed by the client (the browser). So only the client gets the headers you sent. The headers will not be passed to the webapp redirected to.

You can do one of the following things to pass information from one webapp to another:

  • pass data as request parameter
  • send data as cookie without path restriction
  • use cross context dispatching

A cookie received by the client will be send back to the server. The client does not know it is a different webapp. You just need to set the cookie path to /.

Cross context dispacthing is done by an internal forward in the container (use a RequestDispatcher from the ServletContext). The client will never know, the request is handled by another webapp. You than can set a request attribute to pass data. Cross context dispatching has to be enabled by the container for security reasons.

雾里花 2024-10-01 06:36:11

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

重定向到 http://localhost/webapp2?param1=value1¶m2=value2 ....

You could send the information as URL parameters.

Redirect to http://localhost/webapp2?param1=value1¶m2=value2 ....

属性 2024-10-01 06:36:11

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

One of the options would be to simple pass information as GET attributes in the URL you used in sendRedirect call.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文