【问题标题】:cross domain communication between java application and html applicationjava应用程序和html应用程序之间的跨域通信
【发布时间】:2011-05-19 04:47:47
【问题描述】:
我在一个域中有一个基于 struts2 的应用程序,在另一个域中有一个基于 html 的网站。我想在 struts2 应用程序和 html 网站之间进行通信。假设我在 html 网站上可用的 html 表单中填写详细信息(如电子邮件 ID 和姓名),单击提交表单时,应将详细信息发送到基于 struts2 的应用程序。根据从 html 网站收到的值,生成一个 pdf,然后文档应该从基于 struts2 的应用程序传输到基于 html 的网站。所以现在这个文件要显示给用户。
【问题讨论】:
标签:
java
web-applications
struts2
cross-domain
【解决方案1】:
恐怕这里有一些很深的困惑。首先,没有“HTML 应用程序”之类的东西。 HTML 是网页的标记语言:它告诉浏览器如何显示内容。您不会使用 HTML 编写应用程序。
所以,你想要做的是(大致):
- 有一个生成 HTML 表单(用于电子邮件详细信息)的 Web 应用程序(可能用 Java 编写,因为您已将问题标记为此类);这样的 HTML 表单将包含一个
action 属性,其值是指向您的 Web 应用程序的链接
- 当用户访问您的 Web 应用程序(在某个 URL)时,她将在她的浏览器中看到 HTML 表单;用户将填写详细信息,然后单击提交
- 单击提交按钮时,浏览器将使用 HTML 表单的
action 属性中的链接将表单内容发布到您的 Web 应用程序
- 然后,您的 Web 应用程序将接收表单字段作为 POST 参数,并能够处理它们,可能构建 PDF,并最终将其作为答案返回给用户。
从一个非常高的角度来看,这就是整个故事。这背后有很多细节。我建议您从一些关于如何构建 (Java) Web 应用程序的基本教程开始。祝你好运!
【解决方案2】:
Step1:编写html表单以显示输入字段(姓名和电子邮件)并放在一个域中
Step2:编写动作类,在此编写setter和getter代码以检索名称和电子邮件,然后生成一个pdf并将转发字符串返回给它。
Step3:对于转发字符串,给一个jsp。在这个jsp里面写代码来显示生成的文档。
Step4:将action class和jsp放到另一个域中
Step4:使用一个html形式的iframe,并将src属性值作为动作类映射名称(generatePdf.action)的绝对路径,如http://ipaddress:serverportno/contextpath/generatePdf.action?name=xyz&email=xyz@gmail.com
It hits the specified action class exists in domain2 and gets the output from domain2 and places the output in your html(which contains iframe) form exists in domain1.