java - 如何从 Java Web 应用程序托管用户生成的 HTML 页面?

标签 java html spring

我的 Java Web 应用程序需要提供许多静态 HTML 报告。

报告是使用第三方应用程序根据用户的输入按需生成的。每次运行的报告始终不同,因此无法缓存它们。报告包括多个 HTML 页面(包括 JS 和 CSS 页面)以及文件之间的相对链接。

向前端用户提供这些报告的最简单方法是什么?

报告不需要保留 - 它们可以在设定时间后或用户注销后删除。

我正在使用:

  • Tomcat 7
  • Spring框架

这是一个类似的示例:

假设 Web 应用程序是一个在线 IDE,并且您希望偶尔生成并显示项目的 Javadoc 页面。

最佳答案

我个人会使用 Web 服务器(例如 Apache)来执行此操作,因为我的 Java 应用程序始终落后于 Apache。这是一个 Apache 示例:

# Serve /path/to/html/files/ with static files stored at /var/path/to/files/
ProxyPass /path/to/html/files/ !
Alias /path/to/html/files/ /var/path/to/files/

# Proxy / to Java application at localhost:8080
ProxyPass / http://localhost:8080/

如果您必须使用纯Java解决方案,您可以尝试设置一个文件下载servlet,such as this one by BalusC 。请务必小心处理请求 url 中提供的文件路径,因为 servlet 可能容易受到 directory traversal attack 的攻击。 .

关于java - 如何从 Java Web 应用程序托管用户生成的 HTML 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24327802/

相关文章:

sql - 将三个表连接成一个连接表

java - 如何遍历 Java bean 的所有属性

java - 在这种情况下,业务代表和服务定位器应该驻留在哪里才能不产生循环依赖?

java - "Could not load known_hosts"使用 SSHJ 的异常

spring - Spring 启动:发布Thymeleaf模板而无需重新启动服务器

java - Spring Cache 从值中获取键

java - Intellij 警告忘记写入二维数组

javascript - JSON 相关的动态下拉值未定义

html - 如何让一个 div 成为另一个 div 的背景

javascript - 突出显示与所选日期匹配的 Div