javax.servlet.ServletContext オブジェクトは Web アプリケーション単位で作成される。
distributable タグを web.xml に定義した分散環境 Web アプリケーションでは、
それぞれの JVM につき一つの ServletContext オブジェクトが作成される。
分散環境ではグローバル情報をコンテキストオブジェクトの属性などに頼るべきではなくデータベースなどに頼るべき。
ServletContext オブジェクトは ServletConfig オブジェクトから取得する。
ServletConfig#getServletContext メソッドで取得できる。
<サンプル>
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
String formatParam =
this.getServletConfig().getServletContext()
.getInitParameter("dateformat");
SimpleDateFormat fmt = new SimpleDateFormat(formatParam);
PrintWriter out = res.getWriter();
out.println("<html><body>");
out.println(fmt.format(new Date()));
out.println("</body></html>");
}
JSP では暗黙オブジェクト application として利用できる。
<サンプル>
application.getInitParameter("dateformat");
ServletContextListener 実装クラスでは ServletContextEvent から取得できる
<サンプル>
public void contextInitialized(ServletContextEvent sce) {
ServletContext context = sce.getServletContext();
}
コンテキスト初期化パラメータの設定
コンテキスト初期化パラメータを web.xml に定義することが出来ます。
context-param タグは複数定義できます。
<context-param>
<param-name>dateformat</param-name>
<param-value>yyyy/MM/dd</param-value>
</context-param>
0 件のコメント:
コメントを投稿