Tomcatはどのように静的リソースを処理しますか?
Tomcatでは、静的リソースを自動マッピングと手動設定の2つの方法で処理できます。
- 自動マッピング:Tomcatは一部の一般的な静的リソースのパスを自動的にマッピングします。例えば、静的リソースファイルをTomcatのwebappsディレクトリの任意のサブディレクトリに配置すると、URLから直接アクセスできます。例えば、静的リソースファイルをwebappsディレクトリのtestディレクトリに配置すると、URLからhttp://localhost:8080/test/ファイル名でアクセスできます。
- 手動設定:Tomcatのweb.xmlファイルを編集することで静的リソースの処理方法を手動で設定できます。web.xmlに以下の設定を追加します。
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
上記の配置では、/static/で始まるすべてのURLパスがデフォルトのDefaultServletハンドラにマップされます。
自動マッピングだろうと手動設定だろうと、Tomcatは要求されたURLのパスに基づいて対応する静的リソースファイルを検索し、クライアントに返します。