【问题标题】:How do I "import" a HTML file from a shared drive into a JSP from my war file?如何从我的 war 文件将 HTML 文件从共享驱动器“导入”到 JSP?
【发布时间】:2012-03-05 22:47:28
【问题描述】:

前言:我是一个没有经验的 Java 程序员,他的第一个任务是交给我的。如果我没有正确提出问题或没有提供足够的细节,请告诉我。

我正在尝试导入保存在我的 C 驱动器上的 HTML 页面。我正在尝试将其导入到 war 文件中存在的 JSP 文件的内容部分(div id="content")。我已经发现我不能使用 jsp:include、#include、@include 文件,因为该文件存在于 war 文件之外。我还发现 c:import 和 iFrame 不起作用。

我的目标是让我c盘中保存的html文件的内容出现在jsp的内容中(在网页上可见)。

我在这个<% File f = new File("c:\\temp\\filename.html").......%> 上是否走在正确的轨道上

我搜索了 stackoverflow,唯一接近的主题是“如何使用 jsp include 在应用程序(战争)之外包含文件。”它并没有真正把我带到我需要去的地方。或许答案就在眼前,但我看不到。

【问题讨论】:

  • 您为什么要这样做?如果 html 文件不在战争范围内,则非常不安全,甚至可能会被移动/删除等。
  • 这是指令。这个想法是内容可以由少数人更新。他们将从共享驱动器访问 HTML 文件。

标签: java html jsp


【解决方案1】:

JSP/JSTL 不提供支持此功能的标签。您需要使用纯 Java 来完成。您只需自己将其写入响应即可。

这是最简单的方法之一:

<%
    Reader reader = new FileReader("c:/path/to/external/file.html");
    try {
        for (int i = 0; (i = reader.read()) != -1;) {
            out.write(i);
        }
    } finally {
        try { reader.close(); } catch (IOException ignore) {}
    }
%>

您可以将其包装在自定义标记中以使您的 JSP 免受 scriptlet 混乱,或者您可以将其读入 servlet 中的 String 并将其传递给 JSP EL 范围。

【讨论】:

【解决方案2】:

您是否希望客户看到位于您的服务器上的filename.html 的内容?如果是这样,你为什么不把它放在你的项目/战争中?

或者您是否希望客户看到他们在他们的计算机上拥有的filename.html 的内容?如果是这样,您也许可以使用该来源添加 iframe...但是您会遇到许多与安全相关的问题,因为浏览器通常不允许您这样做。

【讨论】:

    【解决方案3】:

    试试

    <% File f = new File("c:\\temp\\filename.html");
       BufferedReader in = new BufferedReader(new FileReader(f));
       while (in.readLine() != null) {
         out.println(blah blah blah);          
       } 
       in.close();
    %>
    

    读取文件并将其打印到 JSP 应该可以工作,

    【讨论】:

      【解决方案4】:

      我的建议是在您的 jsp 应用程序中使用 http 表单上传。在这种情况下,您的文件可以位于文件系统中可访问的任何位置,而不是将其硬编码到某个位置。用法http://commons.apache.org/fileupload/using.html

      http://www.servletworld.com/servlet-tutorials/servlet-file-upload-example.html上的好教程 一些有用的提示也可以在视频中找到,http://www.youtube.com/watch?v=BLamJlRg9Ws

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-28
        • 1970-01-01
        • 2021-04-05
        • 2018-03-10
        • 1970-01-01
        • 2018-07-13
        相关资源
        最近更新 更多