同じサーブレットを2つの異なるURLにマッピングする必要があります。プロジェクト全体を管理するためにnetbeans 7.0.1を使用したため、web.xmlファイルを変更するために使いやすいインターフェースを使用しました。 netbeansが作成したのはこれです:
<servlet-mapping>
<servlet-name>fred</servlet-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>/url</url-pattern>
</servlet-mapping>
これはエラーを発生させることなくTomcat 5.5によって読み取られますが、2番目のパターンのみが機能し、最初のパターンは無視されます。
グーグル私はTomcatの正しい方法がこれであることを発見しました:
<servlet-mapping>
<servlet-name>fred</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>fred</servlet-name>
<url-pattern>/url</url-pattern>
</servlet-mapping>
だから、私の質問:これはTomcatのバグですか?他のコンテナはどの構文を受け入れますか?
コンテナの問題ではなく、コンテナ/ netbeansが使用しているサーブレットの仕様に関係があると思います。ネットBeanは、仕様2.5を使用してサーブレットマッピングを構築しているようであるため、
<servlet-mapping>
<servlet-name>fred</servlet-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>/url</url-pattern>
</servlet-mapping>
詳細についてはこちらをご覧ください こちら 。それは言います
サーブレットスキーマの以前のバージョンでは、フィルターマッピングで使用できるURLパターンは1つだけです。複数のURLにマップされたフィルターの場合、マッピング句全体が不必要に繰り返されます。
Tomcatコンテナは3つのURLパターンをサポートします:
/*
*.
ext(スターは何でも意味する)/*
は、1つのフレームワークのみに推奨されます
複数のフレームワークを使用する場合は、.*