The Spring Framework

Class ContextLoaderServlet

  extended by javax.servlet.GenericServlet
      extended by javax.servlet.http.HttpServlet
          extended by org.springframework.web.context.ContextLoaderServlet
All Implemented Interfaces:
Serializable, Servlet, ServletConfig

public class ContextLoaderServlet
extends HttpServlet

Bootstrap servlet to start up Spring's root WebApplicationContext. Simply delegates to ContextLoader.

This servlet should have a lower load-on-startup value in web.xml than any servlets that access the root web application context.

Note that this class has been deprecated for containers implementing Servlet API 2.4 or higher, in favor of ContextLoaderListener.
According to Servlet 2.4, listeners must be initialized before load-on-startup servlets. Many Servlet 2.3 containers already enforce this behavior. If you use such a container, this servlet can be replaced with ContextLoaderListener. Else or if working with a Servlet 2.2 container, stick with this servlet.

Servlet 2.3 containers known to work with bootstrap listeners are:

For working with any of them, ContextLoaderListener is recommended.

Servlet 2.3 containers known not to work with bootstrap listeners are:

If you happen to work with such a server, this servlet has to be used.

So unfortunately, the only context initialization option that is compatible with all Servlet 2.3 containers is this servlet.

Note that a startup failure of this servlet will not stop the rest of the web application from starting, in contrast to a listener failure. This can lead to peculiar side effects if other servlets get started that depend on initialization of the root web application context.

Juergen Hoeller, Darren Davison
See Also:
ContextLoaderListener, Log4jConfigServlet, Serialized Form

Constructor Summary
Method Summary
protected  ContextLoader createContextLoader()
          Create the ContextLoader to use.
 void destroy()
          Close the root web application context.
 ContextLoader getContextLoader()
          Return the ContextLoader used by this servlet.
 String getServletInfo()
 void init()
          Initialize the root web application context.
 void service(HttpServletRequest request, HttpServletResponse response)
          This should never even be called since no mapping to this servlet should ever be created in web.xml.
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service
Methods inherited from class javax.servlet.GenericServlet
getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletName, init, log, log
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail


public ContextLoaderServlet()
Method Detail


public void init()
          throws ServletException
Initialize the root web application context.

init in class GenericServlet


protected ContextLoader createContextLoader()
Create the ContextLoader to use. Can be overridden in subclasses.

the new ContextLoader


public ContextLoader getContextLoader()
Return the ContextLoader used by this servlet.

the current ContextLoader


public void destroy()
Close the root web application context.

Specified by:
destroy in interface Servlet
destroy in class GenericServlet


public void service(HttpServletRequest request,
                    HttpServletResponse response)
             throws IOException
This should never even be called since no mapping to this servlet should ever be created in web.xml. That's why a correctly invoked Servlet 2.3 listener is much more appropriate for initialization work ;-)

service in class HttpServlet


public String getServletInfo()
Specified by:
getServletInfo in interface Servlet
getServletInfo in class GenericServlet

The Spring Framework

Copyright © 2002-2007 The Spring Framework.