Differences between version 3 and predecessor to the previous major change of HowToJavaCGIHOWTO.
Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 3 | Last edited on Tuesday, October 26, 2004 1:37:44 am | by StuartYeates | Revert |
Older page: | version 2 | Last edited on Friday, June 7, 2002 1:06:51 am | by perry | Revert |
@@ -1,2008 +1 @@
-
-
-
-Java CGI HOWTO
-
-
-
-----
-
-!!!Java CGI HOWTO
-
-!!by David H. Silber
-
-javacgi-document@orbits.comv0.5, 1 December 1998
-
-
-----
-''This HOWTO document explains how to set up your server to allow CGI programs
-written in Java and how to use Java to write CGI programs.
-Although HOWTO documents are targetted towards use with the Linux operating
-system, this particular one is not dependant on the particular version of
-unix used.''
-----
-
-
-
-
-!!1. Introduction
-
-
-*1.1 Prior Knowledge
-
-*1.2 This Document
-
-*1.3 The Package
-
-*1.4 The Mailing List
-
-
-
-
-
-!!2. Setting Up Your Server to Run Java CGI Programs (With Explanations)
-
-
-*2.1 System Requirements
-
-*2.2 Java CGI Add-On Software
-
-*2.3 Unpacking the Source
-
-*2.4 Decide On Your Local Path Policies
-
-*2.5 Testing your installation.
-
-
-
-
-
-!!3. Setting Up Your Server to Run Java CGI Programs (The Short Form)
-
-
-
-
-!!4. Executing a Java CGI Program
-
-
-*4.1 Obstacles to Running Java Programs Under the CGI Model
-
-*4.2 Overcoming Problems in Running Java CGI Programs
-
-
-
-
-
-!!5. Using the Java CGI Classes.
-
-
-*5.1 CGI
-
-*5.2 CGI_Test
-
-*5.3 Email
-
-*5.4 Email_Test
-
-*5.5 HTML
-
-*5.6 HTML_Test
-
-*5.7 Text
-
-
-
-
-
-!!6. Future Plans
-
-
-
-
-!!7. Changes
-
-
-*7.1 Changes from .4 to .5
-
-*7.2 Changes from .3 to .4
-
-*7.3 Changes from .2 to .3
-
-*7.4 Changes from .1 to .2
-
-----
-
-!!1. Introduction
-
-
-Because of the way that Java is designed the programmer does not have
-easy access to the system's environment variables.
-Because of the way that the Java Development Kit (JDK) is set up,
-it is necessary to use multiple tokens to invoke a program,
-which does not mesh very well with the standard HTML forms/CGI
-manner of operations.
-There are ways around these limitations, and I have implemented one of
-them.
-Read further for details.
-
-
-Since I wrote the previous paragraph in 1996, there have been many
-changes in the Java technology.
-It is likely that a better solution to running server-side Java programs
-is now available -- perhaps you should take a look at servlets.
-
-
-
-
-
-
-
-
-
-
-!!1.1 Prior Knowledge
-
-
-
-I am assuming that you have a general knowledge of HTML and CGI concepts
-and at least a minimal knowledge of your HTTP server.
-You should also know how to program in Java, or a lot of this will not make
-sense.
-
-
-
-
-
-
-
-
-
-
-!!1.2 This Document
-
-
-
-The latest version of this document can be read at
-http://www.orbits.com/software/Java_CGI.html.
-
-
-
-
-
-
-
-
-
-
-!!1.3 The Package
-
-
-
-The latest version of the package described here can be accessed via
-anonymous FTP at
-ftp://ftp.orbits.com/pub/software/java_cgi-.5.tgz.
-The package distribution includes SGML source for this document.
-
-
-The package is distributed under the terms of the GNU Library General
-Public License. This document can be distributed under the terms of the
-Linux HOWTO copyright notice.
-
-
-If you use this software, please make some reference to
-http://www.orbits.com/software/Java_CGI.html, so that others
-will be able to find the Java CGI classes.
-
-
-I have run out of time to maintain and support this package, so this
-will probably be its final release.
-If anyone out there is sufficiently enamoured of this software that
-they wish to take over the maintenace of it, please contact me at
-
-javacgi-document@orbits.com.
-
-
-
-
-
-
-
-
-
-
-!! 1.4 The Mailing List
-
-
-
-I have created a majordomo list to allow people to help each-other work
-through their mutual problems in installing and using this software.
-Send a message to
-
-javacgi-request@orbits.com,
-containing the word ''subscribe''.
-
-
-
-
-
-
-
-
-
-----
-
-!! 2. Setting Up Your Server to Run Java CGI Programs (With Explanations)
-
-
-This section will lead you through installing my ''Java CGI'' package
-with copious explanations so that you know what the effects of your
-actions will be.
-If you just want to install the programs and don't care about the
-whys & wherefores, skip to
-Setting Up Your Server to Run Java CGI Programs (The Short Form).
-
-
-
-
-
-
-
-
-
-
-!!2.1 System Requirements
-
-
-
-This software should work on any unix-like web server that has the Java
-Development Kit installed.
-I am using it on a ''Debian Linux'' system running
-''apache'' as the HTTP daemon.
-If you find that it does not run on your server, please contact the
-mailing list.
-See
-The Mailing List for details.
-
-
-Unfortunatly, the Java run-time interpreter seems to be something of a
-memory hog -- you may want to throw another few megabytes of RAM onto
-your server if you will be using Java CGI programs a lot.
-
-
-
-
-
-
-
-
-
-
-!!2.2 Java CGI Add-On Software
-
-
-
-The software that I wrote to aid in this is called ''Java CGI''.
-You can get it from
-ftp://ftp.orbits.com/pub/software/java_cgi-.5.tgz.
-(The version number may have changed.)
-
-
-
-
-
-
-
-
-
-
-!!2.3 Unpacking the Source
-
-
-
-Find a convenient directory to unpack this package into.
-(If you don't already have a standard place to put packages,
-I suggest that you use /usr/local/src.)
-Unpack the distribution with this command:
-
-gzip -dc java_cgi-.5.tgz | tar -xvf -
-
-This will create a directory called java_cgi-.5.
-In there you will find the files referenced in the rest of this document.
-(If the version number has changed, use the instructions from within
-that distribution from this point on.)
-
-
-
-
-
-
-
-
-
-
-!! 2.4 Decide On Your Local Path Policies
-
-
-
-You need to decide where you want your Java CGI
-programs to live. Generally, you will want to put them in a directory in
-parallel with your cgi-bin directory. My ''apache''
-server came configured to use /var/www/cgi-bin as the
-cgi-bin directory, so I use /var/www/javacgi as the
-directory to put Java CGI programs in. You probably do not want to
-put your Java CGI programs into one of the existing
-CLASSPATH directories.
-Edit the Makefile to reflect your system configuration.
-Make sure that you are logged in as the root user and run make install.
-This will compile the Java programs, modify the java.cgi script
-to fit in with your system and install the programs in the appropriate
-places.
-If you want the HTML version of this documentation and an HTML test document
-in addition, run make all instead.
-
-
-
-
-
-
-
-
-
-
-!! 2.5 Testing your installation.
-
-
-
-Installed from the distribution are HTML documents called
-javacgitest.html, javaemailtest.html and
-javahtmltest.html.
-If you installed all in the previous section, it will be in the
-directory you specified for WEBDIR in the Makefile.
-If you didn't, you can run make test to build them from
-javacgitest.html-dist, javaemailtest.html-dist and
-javahtmltest.html-dist.
-
-
-When you are sure that your installation is working correctly, you may
-wish to remove CGI_Test.class, Email_Test.class and
-HTML_Test.class from
-your JAVACGI directory and javacgitest.html,
-javaemailtest.html and javahtmltest.html
-from your WEBDIR directory as they show the
-user information that is normally only available to the server.
-
-
-
-
-
-
-
-
-
-----
-
-!! 3. Setting Up Your Server to Run Java CGI Programs (The Short Form)
-
-
-
-
-
-*Get the ''Java CGI'' package from
-ftp://ftp.orbits.com/pub/software/java_cgi-.5.tgz.
-(The version number may have changed.)
-*
-
-*Unpack the distribution with this command:
-
-gzip -dc java_cgi-.5.tgz | tar -xvf -
-
-(If the version number has changed, use the instructions from within
-that distribution from this point on.)
-*
-
-*Edit the Makefile you will find in the newly created directory
-java_cgi-.5 as appropriate to your system.
-*
-
-*As root, run make install.
-This will compile the Java programs, apply your system-specific information
-and install the various files.
-If you want the HTML version of this documentation and an HTML test document,
-run make all instead.
-*
-
-*You should be ready to go.
-*
-
-
-
-
-
-
-
-
-
-
-----
-
-!!4. Executing a Java CGI Program
-
-
-
-
-
-
-
-
-
-
-
-
-
-!!4.1 Obstacles to Running Java Programs Under the CGI Model
-
-
-
-There are two main problems in running a Java program from a web server:
-
-
-
-
-
-
-
-
-
-
-!You can't run Java programs like ordinary executables.
-
-
-You need to run the Java run-time interpreter and provide the initial
-class (program to run) on the command-line.
-With an HTML form, there is no provision for sending a command-line
-to the web server.
-
-
-
-
-
-
-
-
-
-
-!Java does not have general access to the environment.
-
-
-Every environment variable that will be needed by the Java program
-must be explicitly passed in.
-There is no method similar to the __C__ getenv() function.
-
-
-
-
-
-
-
-
-
-
-!!4.2 Overcoming Problems in Running Java CGI Programs
-
-
-
-To deal with these obstacles, I wrote a shell CGI program that provides
-the information needed by the Java interpreter.
-
-
-
-
-
-
-
-
-
-
-!The java.cgi script.
-
-
-This shell script manages the interaction between the HTTP daemon and the
-Java CGI program that you wish to use.
-It extracts the name of the program that you want to run from the
-server-provided data.
-It collects all of the environment data into a temporary file.
-Then, it runs the Java run-time interpreter with the name of the file of
-environment information and the program name added to the command-line.
-
-
-The java.cgi script was configured and installed in
-Decide On Your Local Path Policies.
-
-
-
-
-
-
-
-
-
-
-!Invoking java.cgi from an HTML form.
-
-
-My forms that use Java CGI programs specify a form action as follows:
-
-<form action="/cgi-bin/java.cgi/CGI_Test" method="POST">
-
-Where /cgi-bin/ is your local CGI binary directory,
-java.cgi is the Java front-end that allows us to run Java programs
-over the web
-and CGI_Test is an example of the name of the Java program to run.
-
-
-
-
-
-
-
-
-
-----
-
-!!5. Using the Java CGI Classes.
-
-
-There are currently three main classes supported --
-CGI,
-Email and
-HTML.
-I am considering adding classes to deal with MIME-formatted input and
-output -- MIMEin & MIMEout, respectively.
-
-
-There are also a few support and test classes.
-CGI_Test,
-Email_Test and
-HTML_Test are intended to be used to
-test your installation.
-They can also be used as a starting-point for your own Java programs
-which use this class library.
-The
-Text class is the superclass for both the
-Email and the HTML classes.
-
-
-
-
-
-
-
-
-
-
-!! 5.1 CGI
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-!Class Syntax
-
-
-public class CGI
-
-
-
-
-
-
-
-
-
-
-!Class Description
-
-
-The CGI class holds the ``CGI Information'' -- Environment variables
-set by the web server and the name/value sent from a
-form when its __submit__ action is selected.
-All information is stored in a Properties class object.
-
-
-This class is in the ``Orbits.net'' package.
-
-
-
-
-
-
-
-
-
-
-!Member Summary
-
-
-
-----
-
-CGI() // Constructor.
-getNames() // Get the list of names.
-getValue() // Get form value by specifying name.
-
-----
-
-
-
-
-
-
-
-
-
-
-!See Also
-
-
-CGI_Test.
-
-
-
-
-
-
-
-
-
-
-!CGI()
-
-
-
-
-; __Purpose__:
-
-Constructs an object which contains the available CGI data.
-; __Syntax__:
-
-public CGI()
-; __Description__:
-
-When a CGI object is constructed, all available CGI
-information is sucked-up into storage local to the new object.
-
-
-
-
-
-
-
-
-
-
-
-!getNames()
-
-
-
-
-; __Purpose__:
-
-List the names which are defined to have corresponding values.
-; __Syntax__:
-
-public Enumeration getKeys ()
-; __Description__:
-
-Provides the full list of names for which coresponding
-values are defined.
-; __Returns__:
-
-An Enumeration of all the names defined.
-
-
-
-
-
-
-
-
-
-
-
-!getValue()
-
-
-
-
-; __Purpose__:
-
-Retrieves the __value__ associated with the __name__
-specified.
-; __Syntax__:
-
-public String getValue ( String name )
-; __Description__:
-
-This method provides the corespondence between the
-names and values sent from an HTML form.
-; __Parameter__:
-
-
-
-; __name__:
-
-The key by which values are selected.
-
-; __Returns__:
-
-A String containing the value.
-
-
-
-
-
-
-
-
-
-
-
-!! 5.2 CGI_Test
-
-
-
-This class provides both an example of how to use the CGI class
-and a test program which can be used to confirm that the ''Java CGI''
-package is functioning correctly.
-
-
-
-
-
-
-
-
-
-
-!Member Summary
-
-
-
-----
-
-main() // Program main().
-
-----
-
-
-
-
-
-
-
-
-
-
-!See Also
-
-
-CGI.
-
-
-
-
-
-
-
-
-
-
-!main()
-
-
-
-
-; __Purpose__:
-
-Provide a main() method.
-; __Syntax__:
-
-public static void main( String argv[
[] )
-; __Description__:
-
-This is the entry point for a CGI program which does
-nothing but return a list of the available name/value pairs and their
-current values.
-; __Parameter __:
-
-
-
-; __argv[[]__:
-
-Arguments passed to the program by
-the java.cgi script.
-Currently unused.
-
-
-
-
-
-
-
-
-
-
-
-
-!! 5.3 Email
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-!Class Syntax
-
-
-public class Email extends Text
-
-
-
-
-
-
-
-
-
-
-!Class Description
-
-
-Messages are built up with the Text class add*() methods
-and the e-mail-specific methods added by this class.
-When complete, the message is sent to its destination.
-
-
-This class is in the ``Orbits.net'' package.
-
-
-
-
-
-
-
-
-
-
-!Member Summary
-
-
-
-----
-
-Email() // Constructor.
-send() // Send the e-mail message.
-sendTo() // Add a destination for message.
-subject() // Set the Subject: for message.
-
-----
-
-
-
-
-
-
-
-
-
-
-!See Also
-
-
-Email_Test, Text.
-
-
-
-
-
-
-
-
-
-
-!Email()
-
-
-
-
-; __Purpose__:
-
-Constructs an object which will contain an email message.
-; __Syntax__:
-
-public Email()
-; __Description__:
-
-Sets up an empty message to be completed by the Email methods.
-; __See Also__:
-
-Text.
-
-
-
-
-
-
-
-
-
-
-
-!send()
-
-
-
-
-; __Purpose__:
-
-Send the e-mail message.
-; __Syntax__:
-
-public void send ()
-; __Description__:
-
-This formats and sends the message.
-If no destination address has been set, there is no action taken.
-
-
-
-
-
-
-
-
-
-
-
-!sendTo()
-
-
-
-
-; __Purpose__:
-
-Add a destination for this message.
-; __Syntax__:
-
-public String sendTo ( String address )
-; __Description__:
-
-Add address to the list of destinations for
-this method.
-There is no set limit to the number of destinations an e-mail message may have.
-I'm sure that if you build up the list large enough, you can
-exceed the size of the parameter list that the ''Mail Transport
-Agent'' can accept or use up your memory.
-; __Parameter/__:
-
-
-
-; __address__:
-
-A destination to send this message to.
-
-
-
-
-
-
-
-
-
-
-
-
-!subject()
-
-
-
-
-; __Purpose__:
-
-Set the subject for this message.
-; __Syntax__:
-
-public void subject ( String subject )
-; __Description__:
-
-This method sets the text for the e-mail's Subject:
-line.
-If called more than once, the latest subject set is the one that is used.
-; __Parameter__:
-
-
-
-; __subject__:
-
-The text of this message's Subject: line.
-
-
-
-
-
-
-
-
-
-
-
-
-!! 5.4 Email_Test
-
-
-
-This class provides both an example of how to use the Email class
-and a test program which can be used to confirm that the ''Java CGI''
-package is functioning correctly.
-
-
-
-
-
-
-
-
-
-
-!Member Summary
-
-
-
-----
-
-main() // Program main().
-
-----
-
-
-
-
-
-
-
-
-
-
-!See Also
-
-
-Email.
-
-
-
-
-
-
-
-
-
-
-!main()
-
-
-
-
-; __Purpose__:
-
-Provide a main() method.
-; __Syntax__:
-
-public static void main( String argv[[] )
-; __Description__:
-
-This is the entry point for a CGI program which returns
-a list of the available name/value pairs and their current values.
-It will also send this list to the address specified in the Email
-variable.
-; __Parameter __:
-
-
-
-; __argv[[]__:
-
-Arguments passed to the program by
-the java.cgi script.
-Currently unused.
-
-
-
-
-
-
-
-
-
-
-
-
-!! 5.5 HTML
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-!Class Syntax
-
-
-public class HTML extends Text
-
-
-
-
-
-
-
-
-
-
-!Class Description
-
-
-Messages are built up with the Text class add*() methods
-and the HTML-specific methods added by this class.
-When complete, the message is sent to its destination.
-
-
-Currently, there is no error checking to confirm that the list-building
-methods are being used in a correct order, so the programmer must take
-pains not to violate HTML syntax.
-
-
-This class is in the ``Orbits.net'' package.
-
-
-
-
-
-
-
-
-
-
-!Member Summary
-
-
-
-----
-
-HTML() // Constructor.
-author() // Set the name of the document author.
-definitionList() // Start a definition list.
-definitionListTerm() // Add a term to a definition list.
-endList() // End a list.
-listItem() // Add an entry to a list.
-send() // Send the HTML message.
-title() // Set the text for the document title.
-
-----
-
-
-
-
-
-
-
-
-
-
-!See Also
-
-
-HTML_Test, Text.
-
-
-
-
-
-
-
-
-
-
-!HTML()
-
-
-
-
-; __Purpose__:
-
-Constructs an object which will contain an HTML message.
-; __Syntax__:
-
-public HTML()
-; __Description__:
-
-Sets up an empty message to be completed by the HTML methods.
-; __See Also__:
-
-Text.
-
-
-
-
-
-
-
-
-
-
-
-!author()
-
-
-
-
-; __Purpose__:
-
-Set the name of the document author.
-; __Syntax__:
-
-public void author ( String author )
-; __Description__:
-
-Set the name of the document author to author.
-; __Parameter/__:
-
-
-
-; __author__:
-
-The text to use as the author of this message.
-
-; __See Also__:
-
-title().
-
-
-
-
-
-
-
-
-
-
-
-!definitionList()
-
-
-
-
-; __Purpose__:
-
-Start a definition list.
-; __Syntax__:
-
-public void definitionList ()
-; __Description__:
-
-Start a definition list.
-A ''definition list'' is a list specialized so that each entry in
-the list is a ''term'' followed by the definition ''text''
-for that term.
-The start of a definition list should be followed by the creation of
-(at least) one term/text pair and a call to the endList() method.
-''Note that, currently, lists cannot be nested.''
-; __See Also__:
-
-definitionListTerm(), endList(),
-listItem().
-
-
-
-
-
-
-
-
-
-
-
-!definitionListTerm()
-
-
-
-
-; __Purpose__:
-
-Add a term to a definition list.
-; __Syntax__:
-
-public void definitionListTerm ()
-; __Description__:
-
-Add a term to a definition list.
-The text for the term part of the current list entry should be appended
-to the message after this method is called and before a corresponding
-listItem method is called.
-; __See Also__:
-
-definitionList(), listItem().
-
-
-
-
-
-
-
-
-
-
-
-!endList()
-
-
-
-
-; __Purpose__:
-
-End a list.
-; __Syntax__:
-
-public void endList ()
-; __Description__:
-
-End a list.
-This method closes out a list.
-''Note that, currently, lists cannot be nested.''
-; __See Also__:
-
-definitionList().
-
-
-
-
-
-
-
-
-
-
-
-!listItem()
-
-
-
-
-; __Purpose__:
-
-Add an entry to a list.
-; __Syntax__:
-
-public void listItem ()
-; ____:
-
-public void listItem ( String item )
-; ____:
-
-public boolean listItem ( String term, String item )
-; __Description__:
-
-Add an entry to a list.
-If the first form is used, the text for the current list item should be
-appended to the message after this method is called and before any other
-list methods are called.
-In the second and third forms, the item text is specified as a
-parameter to the method instead of (or in addition to) being appended to
-the message.
-The third form is specific to definition lists and provides both the
-term and the definition of the list entry.
-; __Parameters__:
-
-
-
-; __item__:
-
-The text of this list entry.
-; __term__:
-
-The text of this definition list entry's term part.
-
-; __See Also__:
-
-definitionList(), definitionListTerm(),
-endList().
-
-
-
-
-
-
-
-
-
-
-
-!send()
-
-
-
-
-; __Purpose__:
-
-Send the HTML message.
-; __Syntax__:
-
-public void send ()
-; __Description__:
-
-Send the HTML message.
-
-
-
-
-
-
-
-
-
-
-
-!title()
-
-
-
-
-; __Purpose__:
-
-Set the text for the document title.
-; __Syntax__:
-
-public void title ( String title )
-; __Description__:
-
-Set the text for the document title.
-; __Parameter__:
-
-
-
-; __title__:
-
-The text of this message's title.
-
-; __See Also__:
-
-author().
-
-
-
-
-
-
-
-
-
-
-
-!! 5.6 HTML_Test
-
-
-
-This class provides both an example of how to use the HTML class
-and a test program which can be used to confirm that the ''Java CGI''
-package is functioning correctly.
-
-
-
-
-
-
-
-
-
-
-!Member Summary
-
-
-
-----
-
-main() // Program main().
-
-----
-
-
-
-
-
-
-
-
-
-
-!See Also
-
-
-HTML.
-
-
-
-
-
-
-
-
-
-
-!main()
-
-
-
-
-; __Purpose__:
-
-Provide a main() method.
-; __Syntax__:
-
-public static void main( String argv[[] )
-; __Description__:
-
-This is the entry point for a CGI program which returns
-a list of the available name/value pairs in an HTML document, with
-each name/value pair displayed in a definition list element.
-; __Parameter __:
-
-
-
-; __argv[[]__:
-
-Arguments passed to the program by
-the java.cgi script.
-Currently unused.
-
-
-
-
-
-
-
-
-
-
-
-
-!! 5.7 Text
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-!Class Syntax
-
-
-public abstract class Text
-
-
-
-
-
-
-
-
-
-
-!Class Description
-
-
-This class is the superclass of the Email and HTML
-classes.
-Messages are built up with the methods in this class and completed and
-formatted with the methods in subclasses.
-
-
-This class is in the ``Orbits.text'' package.
-
-
-
-
-
-
-
-
-
-
-!Member Summary
-
-
-
-----
-
-Text() // Constructor.
-add() // Add text to this object.
-addLineBreak() // Add a line break.
-addParagraph() // Add a paragraph break.
-
-----
-
-
-
-
-
-
-
-
-
-
-!See Also
-
-
-Email, HTML.
-
-
-
-
-
-
-
-
-
-
-!add()
-
-
-
-
-; __Purpose__:
-
-Add text to this item.
-; __Syntax__:
-
-public void add ( char addition )
-; ____:
-
-public void add ( String addition )
-; ____:
-
-public void add ( !StringBuffer addition )
-; __Description__:
-
-Add addition to the contents of this text item.
-; __Parameter__:
-
-
-
-; __addition__:
-
-Text to be added to the text item.
-
-; __See Also__:
-
-addLineBreak(), addParagraph().
-
-
-
-
-
-
-
-
-
-
-
-!addLineBreak()
-
-
-
-
-; __Purpose__:
-
-Force a line break at this point in the text.
-; __Syntax__:
-
-public void addLineBreak ()
-; __Description__:
-
-Add a line break to the text at the current point.
-; __See Also__:
-
-add(), addParagraph().
-
-
-
-
-
-
-
-
-
-
-
-!addParagraph()
-
-
-
-
-; __Purpose__:
-
-Start a new paragaph.
-; __Syntax__:
-
-public void add ()
-; __Description__:
-
-Start a new paragraph at this point in the text flow.
-; __See Also__:
-
-add(), addLineBreak().
-
-
-
-
-
-
-
-
-
-
-----
-
-!!6. Future Plans
-
-
-
-
-
-*Add to the Email class:
-
-; __Email( int capacity )__:
-
-Used when we know how much space the message
-will need to have allocated.
-; __sendTo( String [[] address )__:
-
-Add a list of primary destinations to
-the e-mail message.
-; __sendCc( String address )__:
-
-Add a Carbon-Copy destination to the
-e-mail message.
-; __sendCc( String [[] address )__:
-
-Add a list of Carbon-Copy
-destinations to the e-mail message.
-; __sendBcc( String address )__:
-
-Add a Blind Carbon-Copy destination to
-the e-mail message.
-; __sendBcc( String [[] address )__:
-
-Add a list of Blind Carbon-Copy
-destinations to the e-mail message.
-
-
-*
-
-*Add to the HTML class:
-
-; __HTML( int capacity )__:
-
-Used when we know how much space the message
-will need to have allocated.
-; __public void unorderedList()__:
-
-Start an unordered list.
-; __public void orderedList()__:
-
-Start an ordered list.
-; __public void directoryList()__:
-
-Start a directory list.
-; __public void menuList()__:
-
-Start a menu list.
-; __void anchor( String anchorName )__:
-
-Specify an anchor.
-; __void link( String url, String text )__:
-
-Specify a link.
-; __void applet( String url, String altText )__:
-
-Specify an applet link.
-
-
-*
-
-*Allow HTML lists to be nested.
-*
-
-*Add error checking code to enforce correct ordering of HTML list
-formatting codes.
-*
-
-*The location of the file of environment data should be configurable
-from the Makefile.
-*
-
-*Get rid of the spurious empty name/value pair that appears in the list when we
-are dealing with the GET method of data transfer.
-*
-
-*Consider having CGI implement the java.util.Enumeration interface to
-successively provide variable names.
-*
-
-*Add a Test class, which would use every method in this package.
-*
-
-*Document how CGI_Test, Email_Test and
-HTML_Test build on each other to provide incremental tests for
-debugging purposes.
-*
-
-*Document how Test uses every feature available in this package.
-*
-
-
-
-
-
-
-
-
-
-
-----
-
-!!7. Changes
-
-
-
-
-
-
-
-
-
-
-
-
-
-!!7.1 Changes from .4 to .5
-
-
-
-
-
-
-*Changed documentation and comments to reflect the final nature of this
-release.
-*
-
-
-
-
-
-
-
-
-
-
-
-!!7.2 Changes from .3 to .4
-
-
-
-
-
-
-*Fleshed out the HTML class to provide minimal functionality.
-*
-
-*Wrote the HTML_Test class and javahtmltest.html-dist.
-*
-
-*Added the HTML methods to deal with a definition list.
-*
-
-
-
-
-
-
-
-
-
-
-
-!!7.3 Changes from .2 to .3
-
-
-
-
-
-
-*Added the Text and Email classes.
-HTML was also added, but it is merely a stub at this point.
-*
-
-*Put the various classes into packages.
-The main classes are in Orbits.net.*, the support class
-Text is in Orbits.text.Text.
-*
-
-*Changed CGItest to CGI_Test.
-*
-
-*Added the Email_Test class.
-*
-
-
-
-
-
-
-
-
-
-
-
-!!7.4 Changes from .1 to .2
-
-
-
-
-
-
-*The environment variables are put into a temportary file instead of being
-crammed into the Java inperpreter command-line.
-The CGI class and java.cgi had to be modified.
-*
-
-*The javacgitest.html document is made part of the distribution.
-*
-
-*The text files which are modified by make upon installation are
-provided with names that end with ''-dist''
.
-*
-
-
-
-
-----
+Describe
[HowToJavaCGIHOWTO
] here
.