繁体   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