27

DD 要素<context-param>とその両方は、サーブレット コード内<init-param>のメソッドによって取得できます。getInitParameter()

ここで問題は、それがどのように区別され、どのように区別<context-param>される<init-param>かです。

4

2 に答える 2

44

サーブレットの初期化パラメータは、単一のサーブレット専用です。そのサーブレットの外部は、それにアクセスできません。<servlet>これはDeploymentDescriptorのタグ内で宣言されますが、 contextinitパラメーターはWebアプリケーション全体用です。そのWebアプリケーション内の任意のサーブレットまたはJSPは、コンテキストinitパラメーターにアクセスできます。コンテキストパラメータ<context-param>は、タグ内のタグで直接宣言されます<web-app>

コンテキスト初期化パラメータにアクセスするためのメソッドは次のとおりです。

getServletContext().getInitParameter("name"); 

一方、サーブレットのinitパラメータにアクセスする方法は次のとおりです。

getServletConfig().getInitParameter("name");
于 2010-01-15T07:23:34.013 に答える
2

ここで 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 を設定して、サーブレットに出力することで、これを試すことができます。

于 2010-01-15T16:41:12.540 に答える