前言:我是一名缺乏经验的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)”。它并没有真正让我到达我需要去的地方。也许答案就在我面前,但我无法看到它。
答案 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
中找到一些有用的提示