ServletContextListener is a new feature of servlet spec 2.4 (tomcat 5.0.x, 5.5.x). The essential parts are:

1. write a class implementing the javax.servlet.ServletContextListener interface. The interface itself requires two methods -- contextInitialized() [see below] and contextDestroyed().
2. Add the listener to your web.xml in a <listener> attribute.
3. Deploy your app and the contextInitialized() method below will be executed once each time the webapp is started.

The servlet spec itself and the servlet api javadocs have complete information on implementing this.

--David

Ryan O'Hara wrote:

You're looking for <init-param>. You can add these parameters to any
filter or servlet, or at the top-level for the entire webapp, and get
them when the filter or servlet runs (or any time you can get an
instance of the ServletContext which represents the webapp).
The usual way of doing this is to create a ServletContextListener  which
implements the init() method, grabs the values from the <init-param>
parameters, and stuffs them into the "application" scope. Although  this
is typically called the "application", you get it like this:

public void contextInitialized(ServletContextEvent sce)
{
    ServletContext application = sce.getServletContext();

    String myParam = application.getInitParameter("my-param");

    application.setAttribute("myParam", new Integer(myParam));
}

You can pretty much do anything you'd like at this point.

Hope that helps,

-chris


Hey Chris,

Awesome, I do in fact use param-name and param-value (init-param). So, I understand I have to make an addition to web.xml like:

<init-param>
     <param-name>variableName</param-name>
     <param-value>variableValue</param-value>
</init-param>

However, I'm not exactly sure what I'm supposed to do after this. I see that your code accounts for non-String variables by binding an object to the param-name (via setсttribute()), but I'm not sure of a couple of things. Where would this code go that gets and sets the value, so that it would only run once collectively for all users (not once per user)? More specifically, would this be executed during a restart of Tomcat? If so, how (by what class/method)?

Thanks for your quick response.  Your help is greatly appreciated.

-Ryan



---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to