2012-01-24 10 views
28

同じサーブレットを2つの異なるURLにマップする必要があります。私はプロジェクト全体を管理するためにnetbeans 7.0.1を使用していたので、私はフレンドリーなインターフェースを使ってweb.xmlファイルを変更しました。この何NetBeansの作成です:最初の1は無視されている間同じサーブレットのURLパターンが多い

<servlet-mapping> 
    <servlet-name>fred</servlet-name> 
    <url-pattern>*.jsp</url-pattern> 
    <url-pattern>/url</url-pattern> 
</servlet-mapping> 

これは、任意のエラーを出さずにTomcat 5.5で読み取るが、唯一の第2のパターンが機能しています。

<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> 

だから、私の質問:これはAですが、Tomcatの中で

は、私は、Tomcatのための正しい方法はこの1つであることがわかったグーグル?他のコンテナを受け入れる構文は何ですか?

おかげで、 ジュゼッペ

答えて

39

私が使用してではなく、コンテナの問題中であることがコンテナ/ NetBeansのスペックサーブレットで行うことがより多くを持っていると思います。あなたのネット豆サーブレットマッピングを構築するための仕様2.5を使用しているように見えるので、あなたは

<servlet-mapping> 
    <servlet-name>fred</servlet-name> 
    <url-pattern>*.jsp</url-pattern> 
    <url-pattern>/url</url-pattern> 
</servlet-mapping> 

このhereについてお読みを得ます。これは、サーブレットスキーマの

以前のバージョンでは、これが全体のマッピング条項の不必要 繰り返し、その結果、複数のURLにマッピングされた フィルタmapping.Forフィルタで唯一の単一のurl-patternを可能にすると言います。

+0

Tomcatは、古い仕様(2.4)を使用していて、新しい構文を受け入れない場合、少なくともエラーを返すべきです。あるいは、netbeansは、互換性のあるweb.xmlを持つために古い構文を使用する必要があります。ではない?新しいコンテナは多くのサーブレット・マッピング・スタンザを持つ古い構文を受け入れますか? – eppesuig

+1

@eppesuig私はかなり彼らのほとんどが後方互換性があると確信しています:2.5サーブレット仕様XSDは確かにそれを可能にします。 –

+0

@eppesuig答えに満足すれば、質問の横にあるチェックマークをクリックするか、これがあなたに何らかの影響を与えた場合に回答に投票することができます。回答を受け入れることで、このフォーラムの評判が向上します。 –

1

Tomcatコンテナがサポートする3 URLパターン:

  1. 完全な文字列
  2. /*
  3. *.内線

/*ただ1つのために推奨されます(スターは何を意味します)フレームワーク

.*

関連する問題