1. ホーム
  2. java

[解決済み] init-paramとcontext-param

2022-02-25 11:04:30

質問

とはどのような違いがあるのでしょうか? <init-param><context-param> !?

解決方法は?

<init-param><context-param> は、web.xmlファイルに格納される静的パラメータです。もし、頻繁に変更されないデータがあれば、これらのいずれかに格納することができます。

に限定して特定のデータを保存したい場合、そのデータは 特定のサーブレットスコープ を使用することができます。 <init-param> で宣言したものはすべて <init-param> は、その特定のサーブレットでのみアクセス可能です。 init-param の内部で宣言されています。 <servlet> タグを使用します。

<servlet>
     <display-name>HelloWorldServlet</display-name>
     <servlet-name>HelloWorldServlet</servlet-name>
     <init-param>
         <param-name>Greetings</param-name>
         <param-value>Hello</param-value>
     </init-param>
</servlet>

で、サーブレット内のこれらのパラメータには、以下のようにアクセスできます。

out.println(getInitParameter("Greetings"));

に共通するデータを格納する場合、そのデータを使用することができます。 アプリケーション全体 で、頻繁に変更されないのであれば <context-param> の代わりに servletContext.setAttribute() メソッドを使用します。の使い方の詳細については <context-param> VS ServletContext.setAttribute() ご覧ください 質問 . コンテキストパラメータ はタグの下で宣言されています。 web-app . を宣言し、アクセスすることができます。 <context-param> を次のようにします。

<web-app>
    <context-param>
        <param-name>Country</param-name>
        <param-value>India</param-value>
    </context-param>
    <context-param>
        <param-name>Age</param-name>
        <param-value>24</param-value>
    </context-param>
</web-app>

JSPまたはServletでのアプリケーションでの利用

getServletContext().getInitParameter("Country");
getServletContext().getInitParameter("Age");