KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > listeners > SessionListener


1 /*
2 * Copyright 2004 The Apache Software Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */

16
17
18 package listeners;
19
20
21 import javax.servlet.ServletContext JavaDoc;
22 import javax.servlet.ServletContextEvent JavaDoc;
23 import javax.servlet.ServletContextListener JavaDoc;
24 import javax.servlet.http.HttpSessionAttributeListener JavaDoc;
25 import javax.servlet.http.HttpSessionBindingEvent JavaDoc;
26 import javax.servlet.http.HttpSessionEvent JavaDoc;
27 import javax.servlet.http.HttpSessionListener JavaDoc;
28
29
30 /**
31  * Example listener for context-related application events, which were
32  * introduced in the 2.3 version of the Servlet API. This listener
33  * merely documents the occurrence of such events in the application log
34  * associated with our servlet context.
35  *
36  * @author Craig R. McClanahan
37  * @version $Revision: 1.1 $ $Date: 2004/06/24 11:40:40 $
38  */

39
40 public final class SessionListener
41     implements ServletContextListener JavaDoc,
42            HttpSessionAttributeListener JavaDoc, HttpSessionListener JavaDoc {
43
44
45     // ----------------------------------------------------- Instance Variables
46

47
48     /**
49      * The servlet context with which we are associated.
50      */

51     private ServletContext JavaDoc context = null;
52
53
54     // --------------------------------------------------------- Public Methods
55

56
57     /**
58      * Record the fact that a servlet context attribute was added.
59      *
60      * @param event The session attribute event
61      */

62     public void attributeAdded(HttpSessionBindingEvent JavaDoc event) {
63
64     log("attributeAdded('" + event.getSession().getId() + "', '" +
65         event.getName() + "', '" + event.getValue() + "')");
66
67     }
68
69
70     /**
71      * Record the fact that a servlet context attribute was removed.
72      *
73      * @param event The session attribute event
74      */

75     public void attributeRemoved(HttpSessionBindingEvent JavaDoc event) {
76
77     log("attributeRemoved('" + event.getSession().getId() + "', '" +
78         event.getName() + "', '" + event.getValue() + "')");
79
80     }
81
82
83     /**
84      * Record the fact that a servlet context attribute was replaced.
85      *
86      * @param event The session attribute event
87      */

88     public void attributeReplaced(HttpSessionBindingEvent JavaDoc event) {
89
90     log("attributeReplaced('" + event.getSession().getId() + "', '" +
91         event.getName() + "', '" + event.getValue() + "')");
92
93     }
94
95
96     /**
97      * Record the fact that this web application has been destroyed.
98      *
99      * @param event The servlet context event
100      */

101     public void contextDestroyed(ServletContextEvent JavaDoc event) {
102
103     log("contextDestroyed()");
104     this.context = null;
105
106     }
107
108
109     /**
110      * Record the fact that this web application has been initialized.
111      *
112      * @param event The servlet context event
113      */

114     public void contextInitialized(ServletContextEvent JavaDoc event) {
115
116     this.context = event.getServletContext();
117     log("contextInitialized()");
118
119     }
120
121
122     /**
123      * Record the fact that a session has been created.
124      *
125      * @param event The session event
126      */

127     public void sessionCreated(HttpSessionEvent JavaDoc event) {
128
129     log("sessionCreated('" + event.getSession().getId() + "')");
130
131     }
132
133
134     /**
135      * Record the fact that a session has been destroyed.
136      *
137      * @param event The session event
138      */

139     public void sessionDestroyed(HttpSessionEvent JavaDoc event) {
140
141     log("sessionDestroyed('" + event.getSession().getId() + "')");
142
143     }
144
145
146     // -------------------------------------------------------- Private Methods
147

148
149     /**
150      * Log a message to the servlet context application log.
151      *
152      * @param message Message to be logged
153      */

154     private void log(String JavaDoc message) {
155
156     if (context != null)
157         context.log("SessionListener: " + message);
158     else
159         System.out.println("SessionListener: " + message);
160
161     }
162
163
164     /**
165      * Log a message and associated exception to the servlet context
166      * application log.
167      *
168      * @param message Message to be logged
169      * @param throwable Exception to be logged
170      */

171     private void log(String JavaDoc message, Throwable JavaDoc throwable) {
172
173     if (context != null)
174         context.log("SessionListener: " + message, throwable);
175     else {
176         System.out.println("SessionListener: " + message);
177         throwable.printStackTrace(System.out);
178     }
179
180     }
181
182
183 }
184
Popular Tags