2011-10-25 33 views
9

他の人が書いたJ2EEプロジェクトが発生しました。 web.xmlに来ると、同じURLパターンにマップされた2つの異なるサーブレットがあります。私はこのアプローチの目的を疑問に思います。それはどのくらい正確に機能するのですか?ここで同じURLパターンにマップされた2つの異なるサーブレットを持つ

web.xmlの関連する部分である:

<servlet> 
    <servlet-name>fileDownload</servlet-name> 
    <servlet-class>com.htsoft.core.web.servlet.FileDownloadServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>fileDownload</servlet-name> 
    <url-pattern>/file-download</url-pattern> 
</servlet-mapping> 

<servlet> 
    <servlet-name>fileDownLoad</servlet-name> 
    <servlet-class>com.kaiwii.oa.action.system.FileDownloadServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>fileDownLoad</servlet-name> 
    <url-pattern>/file-downLoad</url-pattern> 
</servlet-mapping> 
+0

xmlの部分を貼り付けるには良いでしょう。 – hellectronic

+0

私は既にweb.xmlコンテンツを投稿しています。 –

+3

これらは同じではありません。サーブレットの仕様では、パターンマッチングでは大文字と小文字が区別されます。 –

答えて

11

つだけサーブレットが呼び出されます。 2つのサーブレットを使って1つのリクエストを処理することについて私が認識しているメカニズムはありません。

サーブレットのURLパターンは重複する可能性がありますが、正確に同じURLを持つ2つのサーブレットURLパターンは意味をなさないものです。サーブレットの仕様が明示的にであれば、は許可されていませんが、マッチングは最初の一致では停止します。マッチング方法は仕様に定義されています。

Servlet 2.4 spec PDFを参照してください。 85 +

+0

仕様は、url-patternsがその出現順にテストされなければならないということははっきりしているので、最初に一番長い試合が成立します。 SRV 2.5。 – EJP

+0

@ EJP私はそれがマッピング仕様の部分がしたものだと思いましたか? –

+0

私はコメントを修正しましたが、フィルタのマッピングとセキュリティの制約について説明する部分はweb.xmlの順序を明示しています。 について説明している#11.1はそうではありません。 – EJP

関連する問題