1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package listeners;
19
20
21 import javax.servlet.ServletContext;
22 import javax.servlet.ServletContextAttributeEvent;
23 import javax.servlet.ServletContextAttributeListener;
24 import javax.servlet.ServletContextEvent;
25 import javax.servlet.ServletContextListener;
26
27
28 /**
29 * Example listener for context-related application events, which were
30 * introduced in the 2.3 version of the Servlet API. This listener
31 * merely documents the occurrence of such events in the application log
32 * associated with our servlet context.
33 *
34 * @author Craig R. McClanahan
35 * @version $Revision: 267129 $ $Date: 2004-03-18 08:40:35 -0800 (Thu, 18 Mar 2004) $
36 */
37
38 public final class ContextListener
39 implements ServletContextAttributeListener, ServletContextListener {
40
41
42
43
44
45 /**
46 * The servlet context with which we are associated.
47 */
48 private ServletContext context = null;
49
50
51
52
53
54 /**
55 * Record the fact that a servlet context attribute was added.
56 *
57 * @param event The servlet context attribute event
58 */
59 public void attributeAdded(ServletContextAttributeEvent event) {
60
61 log("attributeAdded('" + event.getName() + "', '" +
62 event.getValue() + "')");
63
64 }
65
66
67 /**
68 * Record the fact that a servlet context attribute was removed.
69 *
70 * @param event The servlet context attribute event
71 */
72 public void attributeRemoved(ServletContextAttributeEvent event) {
73
74 log("attributeRemoved('" + event.getName() + "', '" +
75 event.getValue() + "')");
76
77 }
78
79
80 /**
81 * Record the fact that a servlet context attribute was replaced.
82 *
83 * @param event The servlet context attribute event
84 */
85 public void attributeReplaced(ServletContextAttributeEvent event) {
86
87 log("attributeReplaced('" + event.getName() + "', '" +
88 event.getValue() + "')");
89
90 }
91
92
93 /**
94 * Record the fact that this web application has been destroyed.
95 *
96 * @param event The servlet context event
97 */
98 public void contextDestroyed(ServletContextEvent event) {
99
100 log("contextDestroyed()");
101 this.context = null;
102
103 }
104
105
106 /**
107 * Record the fact that this web application has been initialized.
108 *
109 * @param event The servlet context event
110 */
111 public void contextInitialized(ServletContextEvent event) {
112
113 this.context = event.getServletContext();
114 log("contextInitialized()");
115
116 }
117
118
119
120
121
122 /**
123 * Log a message to the servlet context application log.
124 *
125 * @param message Message to be logged
126 */
127 private void log(String message) {
128
129 if (context != null)
130 context.log("ContextListener: " + message);
131 else
132 System.out.println("ContextListener: " + message);
133
134 }
135
136
137 /**
138 * Log a message and associated exception to the servlet context
139 * application log.
140 *
141 * @param message Message to be logged
142 * @param throwable Exception to be logged
143 */
144 private void log(String message, Throwable throwable) {
145
146 if (context != null)
147 context.log("ContextListener: " + message, throwable);
148 else {
149 System.out.println("ContextListener: " + message);
150 throwable.printStackTrace(System.out);
151 }
152
153 }
154
155
156 }