import javax.servlet.*; //(1)ServletContextAttributeListenerインタフェースを実装しています。 public class CheckListenerServlet implements ServletContextAttributeListener { //(2)attributeAddedメソッドを定義します。 public void attributeAdded(ServletContextAttributeEvent scae) { //(3)getServletContextメソッドを使用し、 // ServletContextオブジェクトを取得します。 ServletContext sc = scae.getServletContext(); //(4)getNameメソッドで登録されたデータ名を取得し、 // ログに生成します。 sc.log(scae.getName() + " Added"); } public void attributeReplaced(ServletContextAttributeEvent scae) {} public void attributeRemoved(ServletContextAttributeEvent scae) {} }
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class AddDataServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { //(1)getServletContextメソッドを使用し、 // ServletContextオブジェクトを取得します。 ServletContext sc = getServletContext(); //(2)applicationスコープを持つ、データ"name"を登録します。 sc.setAttribute("name", "java"); res.setContentType("text/html; charset=Windows-31J"); PrintWriter out = res.getWriter(); out.println("<HTML><HEAD>"); out.println("<META HTTP-EQUIV=\"Content-Type\" " + "CONTENT=\"text/html; charset=Shift_JIS\">"); out.println("</HEAD><BODY>"); out.println("applicationスコープのデータnameを登録"); out.println("</BODY></HTML>"); } }
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems,Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <!-- (1)リスナークラスを登録します。 --> <listener> <listener-class>CheckListenerServlet</listener-class> </listener> <servlet> <servlet-name>AddDataServlet</servlet-name> <servlet-class>AddDataServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AddDataServlet</servlet-name> <url-pattern>/AddDataServlet</url-pattern> </servlet-mapping> </web-app>
--------------------------------- --------------------------------- ※ログが生成されていることが確認できます。 2004-09-20 22:05:03 StandardContext[/serTest]name Added