I want the servlet container to load one or more servlets when the container is first fired up, as opposed to when a client issues a request for the servlets. How do I do that under Servlet 2.2 API?

Avi Kak

Through the load-on-startup element of the webapp deployment descriptor file web.xml.

Suppose you have two servlets, TestServlet_1 and TestServlet_2, that you'd like to get automatically loaded in when the servlet container is first fired up. And let's say that you want TestServlet_2 to be loaded before TestServlet_1. The following web.xml file placed in the WEB-INF directory of the relevant webapp would do the job.

<?xml version="1.0"?>
<!DOCTYPE web-app SYSTEM "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">

<web-app>
    
    <servlet>
        <servlet-class>
            TestServlet_1
        </servlet-class>
        <load-on-startup>
            5
        </load-on-startup>
    </servlet>          

    <servlet>
        <servlet-class>
            TestServlet_2
        </servlet-class>
        <load-on-startup>
            1
        </load-on-startup>
    </servlet>          

</web-app>

The optional content of the load-on-startup element, the positive integer 5 for TestServlet_1 and 1 for TestServlet_2, controls the order in which such servlets would be loaded into the container at startup. The smaller the value of the integer, which must be positive (even 0 is not allowed) to enable automatic loading at startup, the earlier the servlet would be loaded. If no value is specified or if the value specified is not a positive integer, the Tomcat 3.1 container will load the servlet only when a request is received for the servlet.

Getting a servlet container to load a servlet at startup can be very useful in certain applications, as for example pointed out by Alex Chaffee in a servlet FAQ posting.

0 Comments  (click to add your comment)
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

About | Sitemap | Contact