Interface Servlet

All Known Subinterfaces:
CometServlet, HttpJspPage, JspPage
All Known Implementing Classes:
AdminRestServlet, BayeuxServlet, BurlapServlet, CGIServlet, DeploymentServlet, DirectoryServlet, EJBServlet, EJBServlet, EJBServlet, EJBServlet, ErrorStatusServlet, FacesServletImpl, FastCGIServlet, FileServlet, FormLoginServlet, GenericCometServlet, GenericServlet, GoogleQuercusServlet, GoogleQuercusServletImpl, HessianEJBServlet, HessianServlet, HmtpServlet, HmtpServlet, HmuxLoadBalanceServlet, HttpProxyServlet, HttpServlet, JavaPage, JMSServlet, JmtpServlet, JsfDeveloperAidServlet, JspServlet, JspXmlServlet, LoadBalanceServlet, ManagementServlet, NullCallServlet, Page, ProfilerServlet, ProGoogleQuercusServlet, ProQuercusServlet, ProResinQuercusServlet, QServlet, QuercusServlet, QuercusServletImpl, RemoteFilesystemServlet, ResinQuercusServlet, ResinStatusServlet, SSIServlet, StaticPage, TestHessian2Servlet, TestHessianServlet, WebDavServlet, XtpServlet, YadisServlet

public interface Servlet

A servlet is any Java class with a null-arg constructor that implements the Servlet API.

Simple servlets should extend HttpServlet to create servlets.

Servlets that need full control should extend GenericServlet.


Servlets are usually loaded from WEB-INF/classes under the application's root. To add a servlet test.MyServlet, create the java file:

Servlets can also live in the global classpath.


Servlet configuration for Resin is in the resin.conf file.

 <servlet servlet-name='hello'
   <init-param param1='value1'/>
   <init-param param2='value2'/>


The servlet engine selects servlets based on the servlet-mapping configuration. Servlets can use the special 'invoker' servlet or they can be configured to execute directly.

To get a path info, your servlet needs to use a wildcard. In the following example, /Hello will match the 'hello' servlet, but /Hello/there will match the 'defaultServlet' servlet with a pathinfo of /Hello/there.

 <servlet-mapping url-pattern='/'

 <servlet-mapping url-pattern='/Hello'

 <servlet-mapping url-pattern='/servlet/*'

 <servlet-mapping url-pattern='*.jsp'

Life cycle

Servlets are normally initialized when they are first loaded. You can force loading on startup using the 'load-on-startup' attribute to the servlet configuration. This is a useful technique for the equivalent of the global.jsa file.

A servlet can count on having only one instance per application (JVM) unless it implements SingleThreadedModel.

Servlet requests are handed by the service routine. Since the servlet engine is multithreaded, multiple threads may call service simultaneously.

When the application closes, the servlet engine will call destroy. Note, applications always close and are restarted whenever a servlet changes. So init and destroy may be called many times while the server is still up.

Method Summary
 void destroy()
          Called when the servlet shuts down.
 ServletConfig getServletConfig()
          Returns the servlet configuration, usually the same value as passed to the init routine.
 java.lang.String getServletInfo()
          Returns an information string about the servlet.
 void init(ServletConfig config)
          Initialize the servlet.
 void service(ServletRequest req, ServletResponse res)
          Service a request.

Method Detail


java.lang.String getServletInfo()
Returns an information string about the servlet.


void init(ServletConfig config)
          throws ServletException
Initialize the servlet. ServletConfig contains servlet parameters from the configuration file. GenericServlet will store the config for later use.

config - information from the configuration file.


ServletConfig getServletConfig()
Returns the servlet configuration, usually the same value as passed to the init routine.


void service(ServletRequest req,
             ServletResponse res)
Service a request. Since the servlet engine is multithreaded, many threads may execute service simultaneously. Normally, req and res will actually be HttpServletRequest and HttpServletResponse classes.

req - request information. Normally servlets will cast this to HttpServletRequest
res - response information. Normally servlets will cast this to HttpServletRequest


void destroy()
Called when the servlet shuts down. Servlets can use this to close database connections, etc. Servlets generally only shutdown when the application closes.