Skip to content

Commit 33cc1f2

Browse files
author
eugenp
committed
session listener initial work
1 parent 9d37cea commit 33cc1f2

3 files changed

Lines changed: 122 additions & 92 deletions

File tree

Lines changed: 37 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,45 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3-
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
4-
xsi:schemaLocation="
2+
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
3+
xsi:schemaLocation="
54
http://java.sun.com/xml/ns/javaee
6-
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
7-
id="WebApp_ID" version="3.0">
5+
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
86

9-
<display-name>Spring MVC XML Application</display-name>
7+
<display-name>Spring MVC XML Application</display-name>
108

11-
<!-- Spring root -->
12-
<context-param>
13-
<param-name>contextClass</param-name>
14-
<param-value>
9+
<!-- Spring root -->
10+
<context-param>
11+
<param-name>contextClass</param-name>
12+
<param-value>
1513
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
1614
</param-value>
17-
</context-param>
18-
<context-param>
19-
<param-name>contextConfigLocation</param-name>
20-
<param-value>org.baeldung.spring</param-value>
21-
</context-param>
22-
23-
<listener>
24-
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
25-
</listener>
26-
27-
<!-- Spring child -->
28-
<servlet>
29-
<servlet-name>mvc</servlet-name>
30-
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
31-
<load-on-startup>1</load-on-startup>
32-
</servlet>
33-
<servlet-mapping>
34-
<servlet-name>mvc</servlet-name>
35-
<url-pattern>/</url-pattern>
36-
</servlet-mapping>
37-
38-
<!-- additional config -->
39-
40-
<session-config>
41-
<session-timeout>10</session-timeout>
42-
</session-config>
43-
44-
<welcome-file-list>
45-
<welcome-file>index.html</welcome-file>
46-
</welcome-file-list>
15+
</context-param>
16+
<context-param>
17+
<param-name>contextConfigLocation</param-name>
18+
<param-value>org.baeldung.spring</param-value>
19+
</context-param>
20+
21+
<listener>
22+
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
23+
</listener>
24+
25+
<!-- Spring child -->
26+
<servlet>
27+
<servlet-name>mvc</servlet-name>
28+
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
29+
<load-on-startup>1</load-on-startup>
30+
</servlet>
31+
<servlet-mapping>
32+
<servlet-name>mvc</servlet-name>
33+
<url-pattern>/</url-pattern>
34+
</servlet-mapping>
35+
36+
<!-- additional config -->
37+
38+
<session-config>
39+
<session-timeout>10</session-timeout>
40+
</session-config>
41+
<welcome-file-list>
42+
<welcome-file>index.html</welcome-file>
43+
</welcome-file-list>
4744

4845
</web-app>
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package org.baeldung.web;
2+
3+
import javax.servlet.http.HttpSessionEvent;
4+
import javax.servlet.http.HttpSessionListener;
5+
6+
public class SessionListenerWithMetrics implements HttpSessionListener {
7+
8+
private static int totalActiveSessions;
9+
10+
public SessionListenerWithMetrics() {
11+
super();
12+
}
13+
14+
// API
15+
16+
public static int getTotalActiveSession() {
17+
return totalActiveSessions;
18+
}
19+
20+
@Override
21+
public void sessionCreated(final HttpSessionEvent arg0) {
22+
totalActiveSessions++;
23+
System.out.println("sessionCreated - add one session into counter");
24+
}
25+
26+
@Override
27+
public void sessionDestroyed(final HttpSessionEvent arg0) {
28+
totalActiveSessions--;
29+
System.out.println("sessionDestroyed - deduct one session from counter");
30+
}
31+
32+
}
Lines changed: 53 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,57 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3-
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
4-
xsi:schemaLocation="
2+
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
3+
xsi:schemaLocation="
54
http://java.sun.com/xml/ns/javaee
6-
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
7-
id="WebApp_ID" version="3.0">
8-
9-
<display-name>Spring MVC Custom Application</display-name>
10-
11-
<session-config>
12-
<session-timeout>1</session-timeout>
13-
</session-config>
14-
15-
<!-- Spring root -->
16-
<context-param>
17-
<param-name>contextClass</param-name>
18-
<param-value>
19-
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
20-
</param-value>
21-
</context-param>
22-
<context-param>
23-
<param-name>contextConfigLocation</param-name>
24-
<param-value>org.baeldung.spring</param-value>
25-
</context-param>
26-
27-
<listener>
28-
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
29-
</listener>
30-
31-
<!-- Spring child -->
32-
<servlet>
33-
<servlet-name>mvc</servlet-name>
34-
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
35-
<load-on-startup>1</load-on-startup>
36-
</servlet>
37-
<servlet-mapping>
38-
<servlet-name>mvc</servlet-name>
39-
<url-pattern>/</url-pattern>
40-
</servlet-mapping>
41-
42-
<!-- Spring Security -->
43-
<filter>
44-
<filter-name>springSecurityFilterChain</filter-name>
45-
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
46-
</filter>
47-
<filter-mapping>
48-
<filter-name>springSecurityFilterChain</filter-name>
49-
<url-pattern>/*</url-pattern>
50-
</filter-mapping>
51-
52-
<!-- <welcome-file-list> -->
53-
<!-- <welcome-file>index.html</welcome-file> -->
54-
<!-- </welcome-file-list> -->
5+
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
6+
7+
<display-name>Spring MVC Custom Application</display-name>
8+
9+
<session-config>
10+
<session-timeout>1</session-timeout>
11+
</session-config>
12+
<listener>
13+
<listener-class>org.baeldung.web.SessionListenerWithMetrics</listener-class>
14+
</listener>
15+
16+
<!-- Spring root -->
17+
<context-param>
18+
<param-name>contextClass</param-name>
19+
<param-value>
20+
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
21+
</param-value>
22+
</context-param>
23+
<context-param>
24+
<param-name>contextConfigLocation</param-name>
25+
<param-value>org.baeldung.spring</param-value>
26+
</context-param>
27+
28+
<listener>
29+
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
30+
</listener>
31+
32+
<!-- Spring child -->
33+
<servlet>
34+
<servlet-name>mvc</servlet-name>
35+
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
36+
<load-on-startup>1</load-on-startup>
37+
</servlet>
38+
<servlet-mapping>
39+
<servlet-name>mvc</servlet-name>
40+
<url-pattern>/</url-pattern>
41+
</servlet-mapping>
42+
43+
<!-- Spring Security -->
44+
<filter>
45+
<filter-name>springSecurityFilterChain</filter-name>
46+
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
47+
</filter>
48+
<filter-mapping>
49+
<filter-name>springSecurityFilterChain</filter-name>
50+
<url-pattern>/*</url-pattern>
51+
</filter-mapping>
52+
53+
<!-- <welcome-file-list> -->
54+
<!-- <welcome-file>index.html</welcome-file> -->
55+
<!-- </welcome-file-list> -->
5556

5657
</web-app>

0 commit comments

Comments
 (0)