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ますが、上記のようにサーブレットコンテキスト定義を使用してリソースをストリームとして取得しようとすると、の値isはnullになります。

4

2 に答える 2

1

これは、getResourceAsStream がコンテキスト ルートからの相対パスを参照するためです。サーブレット コンテキストの javadoc と、特に「getResource」部分を確認 してください: http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getResourceAsStream(java.lang.String)アプリは絶対パスに依存しないため、これはより良い方法です。

于 2013-02-24T23:03:00.390 に答える
0

サーブレットが言っているように、これは非常に悪い考えです。

その PDF を CLASSPATH (例: WAR の WEB-INF/classes) に入れ、サーブレット コンテキストから InputStream として読み取ります。

絶対パスは、Web アプリでは間違った方法です。

于 2013-02-24T23:01:29.300 に答える