You should create it on a ServletContextListener, and store it on the ServletContext (or use a Singleton). The ServletContextListener is invoked by the Web container at application startup. The ServletContext is (among other things) a container for data that could be accessed by all requests of all sessions.
This is the JavaDoc:
http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContextListener.html
And here's a tutorial;
http://www.mkyong.com/servlet/what-is-listener-servletcontextlistener-example/