0

我正在使用 GWT 创建一个 Web 用户界面,它必须“覆盖”现有 Web 平台的 UI(我无法控制原始 UI,但我可以在同一台服务器上工作)。所以,我提出了请求,我从旧 UI 获得了 HTML,而不是我需要解析 HTML 并选择我需要在我的 UI 中呈现的信息。最后一步(从 HTML 中解析和提取信息)的最佳方法是什么?

4

2 回答 2

1

不要在 GWT 客户端上解析 HTML。

您需要设置一个代理 servlet。代理 servlet 代表 GWT 客户端访问旧的(旧的)HTML 应用程序。代理还充当 GWT 客户端的主要 servlet。

工艺流程

  1. 应用程序上下文为浏览器提供 GWT 应用程序。

  2. 应用程序上下文准备服务侦听器/legacy。

  3. 在浏览器就绪小部件上运行的 GWT 应用程序。

  4. GWT 应用程序向 /legacy/Patient/476854 发送数据请求。

  5. 代理/服务 servlet 响应请求 /legacy/Patient/476854

  6. 代理/服务 servlet 决定从何处获取数据。

  7. 代理/服务 servlet 确定大多数数据来自旧版患者信息应用程序//hello:8888//SantaClaus?patient=476854。

  8. 代理/服务 servlet 向 //hello:8888//SantaClaus?patient=476854 发出 http 请求。

  9. 代理/服务 servlet 接收来自 //hello:8888//SantaClaus?patient=476854 的响应。解析并按摩响应。用更多的东西来修饰响应。将整个响应编码为 JSON(或将信息封装为 RPC POJO)并将其作为响应发送给 GWT 客户端。

  10. GWT 客户端请求回调被触发,并表现为任何已发出 REST 或 RPC 请求并返回响应的 GWT 客户端。解释数据并将其显示在它准备好的小部件上。

什么是代理 servlet?

我描述的代理 servlet 不是通常的 http 代理。相反,它是一个提供 REST 或 RPC 服务的普通 servlet。我称它为代理,因为它是允许 http 客户端访问未启用 http 的旧版/中间件应用程序的代理。

servlet 接受 http 请求并将它们转换为对遗留应用程序的调用。通常,它可能涉及编写终端仿真器,因为许多遗留应用程序是用旧的 VMS、IBM VM 甚至是 Sperry/Unisys 编写的,这些应用程序只接受终端输入。为此有终端仿真库。

幸运的是,您的服务不需要执行终端 emu,只需将一个 http 请求转换为另一个。

我建议使用 JAX-RS(RestEasy 或 Jersey)作为 REST 侦听器 servlet,它侦听与您声明的服务接口相对应的任何 http 请求。监听器会自发触发接口的实现。接口 impl 将包含触发/调用/拨入遗留应用程序并将其数据转换为响应的例程。

对于带有 GWT 的 JAX-RS,请阅读http://h2g2java.blessedgeek.com/2011/12/gwt-with-jax-rs-aka-rpcrest-part-1.html

于 2012-08-01T22:50:43.247 回答
0

您可以使用GWTDOM级别。

https://developers.google.com/web-toolkit/doc/latest/DevGuideUiDom

不确定我是否真的理解你的问题。

于 2012-08-01T13:49:17.820 回答