⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java-cgi-howto-5.html

📁 Linux初学者最好的老师就是howto了。相当于函数man。
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>Java CGI HOWTO 中译版: 使用 Java CGI 类别</TITLE>
 <LINK HREF="Java-CGI-HOWTO-6.html" REL=next>
 <LINK HREF="Java-CGI-HOWTO-4.html" REL=previous>
 <LINK HREF="Java-CGI-HOWTO.html#toc5" REL=contents>
</HEAD>
<BODY>
<A HREF="Java-CGI-HOWTO-6.html">Next</A>
<A HREF="Java-CGI-HOWTO-4.html">Previous</A>
<A HREF="Java-CGI-HOWTO.html#toc5">Contents</A>
<HR>
<H2><A NAME="s5">5. 使用 Java CGI 类别</A></H2>

<P>目前为止支援三个主要类别 -- 
<A HREF="#cgi-class">CGI</A>, 
<A HREF="#email-class">Email</A> 以及 
<A HREF="#html-class">HTML</A>.
我正在考虑分别加上处理 MIME 格式输入与输出的类别 --    MIMEin &amp; MIMEout.
<P>也有一些用来支援和测试的类别.
<A HREF="#cgi-test-class">CGI_Test</A>, 
<A HREF="#email-test-class">Email_Test</A> 以及 
<A HREF="#email-test-class">HTML_Test</A> 是拿来测试你的安装用的.
你也可拿来当做你自己程式中使用这些类别库的起点.
<A HREF="#text-class">Text</A> 类别是 <CODE>Email</CODE> 与 <CODE>HTML</CODE> 的基底类别.
<P>
<H2><A NAME="cgi-class"></A> <A NAME="ss5.1">5.1 CGI</A>
</H2>

<P>
<H3>类别语法</H3>

<P><CODE>public class CGI</CODE>
<P>
<H3>类别描述</H3>

<P>CGI 类别持有的「CGI 资讯」 -- web 伺服器所设定的环境变数以及按下 <B>submit</B> 时由 form 所传送来的名称/数值.
所有的资讯都被存放在类别物件 <CODE>Properties</CODE> 中.
<P>这个类别位於 ``Orbits.net'' 包装(package)中.
<P>
<H3>成员摘要</H3>

<P>
<HR>
<PRE>
        CGI()         //  建构子
        getNames()    //  取得名称的串列
        getValue()    //  取得指定名称的值
</PRE>
<HR>
<P>
<H3>请参阅</H3>

<P><CODE>CGI_Test</CODE>.
<P>
<H3>CGI()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>建构一包含可用 CGI 资料的物件
<DT><B>语法</B><DD><P><CODE>public CGI()</CODE>
<DT><B>描述</B><DD><P>当一 CGI 物件被建立时,所有可用的 CGI 资料被存放在新物件的局部储存空间中.
</DL>
<P>
<H3>getNames()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>列出已定义对应值的名称.
<DT><B>语法</B><DD><P><CODE>public Enumeration getNames ()</CODE>
<DT><B>描述</B><DD><P>提供所有已定义对应值的名称的完整列表.
<DT><B>返回 </B><DD><P>所有名称的 <CODE>Enumeration</CODE> 物件.
</DL>
<P>
<H3>getValue()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>取回所指定对应於 <B>name</B> 的 <B>value</B>.
<DT><B>语法</B><DD><P><CODE>public String getValue ( String name )</CODE>
<DT><B>描述</B><DD><P>这个方法提供由 HTML form 送入的 <CODE>names</CODE> 与 <CODE>values</CODE> 之间的对应.
<DT><B>参数</B><DD><P>
<DL>
<DT><B>name</B><DD><P>所选择的键值.
</DL>
<DT><B>返回 </B><DD><P>一个包含对应值的 <CODE>String</CODE> 物件.
</DL>
<P>
<H2><A NAME="cgi-test-class"></A> <A NAME="ss5.2">5.2 CGI_Test</A>
</H2>

<P>这个类别提供两个功能,一个如何使用 <CODE>CGI</CODE> 类别的例子以及一个用来确定 <EM>Java CGI</EM> 套件运作正常的测试程式. 
<P>
<H3>成员摘要</H3>

<P>
<HR>
<PRE>
        main()      //  Program main().
</PRE>
<HR>
<P>
<H3>请参阅</H3>

<P><CODE>
<A HREF="#cgi-class">CGI</A></CODE>.
<P>
<H3>main()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>提供 <CODE>main()</CODE> 方法.
<DT><B>语法</B><DD><P><CODE>public static void main( String argv[] )</CODE>
<DT><B>描述</B><DD><P>这是 CGI 程式的入口,只不过返回可用的名称/数值对与其现值的列表.
<DT><B>参数 </B><DD><P>
<DL>
<DT><B>argv[]</B><DD><P>由 <CODE>java.cgi</CODE> 指令稿传入的参数.目前未使用.
</DL>
</DL>
<P>
<H2><A NAME="email-class"></A> <A NAME="ss5.3">5.3 Email</A>
</H2>

<P>
<H3>类别语法</H3>

<P><CODE>public class Email extends Text</CODE>
<P>
<H3>类别描述</H3>

<P>讯息由 <CODE>Text</CODE> 类别的 <CODE>add*()</CODE> 方法所建立,加入电子邮件专用的方法.
完成後,讯息被送到它的目的地.
<P>这个类别位於 ``Orbits.net'' 包装中.
<P>
<H3>成员摘要</H3>

<P>
<HR>
<PRE>
        Email()      //  建构子
        send()       //  送出电子邮件讯息
        sendTo()     //  增加讯息的目的地
        subject()    //  设定讯息的主题
</PRE>
<HR>
<P>
<H3>请参阅</H3>

<P><CODE>Email_Test, Text</CODE>.
<P>
<H3>Email()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>建立一包含电子邮件讯息的物件.
<DT><B>语法</B><DD><P><CODE>public Email()</CODE>
<DT><B>描述</B><DD><P>建立一空的讯息以利由此类别方法加以完成.
<DT><B>请参阅</B><DD><P><CODE>Text</CODE>.
</DL>
<P>
<H3>send()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>送出电子邮件讯息.
<DT><B>语法</B><DD><P><CODE>public void send ()</CODE>
<DT><B>描述</B><DD><P>本方法编排并送出讯息.如果目的位址还未设定,将不会有动作发生.
</DL>
<P>
<H3>sendTo()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>增加本讯息的目的地.
<DT><B>语法</B><DD><P><CODE>public String sendTo ( String address )</CODE>
<DT><B>描述</B><DD><P>将 <CODE>address</CODE> 加入到目的地列表中.一份电子邮件目的地的数目是没有限制的.
不过我相信如果你建了过大的列表,你将可能会超过你的<EM>邮件传送代理程式(MTA)</EM> 所能接受的大小或用光你的记忆体.
<DT><B>参数</B><DD><P>
<DL>
<DT><B>address</B><DD><P>本讯息欲送达的一个目的地.
</DL>
</DL>
<P>
<H3>subject()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>设定本讯息的主题.
<DT><B>语法</B><DD><P><CODE>public void subject ( String subject )</CODE>
<DT><B>描述</B><DD><P>本方法设定电子邮件的 <CODE>Subject:</CODE> 栏位.
如果呼叫超过一次以上,会使用最後一次呼叫的结果.
<DT><B>参数</B><DD><P>
<DL>
<DT><B>subject</B><DD><P><CODE>Subject:</CODE> 栏位的文字.
</DL>
</DL>
<P>
<H2><A NAME="email-test-class"></A> <A NAME="ss5.4">5.4 Email_Test</A>
</H2>

<P>这个类别提供一个如何使用 <CODE>Email</CODE> 类别的例子以及一个用来确定 <EM>Java CGI</EM> 套件运作正常的测试程式. 
<P>
<H3>成员摘要</H3>

<P>
<HR>
<PRE>
        main()      //  Program main().
</PRE>
<HR>
<P>
<H3>请参阅</H3>

<P><CODE>
<A HREF="#email-class">Email</A></CODE>.
<P>
<H3>main()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>提供 <CODE>main()</CODE> 方法.
<DT><B>语法</B><DD><P><CODE>public static void main( String argv[] )</CODE>
<DT><B>描述</B><DD><P>这是 CGI 程式的入口,返回可用的名称/数值对与其现值的列表.
它也将列表送到由 <CODE>Email</CODE> 变数所指定的位址.
<DT><B>参数 </B><DD><P>
<DL>
<DT><B>argv[]</B><DD><P>由 <CODE>java.cgi</CODE> 指令稿传入的参数.目前未使用.
</DL>
</DL>
<P>
<H2><A NAME="html-class"></A> <A NAME="ss5.5">5.5 HTML</A>
</H2>

<P>
<P>
<H3>类别语法</H3>

<P><CODE>public class HTML extends Text</CODE>
<P>
<H3>类别描述</H3>

<P>讯息由 <CODE>Text</CODE> 类别的 <CODE>add*()</CODE> 方法所建立,并加入 HTML 专用的方法.
完成後,讯息被送到它的目的地.
<P>目前,还没有错误检查机制以确保列表建立的方法被以正确的顺序使用.
因此程式设计者必须自行确定没有违反 HTML 的语法.
<P>这个类别位於 ``Orbits.net'' 包装中.
<P>
<H3>成员摘要</H3>

<P>
<HR>
<PRE>
        HTML()                  //  建构子
        author()                //  设定文件作者的名字
        definitionList()        //  起始一定义列表
        definitionListTerm()    //  在定义列表中增加一项目
        endList()               //  结束列表
        listItem()              //  在列表中增加一项目
        send()                  //  送出此 HTML 讯息
        title()                 //  设定文件标题的文字
</PRE>
<HR>
<P>
<H3>请参阅</H3>

<P><CODE>HTML_Test, Text</CODE>.
<P>
<H3>HTML()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>建立一包含 HTML 讯息的物件.
<DT><B>语法</B><DD><P><CODE>public HTML()</CODE>
<DT><B>描述</B><DD><P>建立一空的讯息以利由 HTML 方法加以完成.
<DT><B>请参阅</B><DD><P><CODE>Text</CODE>.
</DL>
<P>
<H3>author()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>设定文件作者的名字.
<DT><B>语法</B><DD><P><CODE>public void author ( String author )</CODE>
<DT><B>描述</B><DD><P>将文件的作者名字设定为 <CODE>author</CODE>.
<DT><B>参数</B><DD><P>
<DL>
<DT><B>author</B><DD><P>用来作为此讯息作者的文字.
</DL>
<DT><B>请参阅</B><DD><P><CODE>title()</CODE>.
</DL>
<P>
<H3>definitionList()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>起始一定义列表.
<DT><B>语法</B><DD><P><CODE>public void definitionList ()</CODE>
<DT><B>描述</B><DD><P>起始一定义列表.
一个<EM>定义列表</EM>是一种特别的列表,列表中的每一项是由 <EM>项目</EM> 其後跟著定义的 <EM>文字</EM> 所形成的.
一定义列表的起始应跟著(至少)一项目/文字配对以及一个 <CODE>endList()</CODE> 方法的呼叫.
<EM>请注意,目前列表不能是巢状的</EM>.
<DT><B>请参阅</B><DD><P><CODE>definitionListTerm()</CODE>, <CODE>endList()</CODE>, <CODE>listItem()</CODE>.
</DL>
<P>
<H3>definitionListTerm()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>在定义列表中增加一项目.
<DT><B>语法</B><DD><P><CODE>public void definitionListTerm ()</CODE>
<DT><B>描述</B><DD><P>在定义列表中增加一项目.
目前列表的项目部份的文字应该在此方法被呼叫後并且在对应的 <CODE>listItem</CODE> 方法被呼叫前加入.
<DT><B>请参阅</B><DD><P><CODE>definitionList()</CODE>, <CODE>listItem()</CODE>.
</DL>
<P>
<H3>endList()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>结束一列表.
<DT><B>语法</B><DD><P><CODE>public void endList ()</CODE>
<DT><B>描述</B><DD><P>本方法结束一列表.<EM>注意,目前列表不能是巢状的</EM>.
<DT><B>请参阅</B><DD><P><CODE>definitionList()</CODE>.
</DL>
<P>
<H3>listItem()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>在列表中增加一项目.
<DT><B>语法</B><DD><P><CODE>public void listItem ()</CODE>
<DT><B></B><DD><P><CODE>public void listItem ( String item )</CODE>
<DT><B></B><DD><P><CODE>public boolean listItem ( String term, String item )</CODE>
<DT><B>描述</B><DD><P>在列表中增加一项目.
如果使用第一种形式,目前列表项目的文字应在此方法被叫後并在任何其它列表方法被呼叫前加入.
在第二及第三种形式中,<CODE>item</CODE> 文字被指定为方法的参数而不是在其後被加入.
第三种形式是定义列表专用并且同时指定列表的项目与定义文字部份.
<DT><B>参数</B><DD><P>
<DL>
<DT><B>item</B><DD><P>此列表项目的文字.
<DT><B>term</B><DD><P>此定义列表的项目部份的文字.
</DL>
<DT><B>请参阅</B><DD><P><CODE>definitionList()</CODE>, <CODE>definitionListTerm()</CODE>, <CODE>endList()</CODE>.
</DL>
<P>
<H3>send()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>送出此 HTML 讯息.
<DT><B>语法</B><DD><P><CODE>public void send ()</CODE>
<DT><B>描述</B><DD><P>送出此 HTML 讯息.
</DL>
<P>
<H3>title()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>设定文件标题的文字.
<DT><B>语法</B><DD><P><CODE>public void title ( String title )</CODE>
<DT><B>描述</B><DD><P>设定此文件的标题文字.
<DT><B>参数</B><DD><P>
<DL>
<DT><B>title</B><DD><P>此文件标题的文字.
</DL>
<DT><B>请参阅</B><DD><P><CODE>author()</CODE>.
</DL>
<P>
<H2><A NAME="html-test-class"></A> <A NAME="ss5.6">5.6 HTML_Test</A>
</H2>

<P>这个类别提供一个如何使用 <CODE>HTML</CODE> 类别的例子以及一个用来确定 <EM>Java CGI</EM> 套件运作正常的测试程式. 
<P>
<H3>成员摘要</H3>

<P>
<HR>
<PRE>
        main()      //  Program main().
</PRE>
<HR>
<P>
<H3>请参阅</H3>

<P><CODE>
<A HREF="#html-class">HTML</A></CODE>.
<P>
<H3>main()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>提供 <CODE>main()</CODE> 方法.
<DT><B>语法</B><DD><P><CODE>public static void main( String argv[] )</CODE>
<DT><B>描述</B><DD><P>这是 CGI 程式的入口,返回在一 HTML 文件中可用的名称/数值配对与其现值的列表,并将每一名称/数值配对显示在一定义列表的元素里.
<DT><B>参数 </B><DD><P>
<DL>
<DT><B>argv[]</B><DD><P>由 <CODE>java.cgi</CODE> 指令稿传入的参数.目前未使用.
</DL>
</DL>
<P>
<H2><A NAME="text-class"></A> <A NAME="ss5.7">5.7 Text</A>
</H2>

<P>
<H3>类别语法</H3>

<P><CODE>public abstract class Text</CODE>
<P>
<H3>类别描述</H3>

<P>本类别为 <CODE>
<A HREF="#email-class">Email</A></CODE> 与 <CODE>
<A HREF="#html-class">HTML</A></CODE> 的基础类别.
讯息以此类别的方法建立,并以衍生类别的方法完成并编排.
<P>这个类别位於 ``Orbits.net'' 包装中.
<P>
<H3>成员摘要</H3>

<P>
<HR>
<PRE>
        Text()            //  建构子
        add()             //  加入文字到此物件
        addLineBreak()    //  加入分行符号
        addParagraph()    //  加入分段符号
</PRE>
<HR>
<P>
<H3>请参阅</H3>

<P><CODE>
<A HREF="#email-class">Email</A></CODE>, <CODE>
<A HREF="#html-class">HTML</A></CODE>.
<P>
<H3>add()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>在此项目中加入文字.
<DT><B>语法</B><DD><P><CODE>public void add ( char addition )</CODE>
<DT><B></B><DD><P><CODE>public void add ( String addition )</CODE>
<DT><B></B><DD><P><CODE>public void add ( StringBuffer addition )</CODE>
<DT><B>描述</B><DD><P>在这个文字项目的内容中加入 <CODE>addition</CODE>.
<DT><B>参数</B><DD><P>
<DL>
<DT><B>addition</B><DD><P>加入此文字项目的文字.
</DL>
<DT><B>请参阅</B><DD><P><CODE>addLineBreak()</CODE>, <CODE>addParagraph()</CODE>.
</DL>
<P>
<H3>addLineBreak()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>强迫在目前文字位置分行.
<DT><B>语法</B><DD><P><CODE>public void addLineBreak ()</CODE>
<DT><B>描述</B><DD><P>在目前位置加入一分行符号.
<DT><B>请参阅</B><DD><P><CODE>add()</CODE>, <CODE>addParagraph()</CODE>.
</DL>
<P>
<H3>addParagraph()</H3>

<P>
<DL>
<DT><B>目的</B><DD><P>起始一新的段落.
<DT><B>语法</B><DD><P><CODE>public void add ()</CODE>
<DT><B>描述</B><DD><P>在目前的文字位置起始一新的段落.
<DT><B>请参阅</B><DD><P><CODE>add()</CODE>, <CODE>addLineBreak()</CODE>.
</DL>
<P>
<HR>
<A HREF="Java-CGI-HOWTO-6.html">Next</A>
<A HREF="Java-CGI-HOWTO-4.html">Previous</A>
<A HREF="Java-CGI-HOWTO.html#toc5">Contents</A>
</BODY>
</HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -