3

私はJava + springフレームワークで書かれたWebアプリケーションを持っています。使用するアプリケーション サーバーは tomcat です。Web アプリケーション名が「sample-webapp」であるとします。このように sample-webapp/resources/ の下にシンボリック リンクを作成すると、

ls -l

.../sample-webapp/resources/temp-csv-location -> /tmp/csv-location

ここで「temp-csv-location」はシンボリックリンクです。

jspページでこのディレクトリ内のファイルを参照すると、次のようになります

<a href="http://localhost:8080/sample-webapp/resources/temp-csv-location/test.csv">Click</a>

404エラーが発生します。/tmp/csv-location/にtest.csvファイルが存在することを確認しました。権限も確認しました。普通の tomcat の使用法では、context.xml に「allowLinking=true」を追加できます。

春のフレームワークでこれを行う方法はありますか?

4

1 に答える 1

0

問題の代替の一般的な解決策は、開始パスを計算するすべてのリクエストを処理するサーブレットを作成することです。サーブレットは、パスを解決してファイルの提供を処理します。

サーブレットを設定するには、これを web.xml に入れる必要があります

<filter>
    <filter-name>csvFileDownloadServlet</filter-name>
    <filter-class>edu.sharif.resource.CSVFileDownloadServlet</filter-class>
</filter>
<filter-mapping>
    <filter-name>csvFileDownloadServlet</filter-name>
    <url-pattern>/resources/temp-csv-location/*</url-pattern>
</filter-mapping>

次に、edu.sharif.resource.CSVFileDownloadServlet クラスを作成する必要があります。簡単な検索で、この問題のいくつかの実装を見つけることができます。たとえば、次のようになります。

于 2012-06-30T17:57:41.553 に答える