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

  1. /*
  2.  * ServletOutputStream.java -- OutputStream for writing servlet 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. import java.io.OutputStream;
  25.  
  26. /**
  27.  * Used to write output from a Servlet to the client.
  28.  * Servlet engines should provide a subclass of ServletOutputStream that
  29.  * implements <code>OutputStream.write(int)</code>.
  30.  * <p>
  31.  * Note that I (MJW) do not understand how the <code>print</code> methods work
  32.  * when the stream uses something else then a simple ASCII character encoding.
  33.  * It seems saver to use <code>ServletResponse.getWriter()</code> for all
  34.  * output that is not binary.
  35.  *
  36.  * @version Servlet API 2.2
  37.  * @since Servlet API 1.0
  38.  * @author Paul Siegmann (pauls@euronet.nl)
  39.  */
  40.  
  41. public abstract class ServletOutputStream
  42.     extends OutputStream 
  43. {
  44.     private static String STRING_TRUE = "true";
  45.     private static String STRING_FALSE = "false";
  46.     
  47.     protected ServletOutputStream() {
  48.     }
  49.  
  50.     /**
  51.      * Writes a String.
  52.      *
  53.      * @since Servlet API 1.0
  54.      *
  55.      * @param value the String to be printed
  56.      * @exception IOException if an I/O exception occurs
  57.      */
  58.     public void print(String value) throws IOException {
  59.         byte[] byteArray = value.getBytes();
  60.         write(byteArray, 0, byteArray.length);
  61.         /* old (slower) version:
  62.         for(int i = 0; i < value.length(); i++) {
  63.             write((int)value.charAt(i));
  64.         }
  65.         */
  66.     }
  67.  
  68.  
  69.     /**
  70.      * Writes a boolean.
  71.      *
  72.      * @since Servlet API 1.0
  73.      *
  74.      * @param value the boolean to be printed
  75.      * @exception IOException if an I/O exception occurs
  76.      */
  77.     public void print(boolean value) throws IOException {
  78.         if(value) {
  79.             print(STRING_TRUE);
  80.         } else {
  81.             print(STRING_FALSE);
  82.         }
  83.     }
  84.  
  85.  
  86.     /**
  87.      * Writes a single char.
  88.      *
  89.      * @since Servlet API 1.0
  90.      *
  91.      * @param value the char to be printed
  92.      * @exception IOException if an I/O exception occurs
  93.      */
  94.     public void print(char value) throws IOException {
  95.         print(String.valueOf(value));
  96.     }
  97.  
  98.  
  99.     /**
  100.      * Writes an int.
  101.      *
  102.      * @since Servlet API 1.0
  103.      *
  104.      * @param value the int to be printed
  105.      * @exception IOException if an I/O exception occurs
  106.      */
  107.     public void print(int value) throws IOException {
  108.         print(String.valueOf(value));
  109.     }
  110.  
  111.  
  112.     /**
  113.      * Writes a long.
  114.      *
  115.      * @since Servlet API 1.0
  116.      *
  117.      * @param value the long to be printed
  118.      * @exception IOException if an I/O exception occurs
  119.      */
  120.     public void print(long value) throws IOException {
  121.         print(String.valueOf(value));
  122.     }
  123.  
  124.  
  125.     /**
  126.      * Writes a float.
  127.      *
  128.      * @since Servlet API 1.0
  129.      *
  130.      * @param value the float to be printed
  131.      * @exception IOException if an I/O exception occurs
  132.      */
  133.     public void print(float value) throws IOException {
  134.         print(String.valueOf(value));
  135.     }
  136.  
  137.  
  138.     /**
  139.      * Writes a double.
  140.      *
  141.      * @since Servlet API 1.0
  142.      *
  143.      * @param value the double to be printed
  144.      * @exception IOException if an I/O exception occurs
  145.      */
  146.     public void print(double value) throws IOException {
  147.         print(String.valueOf(value));
  148.     }
  149.  
  150.  
  151.     /**
  152.      * Writes a CRLF.
  153.      *
  154.      * @since Servlet API 1.0
  155.      *
  156.      * @exception IOException if an I/O exception occurs
  157.      */
  158.     public void println() throws IOException {
  159.         print("\r\n");
  160.     }
  161.  
  162.     /**
  163.      * Writes a String followed by a CRLF.
  164.      *
  165.      * @since Servlet API 1.0
  166.      *
  167.      * @param value the String to be printed
  168.      * @exception IOException if an I/O exception occurs
  169.      */
  170.     public void println(String value) throws IOException {
  171.         print(value);
  172.         println();
  173.     }
  174.  
  175.  
  176.     /**
  177.      * Writes a boolean followed by a CRLF.
  178.      *
  179.      * @since Servlet API 1.0
  180.      *
  181.      * @param value the boolean to be printed
  182.      * @exception IOException if an I/O exception occurs
  183.      */
  184.     public void println(boolean value) throws IOException {
  185.         print(value);
  186.         println();
  187.     }
  188.  
  189.  
  190.     /**
  191.      * Writes a single char followed by a CRLF.
  192.      *
  193.      * @since Servlet API 1.0
  194.      *
  195.      * @param value the char to be printed
  196.      * @exception IOException if an I/O exception occurs
  197.      */
  198.     public void println(char value) throws IOException {
  199.         print(value);
  200.         println();
  201.     }
  202.  
  203.  
  204.     /**
  205.      * Writes an int followed by a CRLF.
  206.      *
  207.      * @since Servlet API 1.0
  208.      *
  209.      * @param value the int to be printed
  210.      * @exception IOException if an I/O exception occurs
  211.      */
  212.     public void println(int value) throws IOException {
  213.         print(value);
  214.         println();
  215.     }
  216.  
  217.  
  218.     /**
  219.      * Writes a long followed by a CRLF.
  220.      *
  221.      * @since Servlet API 1.0
  222.      *
  223.      * @param value the long to be printed
  224.      * @exception IOException if an I/O exception occurs
  225.      */
  226.     public void println(long value) throws IOException {
  227.         print(value);
  228.         println();
  229.     }
  230.  
  231.  
  232.     /**
  233.      * Writes a float followed by a CRLF.
  234.      *
  235.      * @since Servlet API 1.0
  236.      *
  237.      * @param value the float to be printed
  238.      * @exception IOException if an I/O exception occurs
  239.      */
  240.     public void println(float value) throws IOException {
  241.         print(value);
  242.         println();
  243.     }
  244.  
  245.  
  246.     /**
  247.      * Writes a double followed by a CRLF.
  248.      *
  249.      * @since Servlet API 1.0
  250.      *
  251.      * @param value the double to be printed
  252.      * @exception IOException if an I/O exception occurs
  253.      */
  254.     public void println(double value) throws IOException {
  255.         print(value);
  256.         println();
  257.     }
  258. }
  259.