javax.servlet
Interface Servlet

All Known Subinterfaces:
HttpJspPage, JspPage
All Known Implementing Classes:
GenericServlet

public abstract interface Servlet

This is the interface for all servlets.

Servlets handle server request.

Servlets have 5 phases in their lifespan, as follows:

  1. Creation
    This is an ordinary constructor call by the server.
  2. init
    The server who created the servlet calls the init method somewhere between creation and the first request it ever gives the servlet to handle.
  3. service
    For every incoming request the server calls the service method. The server packages all the request data in a ServletRequest object, and creates a ServletResponse object for the servlet to write reply data to.
    Note that the service method is run in a seperate thread.
    This is also the great advantage of using servlets versus traditional cgi scripting: instead of forking of a proces for every request only a new thread is created.
  4. destroy
    This method is called by the server indicating that the server no longer requires this servlet's services. The serlvet is expected to release any resources it is holding using this method.
    (With resources things like database connections etc are meant).
  5. Destruction
    This happens whenever the garbage collector happens to feel like reclaiming the memory used by this servlet.

Since:
Servlet API 1.0
Version:
Servlet API 2.1

Method Summary
 void destroy()
          Called by the server when it no longer needs the servlet.
 ServletConfig getServletConfig()
          Gets the servlet config class.
 java.lang.String getServletInfo()
          Gets a string containing information about the servlet.
 void init(ServletConfig config)
          Initializes the servlet.
 void service(ServletRequest request, ServletResponse response)
          Called by the server every time it wants the servlet to handle a request.
 

Method Detail

init

public void init(ServletConfig config)
          throws ServletException
Initializes the servlet. Called by the server exactly once during the lifetime of the servlet. This method can be used to setup resources (connections to a database for example) for this servlet. The servlet should store the ServletConfig so it can return it again when the getConfig() method is called. If the the servlet is temporarily or permanently unavailable it should throw an UnavailableException.
Parameters:
config - This servlet configuration class
Throws:
ServletException - If an unexpected error occurs
UnavailableException - If servlet is temporarily or permanently unavailable
Since:
Servlet API 1.0
See Also:
UnavailableException

service

public void service(ServletRequest request,
                    ServletResponse response)
             throws java.io.IOException,
                    ServletException
Called by the server every time it wants the servlet to handle a request. The servlet engine doesn't have to wait until the service call is finished but can start another thread and call the service method again to handle multiple concurrent requests. If a servlet doesn't want this to happen it has to implement the SingleThreadModel interface.
Parameters:
request - all the request information
response - class to write all the response data to
Throws:
ServletException - If an error occurs
java.io.IOException - If an error occurs
Since:
Servlet API 1.0
See Also:
SingleThreadModel

destroy

public void destroy()
Called by the server when it no longer needs the servlet. The servlet programmer should use this method to free all the resources the servlet is holding.
Since:
Servlet API 1.0

getServletConfig

public ServletConfig getServletConfig()
Gets the servlet config class. This should be the same ServletConfig that was handed to the init() method.
Returns:
The config class
Since:
Servlet API 1.0

getServletInfo

public java.lang.String getServletInfo()
Gets a string containing information about the servlet. This String is provided by the Servlet writer and may contain things like the Servlet's name, author, version... stuff like that.
Since:
Servlet API 1.0