1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package listeners;
20
21
22 import javax.servlet.ServletContext;
23 import javax.servlet.ServletContextEvent;
24 import javax.servlet.ServletContextListener;
25 import javax.servlet.http.HttpSessionAttributeListener;
26 import javax.servlet.http.HttpSessionBindingEvent;
27 import javax.servlet.http.HttpSessionEvent;
28 import javax.servlet.http.HttpSessionListener;
29
30
31
32
33
34
35
36
37
38
39
40
41 public final class SessionListener
42 implements ServletContextListener,
43 HttpSessionAttributeListener, HttpSessionListener {
44
45
46
47
48
49
50
51 private ServletContext context = null;
52
53
54
55
56
57
58
59
60
61 public void attributeAdded(HttpSessionBindingEvent event) {
62
63 log("attributeAdded('" + event.getSession().getId() + "', '" +
64 event.getName() + "', '" + event.getValue() + "')");
65
66 }
67
68
69
70
71
72
73
74 public void attributeRemoved(HttpSessionBindingEvent event) {
75
76 log("attributeRemoved('" + event.getSession().getId() + "', '" +
77 event.getName() + "', '" + event.getValue() + "')");
78
79 }
80
81
82
83
84
85
86
87 public void attributeReplaced(HttpSessionBindingEvent event) {
88
89 log("attributeReplaced('" + event.getSession().getId() + "', '" +
90 event.getName() + "', '" + event.getValue() + "')");
91
92 }
93
94
95
96
97
98
99
100 public void contextDestroyed(ServletContextEvent event) {
101
102 log("contextDestroyed()");
103 this.context = null;
104
105 }
106
107
108
109
110
111
112
113 public void contextInitialized(ServletContextEvent event) {
114
115 this.context = event.getServletContext();
116 log("contextInitialized()");
117
118 }
119
120
121
122
123
124
125
126 public void sessionCreated(HttpSessionEvent event) {
127
128 log("sessionCreated('" + event.getSession().getId() + "')");
129
130 }
131
132
133
134
135
136
137
138 public void sessionDestroyed(HttpSessionEvent event) {
139
140 log("sessionDestroyed('" + event.getSession().getId() + "')");
141
142 }
143
144
145
146
147
148
149
150
151
152 private void log(String message) {
153
154 if (context != null)
155 context.log("SessionListener: " + message);
156 else
157 System.out.println("SessionListener: " + message);
158
159 }
160
161
162
163
164
165
166
167
168
169 private void log(String message, Throwable throwable) {
170
171 if (context != null)
172 context.log("SessionListener: " + message, throwable);
173 else {
174 System.out.println("SessionListener: " + message);
175 throwable.printStackTrace(System.out);
176 }
177
178 }
179
180
181 }