1

我尝试使用 ServletContext 读取文件`

InputStream is = servletContext.getResourceAsStream(path)

路径的值为:

path = D:\Assignments\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\HelpGuide\GeneratedReports\userDetail.pdf`

userDetail.pdf文件存在于给定路径中,但是当我尝试使用上面定义的 servlet 上下文将资源作为流获取时,值为isnull。

4

2 回答 2

1

这是因为 getResourceAsStream 查找相对于上下文根的路径。检查 servlet 上下文的 javadoc,尤其是“getResource”部分:http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getResourceAsStream(java.lang.String) 您应该使用相对路径并将您的 pdf 放在您的类路径中,这将是一个更好的做法,因为您的应用程序将不依赖于绝对路径。

于 2013-02-24T23:03:00.390 回答
0

正如 servlet 告诉您的那样,这是一个糟糕的主意。

将该 PDF 放在 CLASSPATH 中(例如,您的 WAR 的 WEB-INF/类)并从 servlet 上下文中将其作为 InputStream 读取。

绝对路径是 Web 应用程序的错误方式。

于 2013-02-24T23:01:29.300 回答