ServletContext
オブジェクトを使用して、アプリケーションに関する情報を保存したり、次の環境情報にアクセスできます。
サーブレットは getServletContext
メソッドを使用して ServletContext
オブジェクトの参照を取得します。
この例では、いくつかのサーブレット コンテキスト情報を表示します。
import java.io.*;
import java.util.Date; import javax.servlet.*; import javax.servlet.http.*; public class GetServletContextInfo extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { // 戻り値のタイプを設定します。 resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); out.println("<html><head><title>Servlet Context</title>"); out.println("</head><body>"); out.println("<h1>Servlet Context Information</h1>"); // ServletContext 情報を取得します。 ServletContext scntxt = this.getServletContext(); // サーバー情報 out.println("Server information:"+ scntxt.getServerInfo() + "<br>"); // メジャー/マイナー バージョン int majorVersion = scntxt.getMajorVersion(); int minorVersion = scntxt.getMinorVersion(); out.println("Major version:" + majorVersion + "<br>"); out.println("Minor version:" + minorVersion + "<br>"); // init パラメータがある場合は取得します。 java.util.Enumeration parmEnum = scntxt.getInitParameterNames(); if (parmEnum.hasMoreElements()) { out.println("<h2>ServletContext Parameters</h2>"); } while (parmEnum.hasMoreElements()) { String name = (String)parmEnum.nextElement(); out.println("<b>"+name+": </b>"); out.println(scntxt.getInitParameter(name) + "<br>"); } // ServletContext 属性 java.util.Enumeration attrEnum = scntxt.getAttributeNames(); if (attrEnum.hasMoreElements()) { out.println("<h2>ServletContext Attributes</h2>"); } while (attrEnum.hasMoreElements()) { // 常に属性を適切なクラスに割り当てます。 String attrName = (String)attrEnum.nextElement(); out.println("<b>" + attrName + ": </b>"); out.println(scntxt.getAttribute(attrName) + "<br>"); } // サーブレットの実際のパスを取得します。 String path = req.getServletPath(); out.println("<b>Full servlet path:</b>"); out.println(scntxt.getRealPath(path) + "<br>"); // ServletContext のログを記録します。 Date now = new Date(); scntxt.log("Testing ServletContext:" + now); out.println("</body></html>"); } }