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