web-dev-qa-db-ja.com

サーブレットのマッピングとデフォルトに関するTomcatとTomcat7の違いはなぜですか?

次の構成で:

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>

tomcat7とTomcat6の両方が次のURLを正常に処理します:http://127.0.0.1:8087/mynet/index.html

ただし、構成を減らしてCSSパターンに言及するだけの場合:

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>

その後、Tomcat6は動作しますが、Tomcat7は次のエラーで失敗します:要求されたリソース()は利用できません。

なぜここに違いがあるのですか?

1
weisd

Webappのweb.xmlにコンテナのdefaultサーブレットをマップする必要がありますnot。これが解決策であると考えた機能要件が何であれ、間違いなく別の方法で解決する必要があります。

たとえば、/のURLパターンでカスタムフロントコントローラーサーブレットでオーバーライドした場合は、代わりに、より具体的なURLパターンでリッスンするようにそのサーブレットを修正する必要があります。必要に応じて、フィルターを使用して、/static/resourcesなどの単一フォルダーにすべての静的リソースを収集し、フィルターにチェックさせることにより、サーブレットの特定のURLパターンを「隠す」。

こちらもご覧ください:

2
BalusC