home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 November / PCWorld_2000-11_cd.bin / Komunik / sambar444 / _SETUP.1 / javaeng.jar / javax / servlet / Servlet.java < prev    next >
Text File  |  2000-08-09  |  5KB  |  138 lines

  1. /*
  2.  * Servlet.java -- Interface for all servlets
  3.  *
  4.  * Copyright (c) 1998, 1999 by Free Software Foundation, Inc.
  5.  * Written by Paul Siegmann (pauls@euronet.nl)
  6.  *
  7.  * This program is free software; you can redistribute it and/or modify
  8.  * it under the terms of the GNU Library General Public License as published
  9.  * by the Free Software Foundation, version 2. (see COPYING.LIB)
  10.  *
  11.  * This program is distributed in the hope that it will be useful, but
  12.  * WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program; if not, write to the Free Software Foundation
  18.  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307 USA
  19.  */
  20.  
  21. package javax.servlet;
  22.  
  23. import java.io.IOException;
  24.  
  25. /**
  26.  * This is the interface for all servlets.
  27.  * <P>
  28.  * Servlets handle server request.
  29.  * <P>
  30.  * Servlets have 5 phases in their lifespan, as follows:
  31.  * <OL>
  32.  * <LI>Creation<BR>
  33.  * This is an ordinary constructor call by the server.
  34.  * <LI>init<BR>
  35.  * The server who created the servlet calls the <CODE>init</CODE> method
  36.  * somewhere between creation and the first request it ever gives
  37.  * the servlet to handle.
  38.  * <LI>service<BR>
  39.  * For every incoming request the server calls the <CODE>service</CODE> method.
  40.  * The server packages all the request data in a ServletRequest object, and
  41.  * creates a ServletResponse object for the servlet to write reply data to.<BR>
  42.  * Note that the service method is run in a seperate thread.<BR>
  43.  * This is also the great advantage of using servlets versus traditional cgi
  44.  * scripting: instead of forking of a proces for every request only a new
  45.  * thread is created.
  46.  * <LI>destroy<BR>
  47.  * This method is called by the server indicating that the server no longer
  48.  * requires this servlet's services. The serlvet is expected to release any
  49.  * resources it is holding using this method.<BR>
  50.  * (With resources things like database connections etc are meant).
  51.  * <LI>Destruction<BR>
  52.  * This happens whenever the garbage collector happens to feel like
  53.  * reclaiming the memory used by this servlet.
  54.  * </OL>
  55.  *
  56.  * @version Servlet API 2.2
  57.  * @since Servlet API 1.0
  58.  * @author Paul Siegmann (pauls@euronet.nl)
  59.  */
  60. public interface Servlet
  61. {
  62.     /**
  63.      * Initializes the servlet.
  64.      * Called by the server exactly once during the lifetime of the servlet.
  65.      * This method can be used to setup resources (connections to a
  66.      * database for example) for this servlet. The servlet should store the
  67.      * <code>ServletConfig</code> so it can return it again when the
  68.      * <code>getConfig()</code> method is called. If the the servlet is
  69.      * temporarily or permanently unavailable it should throw an
  70.      * <code>UnavailableException</code>.
  71.      * @see javax.servlet.UnavailableException
  72.      *
  73.      * @since Servlet API 1.0
  74.      *
  75.      * @param config This servlet configuration class
  76.      * @exception ServletException If an unexpected error occurs
  77.      * @exception UnavailableException If servlet is temporarily or permanently
  78.      * unavailable
  79.      */
  80.     void init (ServletConfig config) throws ServletException;
  81.  
  82.  
  83.     /**
  84.      * Called by the server every time it wants the servlet to handle
  85.      * a request. The servlet engine doesn't have to wait until the service
  86.      * call is finished but can start another thread and call the service method
  87.      * again to handle multiple concurrent requests. If a servlet doesn't want
  88.      * this to happen it has to implement the <code>SingleThreadModel</code>
  89.      * interface.
  90.      * @see javax.servlet.SingleThreadModel
  91.      * 
  92.      * @since Servlet API 1.0
  93.      *
  94.      * @param request all the request information
  95.      * @param response class to write all the response data to
  96.      * @exception ServletException If an error occurs
  97.      * @exception IOException If an error occurs
  98.      */
  99.     void service (ServletRequest request, ServletResponse response)
  100.         throws IOException, ServletException;
  101.  
  102.  
  103.     /**
  104.      * Called by the server when it no longer needs the servlet.
  105.      * The servlet programmer should use this method to free all
  106.      * the resources the servlet is holding.
  107.      *
  108.      * @since Servlet API 1.0
  109.      */
  110.     void destroy ();
  111.  
  112.  
  113.     /**
  114.      * Gets the servlet config class. This should be the same
  115.      * <code>ServletConfig</code> that was handed to the <code>init()</code>
  116.      * method.
  117.      *
  118.      * @since Servlet API 1.0
  119.      * @return The config class
  120.      */
  121.     ServletConfig getServletConfig ();
  122.  
  123.     /** 
  124.      * Gets a string containing information about the servlet.
  125.      * This String is provided by the Servlet writer and may contain
  126.      * things like the Servlet's name, author, version... stuff like that.
  127.      *
  128.      * @since Servlet API 1.0
  129.      */
  130.     String getServletInfo ();
  131. }
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.