我正在用GWT創建一個Web用戶界面,它必須「覆蓋」現有Web平臺的UI(我無法控制原始UI,但我可以同一臺服務器)。所以,我提出了這個請求,我從舊UI獲得了HTML,而不是我需要解析HTML並選擇我需要在我的UI中呈現的信息。做最後一步的最好方法是什麼(從HTML解析和提取信息)?GWT - 如何管理從服務器獲取的HTML
回答
不要在GWT客戶端上解析HTML。
您需要設置代理servlet。代理servlet代表GWT客戶端訪問傳統(舊)HTML應用程序。代理也充當GWT客戶端的主要servlet。
PROCES流動
應用程序上下文服務於GWT應用到瀏覽器。
應用程序上下文準備服務偵聽器/遺留。
GWT應用程序運行在瀏覽器的可用部件上。
GWT應用程序向/ legacy/Patient/476854發送數據請求。
代理/服務的servlet響應請求/傳統/人/ 476854
代理/服務的servlet決定從哪裏得到的數據。
代理/服務的servlet決定大部分數據來自傳統的病人信息的應用程序//你好:8888個//聖誕老人病人= 476854。
代理/服務的servlet打完一個HTTP請求//你好:8888個//聖誕老人患者= 476854。
代理/服務servlet接收從//你好響應:8888 //聖誕老人患者= 476854?。分析並按摩迴應。用更多東西來修飾迴應。將整個響應編碼爲JSON(或將信息封裝爲RPC POJO)並將其作爲響應發送給GWT客戶端。
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。
- 1. zf2:如何在映射器中獲取服務管理器
- 2. 如何從服務器獲取返回的值從HTML表單
- 3. 如何從GWT服務器範圍獲取GWT基本URL或模塊名稱?
- 4. 接管服務器的管理時獲取基本信息
- 5. GWT:在服務器端獲取常量
- 6. 如何從服務器獲取iFrame中的HTML響應?
- 7. ZF2從服務管理器獲得服務,附加參數
- 8. 從代理服務器獲取響應
- 9. 如何獲取數據從服務器的服務器地址
- 10. 如何從服務器獲取域?
- 11. 如何從服務器獲取數據?
- 12. 如何從服務器獲取圖像
- 13. 如何從JMX服務器獲取Mbean
- 14. 如何從服務器獲取文件
- 15. 如何保持從服務器獲取響應? (PHP,JS,HTML)
- 16. 如何從Sharepoint 2010服務器場獲取前端服務器
- 17. 如何從地理位置服務器獲取圖層列表
- 18. 你將如何處理從服務器獲取新數據?
- 19. 如何管理專用服務器
- 20. 如何啓動WebLogic管理服務器
- 21. 在godaddy VPS服務器上獲取crontab管理器錯誤
- 22. Minecraft服務器管理器
- 23. 如何獲取從服務器獲取數據的url/xmlhttprequest?
- 24. 如何從GWT客戶端讀取服務器端.json文件?
- 25. GWT:從服務器端獲取語言環境信息?
- 26. GWT PHP從網絡服務器獲取數據
- 27. GWT - 獲取會話管理權
- 28. 從服務器獲取
- 29. 從服務器獲取
- 30. 如何正確使用com.mattbertolini.hermes.Hermes來管理服務器端(GWT)的常量?
關於如何實現這個代理servlet的任何建議?其實我在Apache服務器上工作:舊的應用程序基於Wordpress。創建一個用PHP編寫的服務而不是Java servlet是合理的,或者更方便創建Java servlet? – tonidi 2012-08-02 08:31:02