DD 要素<context-param>
とその両方は、サーブレット コード内<init-param>
のメソッドによって取得できます。getInitParameter()
ここで問題は、それがどのように区別され、どのように区別<context-param>
される<init-param>
かです。
DD 要素<context-param>
とその両方は、サーブレット コード内<init-param>
のメソッドによって取得できます。getInitParameter()
ここで問題は、それがどのように区別され、どのように区別<context-param>
される<init-param>
かです。
サーブレットの初期化パラメータは、単一のサーブレット専用です。そのサーブレットの外部は、それにアクセスできません。<servlet>
これはDeploymentDescriptorのタグ内で宣言されますが、 contextinitパラメーターはWebアプリケーション全体用です。そのWebアプリケーション内の任意のサーブレットまたはJSPは、コンテキストinitパラメーターにアクセスできます。コンテキストパラメータ<context-param>
は、タグ内のタグで直接宣言されます<web-app>
。
コンテキスト初期化パラメータにアクセスするためのメソッドは次のとおりです。
getServletContext().getInitParameter("name");
一方、サーブレットのinitパラメータにアクセスする方法は次のとおりです。
getServletConfig().getInitParameter("name");
ここで Adeel Ansari が説明したようgetInitParameter()
に、サーブレット コードでメソッドを呼び出すオブジェクトによって異なります。
すべてのサーブレットは から拡張されているため、 のインスタンスですGenericServlet
。
.
DD 要素は、次の<context-param>
方法で取得できます。
ServletContext context = this.getServletContext();
String paramValue = context.getInitParamter("paramName");
.
DD 要素<init-param>
は両方とも次の方法で取得できます。
ServletConfig config = this.getServletConfig();
String paramValue = config.getInitParamter("paramName");
GenericServlet
また、クラスはインターフェイスを実装ServletConfig
するため、サーブレット クラスも ServletConfig (暗黙的に)であることに注意してくださいthis = this.getServletConfig()
。<init-param>
したがって、次の方法で DD 要素を直接取得することもできます。
String paramValue = this.getInitParamter("paramName");
.
両方の DD 要素に異なる値を持つ同じ param-name を設定して、サーブレットに出力することで、これを試すことができます。