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

  1. /*
  2.  * RequestDispatcher.java -- Interface to forward requests or include responses
  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 interface implements methods to forward a request or include
  27.  * output from another (active) source such as another servlet.
  28.  * <p>
  29.  * A servlet can get an object that implements this interface from
  30.  * the <code>ServletContext</code> by calling the
  31.  * <code>getRequestDispatcher()</code> method.
  32.  * <p>
  33.  * If the servlet engine can it should provide a (wrapper) object which
  34.  * implements this interface when a servlet calls
  35.  * <code>getRequestDispatcher()</code>.
  36.  *
  37.  * @see javax.servlet.ServletContext#getRequestDispatcher(java.lang.String)
  38.  * 
  39.  * @version Servlet API 2.2
  40.  * @since Servlet API 2.1
  41.  * @author Paul Siegmann (pauls@euronet.nl)
  42.  */
  43. public interface RequestDispatcher {
  44.     /**
  45.      * Forwards a <code>ServletRequest</code> to the resource represented by the
  46.      * <code>RequestDispatcher</code>.
  47.      * <p>
  48.      * A servlet can call this method if it has not yet requested an
  49.      * <code>OutputStream</code> or a <code>Writer</code> from the
  50.      * <code>response</code>.
  51.      * <p>
  52.      * Note that the <code>RequestDispatcher</code> can change the
  53.      * <code>request</code> object before handing it to the target resource
  54.      * depending on the string that was given to
  55.      * <code>getRequestDispatcher()</code>.
  56.      *
  57.      * @since Servlet API 2.1
  58.      *
  59.      * @param request the original request
  60.      * @param response the response to which output should be written
  61.      * @exception ServletException can be thrown by the target resource
  62.      * @exception IOException if an I/O-error occurs
  63.      * @exception IllegalStateException if <code>getOutputStream</code> or <code>getWriter</code> has already been called on the <code>response</code>
  64.      */
  65.     void forward(ServletRequest request,
  66.                 ServletResponse response)
  67.                 throws ServletException, IOException;
  68.     /**
  69.      * Includes into the <code>ServletResponse</code> any output written by the
  70.      * resource represented by the <code>RequestDispatcher</code>.
  71.      * <p>
  72.      * Note that the target resource can only use the <code>OutputStream</code>
  73.      * or <code>Writer</code> that the original caller uses. It can not set any
  74.      * headers. Also note that any sessions should be started before calling
  75.      * include.
  76.      * <p>
  77.      * The RequestDispatcher will not alter the original <code>request</code>
  78.      * before handing it to the target resource.
  79.      *
  80.      * @since Servlet API 2.1
  81.      *
  82.      * @param request the original request
  83.      * @param response the original response
  84.      * @exception ServletException can be thrown by the target resource
  85.      * @exception IOException if an I/O-error occurs
  86.      */
  87.     void include(ServletRequest request,
  88.                 ServletResponse response)
  89.                 throws ServletException, IOException;
  90. }
  91.