如何将共享云端硬盘中的 HTML 文件"import"到战争文件中的 JSP?



前言:我是一个经验不足的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在应用程序外包含文件(war)"。它并没有真正让我找到我需要去的地方。也许答案就在我面前,但我看不见。

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范围。

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

或者,您希望客户端在计算机上查看filename.html的内容?如果是这样的话,您可能只需要添加一个具有该源的iframe。。。但是您会遇到许多与安全相关的问题,因为浏览器通常不允许您这样做。

尝试

<% 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应该可以,

我的建议是在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

相关内容

最新更新