我有一个.jsp
由 servlet 调用来处理数据。
我正在尝试使用本地文件对其进行测试,我的目录当前如下所示:
WEB-INF
|----jsp
|----test.jsp
|----data.txt
我的.jsp
甚至无法进行基本的文件读取:
<%
String in = "../data.txt";
BufferedReader br = new BufferedReader(new FileReader(in));
out.println(br.readLine());
%>
我还尝试了许多其他变体:
= "data.txt"
= "./data.txt"
= "/data.txt"
= "file:///data.txt"
= "file://data.txt"
= "WEB-INF/data.txt"
等等,并且无法从文件中读取。
我对 servlet 还很陌生,所以我可能在这里缺少一个关键的交互,如果有人能向我展示如何从 .jsp
访问文件的规范的“hello world”版本,我将不胜感激。在WEB-INF
.
最佳答案
这里有几个问题。
最重要的是JSP是显示技术。您不应该尝试在 jsp 中执行任何不仅仅是显示环境提供的某些数据(例如由 servlet 设置的
HttpResponse
属性)的操作。您当然不应该尝试从 jsp 访问文件系统。即使来自 servlet,您也不应该这样做。您应该将该文件放入类路径中,并使用
getClass().getClassLoader().getResource
或getResourceAsStream
。可以直接从 Web 应用程序访问文件系统中的文件,但不建议这样做,而且不可移植。
编辑:@LocHa 的答案可能会起作用,但你真的不应该这样做。
关于java - 从 WEB-INF 内的 JSP 访问文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24144126/