如何从我的war文件中将HTML文件从共享驱动器“导入”到JSP中?

时间:2012-03-05 14:24:22

标签: java html 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)”。它并没有真正让我到达我需要去的地方。也许答案就在我面前,但我无法看到它。

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

尝试

<% 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应该可以正常工作,

答案 3 :(得分:-1)

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

中找到一些有用的提示