2017-03-10 1 views
0

私はに割り当てられているプロジェクト内のweb.xmlファイルを開いてきた、と同じサーブレット名で複数のサーブレットマッピングを見ています:複数のサーブレットマッピング

<servlet-mapping> 
     <servlet-name>action</servlet-name> 
     <url-pattern>/beta/*</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
     <servlet-name>action</servlet-name> 
     <url-pattern>*.do</url-pattern> 
    </servlet-mapping> 

また、特定のサーブレットはそう

<servlet> 
     <servlet-name>action</servlet-name> 
     <servlet-class>org.common.utils.HeadCompliantActionServlet</servlet-class> 
     <init-param> 
      <param-name>config</param-name> 
      <param-value>/WEB-INF/struts-config.xml</param-value> 
     </init-param> 
     <init-param> 
      <param-name>config/beta</param-name> 
      <param-value>/WEB-INF/struts-config-beta.xml</param-value> 
     </init-param> 

だから私の質問はこれです...

特定のサーブレットの2つの異なるインスタンスが初期化されている/ロード:2種類の構成が含まれますか? 特定のサーブレットの1つのバージョンがロードされていますか?

答えて

1

このセクションでサーブレットが応答すべきパターン

<servlet-mapping> 
    <servlet-name>action</servlet-name> 
    <url-pattern>/beta/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>action</servlet-name> 
    <url-pattern>*.do</url-pattern> 
</servlet-mapping> 

指定します。あなたのケースと同じサーブレットを使用して複数のURLパターンを持つことは、ここでは大丈夫です。

そして、このセクション:

<servlet> 
    <servlet-name>action</servlet-name> 
    <servlet-class>org.common.utils.HeadCompliantActionServlet</servlet-class> 
    <init-param> 
     <param-name>config</param-name> 
     <param-value>/WEB-INF/struts-config.xml</param-value> 
    </init-param> 
    <init-param> 
     <param-name>config/beta</param-name> 
     <param-value>/WEB-INF/struts-config-beta.xml</param-value> 
    </init-param> 

これはサーブレットとない二人だけの定義です。しかし、それは2つのパラメータを持っています。init-paramで定義されたものはinitのサーブレットに送られますが、それはまだ同じサーブレット定義です。

Strutsは、コンフィグレーションを読み込み、初期化されたサーブレット内のコンフィグレーションを処理します。

アプリケーションで使用するサーブレットクラスのインスタンス数は、サーブレットコンテナが決定する数です。

関連する問題