Servlet:尝试在eclipse中使用servlet读取pdf文件

时间:2013-02-24 22:57:51

标签: java

我尝试使用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 context定义将资源作为流时,is的值为null。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

这是一个糟糕的主意,就像servlet告诉你的那样。

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

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