session listener initial work

This commit is contained in:
eugenp 2013-08-01 23:53:50 +03:00
parent 9d37cea5b2
commit 33cc1f297a
3 changed files with 112 additions and 82 deletions

View File

@ -1,48 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <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"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" xsi:schemaLocation="
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
id="WebApp_ID" version="3.0">
<display-name>Spring MVC XML Application</display-name> <display-name>Spring MVC XML Application</display-name>
<!-- Spring root --> <!-- Spring root -->
<context-param> <context-param>
<param-name>contextClass</param-name> <param-name>contextClass</param-name>
<param-value> <param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value> </param-value>
</context-param> </context-param>
<context-param> <context-param>
<param-name>contextConfigLocation</param-name> <param-name>contextConfigLocation</param-name>
<param-value>org.baeldung.spring</param-value> <param-value>org.baeldung.spring</param-value>
</context-param> </context-param>
<listener> <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> </listener>
<!-- Spring child --> <!-- Spring child -->
<servlet> <servlet>
<servlet-name>mvc</servlet-name> <servlet-name>mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup> <load-on-startup>1</load-on-startup>
</servlet> </servlet>
<servlet-mapping> <servlet-mapping>
<servlet-name>mvc</servlet-name> <servlet-name>mvc</servlet-name>
<url-pattern>/</url-pattern> <url-pattern>/</url-pattern>
</servlet-mapping> </servlet-mapping>
<!-- additional config --> <!-- additional config -->
<session-config> <session-config>
<session-timeout>10</session-timeout> <session-timeout>10</session-timeout>
</session-config> </session-config>
<welcome-file-list>
<welcome-file-list> <welcome-file>index.html</welcome-file>
<welcome-file>index.html</welcome-file> </welcome-file-list>
</welcome-file-list>
</web-app> </web-app>

View File

@ -0,0 +1,32 @@
package org.baeldung.web;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class SessionListenerWithMetrics implements HttpSessionListener {
private static int totalActiveSessions;
public SessionListenerWithMetrics() {
super();
}
// API
public static int getTotalActiveSession() {
return totalActiveSessions;
}
@Override
public void sessionCreated(final HttpSessionEvent arg0) {
totalActiveSessions++;
System.out.println("sessionCreated - add one session into counter");
}
@Override
public void sessionDestroyed(final HttpSessionEvent arg0) {
totalActiveSessions--;
System.out.println("sessionDestroyed - deduct one session from counter");
}
}

View File

@ -1,56 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <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"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" xsi:schemaLocation="
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
id="WebApp_ID" version="3.0">
<display-name>Spring MVC Custom Application</display-name> <display-name>Spring MVC Custom Application</display-name>
<session-config> <session-config>
<session-timeout>1</session-timeout> <session-timeout>1</session-timeout>
</session-config> </session-config>
<listener>
<!-- Spring root --> <listener-class>org.baeldung.web.SessionListenerWithMetrics</listener-class>
<context-param> </listener>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>org.baeldung.spring</param-value>
</context-param>
<listener> <!-- Spring root -->
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> <context-param>
</listener> <param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>org.baeldung.spring</param-value>
</context-param>
<!-- Spring child --> <listener>
<servlet> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
<servlet-name>mvc</servlet-name> </listener>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- Spring Security --> <!-- Spring child -->
<filter> <servlet>
<filter-name>springSecurityFilterChain</filter-name> <servlet-name>mvc</servlet-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</filter> <load-on-startup>1</load-on-startup>
<filter-mapping> </servlet>
<filter-name>springSecurityFilterChain</filter-name> <servlet-mapping>
<url-pattern>/*</url-pattern> <servlet-name>mvc</servlet-name>
</filter-mapping> <url-pattern>/</url-pattern>
</servlet-mapping>
<!-- <welcome-file-list> --> <!-- Spring Security -->
<!-- <welcome-file>index.html</welcome-file> --> <filter>
<!-- </welcome-file-list> --> <filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- <welcome-file-list> -->
<!-- <welcome-file>index.html</welcome-file> -->
<!-- </welcome-file-list> -->
</web-app> </web-app>