簡體   English   中英

如何從Apache Velocity中的.vm文件獲取整個HTML?

[英]How to get whole HTML from a .vm file in Apache Velocity?

感謝您對我的用例的幫助。 我有一個Servlet,它使用Apache Velocity模板(.vm)文件中的javascript呈現一些信息。

現在,在我將此模板返回到瀏覽器之前,我想將整個HTML存儲到我需要從.vm模板訪問整個HTML的本地文件系統中。 我堅持做最后一步。

Web應用程序是client⟷server應用程序,這意味着客戶端(即您的瀏覽器)與Web服務器之間存在明顯的分離。 您在瀏覽器中看到的服務器和HTML之間沒有直接連接。

嘗試可視化過程:

  1. 用戶嘗試打開網頁,因此瀏覽器會向服務器發送HTTP請求。
  2. 服務器處理所請求的URL,並確定它應該轉到處理速度模板的servlet,並標識應該用於呈現響應的.vm文件。
  3. .vm文件由服務器上的servlet讀取,並呈現為HTML的字符串表示形式。
  4. HTML將在HTTP響應中發送到客戶端。 從現在開始,服務器與該HTML沒有任何關聯。
  5. 瀏覽器從響應中讀取HTML,解析它並顯示它。
  6. 與該HTML相關聯的JavaScript資源也從服務器獲取,解析並執行(在客戶端瀏覽器中)。

Velocity模板(或服務器上的任何其他代碼)無法訪問現在在瀏覽器中的HTML,除非瀏覽器在另一個請求中明確地將其發送回服務器。

你能做的是:

  1. 編寫另一段偵聽click事件的JavaScript代碼。
  2. JS從目標元素中獲取序列化的HTML,類似於var html = document.getElementById('id_of_the_element').innerHTML;
  3. JS使用XMLHttpRequest將此字符串發送到服務器,使用瀏覽器的原始XHR支持或您選擇的JS框架。
  4. 在服務器上,您編寫另一個servlet(或擴展現有servlet的功能),該servlet接收此HTML並根據需要對其進行處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM