I need to give my user a web interface to change the session timeout interval. So, different installations of the web application would be able to have different timeouts fo
Instead of using a ServletContextListener, use a HttpSessionListener.
In the sessionCreated() method, you can set the session timeout programmatically:
public class MyHttpSessionListener implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent event){
event.getSession().setMaxInactiveInterval(15 * 60); // in seconds
}
public void sessionDestroyed(HttpSessionEvent event) {}
}
And don't forget to define the listener in the deployment descriptor:
...
com.example.MyHttpSessionListener
(or since Servlet version 3.0 you can use @WebListener annotation instead).
Still, I would recommend creating different web.xml files for each application and defining the session timeout there:
...
15