答えは -はい、できます。
OK、ここでのJB Nizet のコメントに加えて、いくつかの提案があります。
1) Web Container / Application Serverの実行中に init パラメータを追加しましたか?
「Head First Servlets & JSP: Passing the Sun Certified Web Component Developer Exam」からの引用:
サーブレットの初期化パラメータは、コンテナがサーブレットを初期化するときに一度だけ読み取られます。...
コンテナがサーブレットを作成するとき、コンテナは DD を読み取り、ServletConfig の名前と値のペアを作成します。コンテナーは、init パラメーターを再度読み取ることはありません。パラメータが ServletConfig に入ると、サーブレットを再デプロイするまで、または再デプロイしない限り、パラメータは再度読み取られません。
2) 2 種類の初期パラメータを使用できます。「 Head First Servlets and JSP 」からの別の引用(強調は私のもの):
コンテキスト初期化パラメーター(<context-param>
エレメントで定義) とサーブレット初期化パラメーター(エレメントで定義)があります<init-param>
。これらは両方ともinit parametersと呼ばれますが、異なる要素で定義されています。
コンテキスト初期化パラメーターは、現在の Web アプリの一部である任意のサーブレットまたは JSP で使用できます。
サーブレットの初期化パラメータは、 が構成されたサーブレットでのみ使用でき<init-param>
ます。
コンテキストの初期化パラメーターは、<web-app>
要素内で定義されます。
サーブレットの初期化パラメータは、特定のサーブレットごと<servlet>
に要素内で定義されます。
例:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>Servlet testing app</display-name>
<!-- This is a context init parameter -->
<context-param>
<param-name>email</param-name>
<param-value>admin@example.com</param-value>
</context-param>
<servlet>
<servlet-name>Info Servlet</servlet-name>
<servlet-class>com.example.InfoServlet</servlet-class>
<!-- This is a servlet init parameter -->
<init-param>
<param-name>name</param-name>
<param-value>John Doe</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Info Servlet</servlet-name>
<url-pattern>/test/ShowInfo.do</url-pattern>
</servlet-mapping>
</web-app>
- サーブレットのコンテキスト初期化パラメータへのアクセス:
getServletContext().getInitParameter(“email”);
- デプロイメント記述子で定義されたサーブレットのサーブレット初期化パラメーターにアクセスする:
getServletConfig().getInitParameter("name");
サーブレットの初期化パラメーターを取得する別の方法は、抽象クラスGenericServletで定義されたメソッドを使用することです。
public String getInitParameter(String name);
このメソッドは便宜上提供されています。サーブレットのServletConfigオブジェクトから名前付きパラメーターの値を取得します。
また、 ServletContextとServletConfigEnumeration<String> getInitParameterNames()
の両方がすべてのinit パラメータを取得するメソッドもあります。