3

Webサーバー上のファイルを非表示にするにはどうすればよいですか?files私はいくつかのpdfファイルを保存しているディレクトリ' 'を持っています。次のようなURLでユーザーにファイルへのアクセスを許可したくありません。

www.example.com/files/1.pdf

これの代わりに、DB内のIDを使用して各ファイルをマップし、ユーザーが次のようにアクセスできるようにします。

 www.example.com/fileId=5569a

filesユーザーはディレクトリにアクセスできないようにする必要があります。

これどうやってするの?

4

1 に答える 1

4

それはかなり前向きな答えです

まず、デプロイメント記述子(web.xml)を使用してディレクトリへのアクセスを拒否する必要があります

<security-constraint>
   <display-name>excluded</display-name>
   <web-resource-collection>
      <web-resource-name>No Access</web-resource-name>
      <url-pattern>/files/*</url-pattern>
   </web-resource-collection>
   <web-resource-collection>
      <web-resource-name>No Access</web-resource-name>
      <url-pattern>/files/*</url-pattern>
      <http-method>DELETE</http-method>
      <http-method>PUT</http-method>
      <http-method>HEAD</http-method>
      <http-method>OPTIONS</http-method>
      <http-method>TRACE</http-method>
      <http-method>GET</http-method>
      <http-method>POST</http-method>
   </web-resource-collection>
   <auth-constraint />
   <user-data-constraint>
      <transport-guarantee>NONE</transport-guarantee>
   </user-data-constraint>
</security-constraint>

ファイルが安全になったので、リクエスト内の「fileId」パラメータをチェックするurl-mapping「/」を使用してサーブレットを実装する必要があります。サーブレットが見つかった場合は、ファイルのダウンロードをユーザーに提供します。それ以外の場合は、ユーザーをホームページにリダイレクトします。

サーブレットの実装については、投稿を参照してください。ハイパーリンクをクリックしてサーブレットを呼び出す

ファイルのダウンロードの実装については、私の投稿を参照してください。jspですべての種類のファイルをダウンロードする一般的な方法はありますか?

于 2012-07-14T14:57:47.480 に答える