home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / VCAFE.3.0A / Main.bin / ServletContext.java < prev    next >
Text File  |  1998-04-21  |  6KB  |  161 lines

  1. /*
  2.  * @(#)ServletContext.java    1.20 97/10/09
  3.  * 
  4.  * Copyright (c) 1995-1997 Sun Microsystems, Inc. All Rights Reserved.
  5.  * 
  6.  * This software is the confidential and proprietary information of Sun
  7.  * Microsystems, Inc. ("Confidential Information").  You shall not
  8.  * disclose such Confidential Information and shall use it only in
  9.  * accordance with the terms of the license agreement you entered into
  10.  * with Sun.
  11.  * 
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
  13.  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  14.  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  15.  * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
  16.  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
  17.  * THIS SOFTWARE OR ITS DERIVATIVES.
  18.  * 
  19.  * CopyrightVersion 1.0
  20.  */
  21.  
  22. package javax.servlet;
  23.  
  24. import java.io.IOException;
  25. import java.util.Enumeration;
  26.  
  27. /**
  28.  * The ServletContext interface gives servlets access to information about
  29.  * their environment, and allows them to log significant events.  Servlet
  30.  * writers decide what data to log.  The interface is implemented by
  31.  * services, and used by servlets.  Different virtual hosts should have
  32.  * different servlet contexts.
  33.  *
  34.  * <p>Servlets get the ServletContext object via the getServletContext
  35.  * method of ServletConfig.  The ServletConfig object is provided to
  36.  * the servlet at initialization, and is accessible via the servlet's
  37.  * getServletConfig method.
  38.  *
  39.  * @see Servlet#getServletConfig
  40.  * @see ServletConfig#getServletContext
  41.  * @version     1.20, 10/09/97
  42.  */
  43. public
  44. interface ServletContext {
  45.     /**
  46.      * Returns the servlet of the specified name, or null if not
  47.      * found.  When the servlet is returned it is initialized and
  48.      * ready to accept service requests.
  49.      * <p>
  50.      * <i>Note:</i> This is a <b>dangerous</b> method to call for the
  51.      * following reasons.
  52.      * <p>
  53.      * <UL><LI> When this method is called the state of the servlet may not
  54.      *      be known, and this could cause problems with the server's
  55.      *      servlet state machine.
  56.      * <LI> It is a security risk to allow any servlet to be able to
  57.      *      access the methods of another servlet.
  58.      * </UL>
  59.      *
  60.      * @param name the name of the desired servlet
  61.      * @exception ServletException if the servlet could not be initialized
  62.      */
  63.     public Servlet getServlet(String name) throws ServletException;
  64.  
  65.     /**
  66.      * Returns an enumeration of the Servlet objects in this server.
  67.      * Only servlets that are accessible (i.e., from the same namespace)
  68.      * will be returned.  The enumeration always includes the servlet
  69.      * itself.
  70.      * <p>
  71.      * <i>Note:</i> This is a <b>dangerous</b> method to call for the
  72.      * following reasons.
  73.      * <p>
  74.      * <UL><LI> When this method is called the state of the servlet may not
  75.      *      be known, and this could cause problems with the server's
  76.      *      servlet state machine.
  77.      * <LI> It is a security risk to allow any servlet to be able to
  78.      *      access the methods of another servlet.
  79.      * </UL>
  80.      * @deprecated
  81.      * Please use getServletNames in conjunction with getServlet
  82.      * @see #getServletNames 
  83.      * @see #getServlet
  84.      */
  85.     public Enumeration getServlets();
  86.  
  87.     /**
  88.      * Returns an enumeration of the Servlet object names in this server.
  89.      * Only servlets that are accessible (i.e., from the same namespace)
  90.      * will be returned.  The enumeration always includes the servlet
  91.      * itself.
  92.      * <p>
  93.      * <i>Note:</i> This is a <b>dangerous</b> method to call for the
  94.      * following reasons.
  95.      * <p>
  96.      * <UL><LI> When this method is called the state of the servlet may not
  97.      *      be known, and this could cause problems with the server's
  98.      *      servlet state machine.
  99.      * <LI> It is a security risk to allow any servlet to be able to
  100.      *      access the methods of another servlet.
  101.      * </UL>
  102.      */
  103.     public Enumeration getServletNames();
  104.     
  105.     /**
  106.      * Writes the given message string to the servlet log file.
  107.      * The name of the servlet log file is server specific; it
  108.      * is normally an event log.
  109.      * @param msg the message to be written
  110.      */
  111.     public void log(String msg);
  112.  
  113.     /**
  114.      * Write the stacktrace and the given message string to the 
  115.      * servlet log file. The name of the servlet log file is 
  116.      * server specific; it is normally an event log.
  117.      * @param exception the exception to be written
  118.      * @param msg the message to be written
  119.      */
  120.     public void log(Exception exception, String msg);
  121.  
  122.     /**
  123.      * Applies alias rules to the specified virtual path and returns the
  124.      * corresponding real path.  For example, in an HTTP servlet,
  125.      * this method would resolve the path against the HTTP service's
  126.      * docroot.  Returns null if virtual paths are not supported, or if the
  127.      * translation could not be performed for any reason.
  128.      * @param path the virtual path to be translated into a real path
  129.      */
  130.     public String getRealPath(String path);
  131.  
  132.     /**
  133.      * Returns the mime type of the specified file, or null if not known.
  134.      * @param file name of the file whose mime type is required
  135.      */
  136.     public String getMimeType(String file);
  137.  
  138.     /**
  139.      * Returns the name and version of the network service under which
  140.      * the servlet is running. For example, if the network service was
  141.      * an HTTP service, then this would be the same as the CGI variable 
  142.      * SERVER_SOFTWARE.
  143.      */
  144.     public String getServerInfo();
  145.  
  146.     /**
  147.      * Returns the value of the named attribute of the network service,
  148.      * or null if the attribute does not exist.  This method allows
  149.      * access to additional information about the service, not already
  150.      * provided by the other methods in this interface. Attribute names
  151.      * should follow the same convention as package names.  The package
  152.      * names java.* and javax.* are reserved for use by Javasoft, and
  153.      * com.sun.* is reserved for use by Sun Microsystems.
  154.      *
  155.      * @param name the name of the attribute whose value is required
  156.      * @return the value of the attribute, or null if the attribute
  157.      * does not exist.
  158.      */
  159.     public Object getAttribute(String name);
  160. }
  161.