Java CGI HOWTO <author>David H. Silber <tt/dhs@orbits.com/ diterjemahkan oleh Tedi Heriyanto <tt/tedi.h@a-vip.com/t <date>v.0.4, 18 November 1996, terj. 28 Peb 1999 <abstract> Dokumen HOWTO ini menjelaskan bagaimana memasang server Anda agar dapat menjalankan program-program CGI yang ditulis dalam Java dan bagaimana menggunakan Java untuk menulis program-program CGI. Meskipun dokumen-dokumen HOWTO ditujukan untuk sistem operasi Linux, namun yang satu ini tidak tergantung pada versi Unix yang digunakan. </abstract> <sect>Pendahuluan <p> Oleh karena cara Java dirancang, pemrogram tidak memiliki akses yang mudah ke variabel-variabel lingkungan sistem. Karena cara Java Development Kit (JDK) dipasang, diperlukan banyak token untuk memanggil suatu program, yang tidak terkait sangat baik dengan format standar HTML/operasi CGI. Terdapat banyak cara untuk mengatasinya, dan saya telah mengimplementasikan salah satunya. Baca lebih lanjut untuk rinciannya. <sect1>Pengetahuan Dasar <p> Saya mengasumsikan bahwa anda memiliki pengetahuan umum tentang konsep-konsep HTML dan CGI dan paling tidak memiliki sedikit pengetahuan tentang server HTTP anda. Anda perlu juga mengetahui bagaimana membuat program dalam Java, atau akan ada banyak hal berikut yang tidak dimengerti. <sect1>Mengenai Dokumen Ini <p> Versi terakhir dokumen ini (bahasa Inggris) dapat dibaca di <url url="http://www.orbits.com/software/Java_CGI.html" name="Java-CGI HOWTO"> <sect1>Paket <p> Versi terakhir paket yang dijelaskan di sini dapat diakses melalui FTP anonim di <url url="ftp://ftp.orbits.com/pub/software/java_cgi-0.4.tgz" name="Java CGI"> Paket distribusi mencakup kode sumber SGML untuk dokumen ini. Paket didistribusikan berdasarkan GNU Library General Public License. Dokumen ini dapat didistribusikan berdasarkan syarat-syarat yang ada di informasi hak cipta Linux HOWTO. Jika anda menggunakan software ini, buatlah acuan ke <url url="http://www.orbits.com/software/Java_CGI.html" name="Java CGI">, sehingga yang lain akan dapat menemukan class-class Java CGI. <sect1>Ucapan Terima Kasih <p> Dokumen ini hadir berkat kebaikan Stellar Orbits Technology Services. (Kunjungi kami di <url url="http://www.orbits.com/" name="Stellar Orbits Technology"> untuk melihat apa yang kami lakukan). <sect>Mensetup Server Anda agar Menjalankan Program-Program Java CGI <p> Bagian ini akan membimbing anda melakukan instalasi paket Java CGI dengan penjelasan seperlunya sehingga anda tahu apa dampak tindakan anda. Jika Anda hanya ingin menginstal program-program dan acuh terhadap mengapa dan di mana, lanjutkan ke <ref id="setup server" name="Mensetup Server Anda untuk menjalankan Program-program Java CGI (Bentuk Ringkas)">. <sect1>Kebutuhan Sistem <p> Software ini dapat bekerja di semua web server yang mirip Unix yang telah memiliki Java Development Kit. Saya menggunakannya di sistem Linux Debian yang menggunakan Apache sebagai http daemon. Jika anda menemukan bahwa ia tidak berjalan di server anda, silakan hubungi saya di dhs@orbits.com. Sayangnya, interpreter run-time Java banyak memerlukan memori -- anda mungkin perlu menambahkan beberapa megabyte RAM ke server anda jika akan menggunakan banyak program Java CGI. <sect1>Software tambahan Java CGI <p> Software yang saya tulis untuk membantu dalam hal ini disebut Java CGI. Anda dapat memperolehnya dari <url url="ftp://ftp.orbits.com/pub/software/java_cgi-0.4.tgz" name="Java CGI">. (Angka versi mungkin berubah). <sect1>Membuka Kode sumber <p> Carilah direktori yang tepat untuk membuka paket ini. (Jika anda tidak memiliki tempat standar untuk menaruh paket-paket, saya sarankan anda menggunakan <tt>/usr/local/src/</tt>). Bukalah distribusi dengan menggunakan perintah berikut : <tscreen><code> gzip -dc java_cgi-0.4.tgz | tar -xvf - </code></tscreen> Perintah ini akan membuat suatu direktori bernama <tt>java_cgi-0.4</tt>. Di sana anda akan menemukan file-file yang diacu oleh dokumen ini. (Jika nomor versi berubah, untuk seterusnya gunakan instruksi-instruksi dari distribusi). <sect1>Tentukan Kebijakan Local Path Anda<label id="kebijakan"> <p> Anda perlu memutuskan lokasi untuk menaruh program-program Java CGI anda. Umumnya, anda akan menaruhnya di suatu direktori yang sesuai dengan direktori cgi-bin anda. Server Apache saya dikonfigurasi untuk memakai <tt>/var/web/cgi-bin</tt> sebagai direktori cgi-bin, jadi saya menggunakan <tt>/var/web/javacgi</tt> sebagai direktori untuk menaruh program-program Java CGI. Anda mungkin tidak ingin menaruh program Java CGI anda ke dalam salah satu direktori CLASSPATH yang ada. Editlah Makefile untuk mencerminkan konfigurasi sistem anda. Pastikan bahwa anda login sebagai user root dan menjalankan <tt>make install</tt>. Hal ini akan mengkompilasi program-program Java, memodifikasi script java.cgi agar sesuai dengan sistem anda dan menginstal program-program ke dalam tempat yang tepat. Jika anda ingin versi HTML dokumentasi ini dan sebuah dokumen percobaan, jalankan <tt>make all</tt>. <sect1>Menguji instalasi anda. <p> Dokumen-dokumen yang terinstal dari distribusi adalah <tt>javacgitest.html</tt>, <tt>javaemailtest.html</tt> dan <tt>javahtmltest.html</tt>. Jika anda menginstal seluruh paket, ia akan ada di dalam direktori yang anda tentukan di WEBDIR dalam Makefile. Jika tidak, anda dapat menjalankan <tt>make test</tt> untuk membangunnya dari <tt>javacgitest.html</tt>, <tt>javaemailtest.html-dist</tt> dan <tt>javahtmltest.html-dist</tt>. <p> Bila anda yakin bahwa instalasi anda telah bekerja dengan baik, anda boleh menghapus <tt>CGI_Test.class</tt>, <tt>Email_Test.class</tt> dan <tt>HTML_Test.class</tt> dari direktori JAVACGI anda dan <tt>javacgitest.html</tt>, <tt>javaemailtest.html</tt> dan <tt>javahtmltest.html</tt> dari direktori WEBDIR anda oleh karena mereka hanya menampilkan informasi yang normalnya hanya tersedia untuk server kepada user. <sect>Mensetup Server Anda untuk Menjalankan Program Java CGI (Bentuk Ringkas) <label id="setup server"> <p> <itemize> <item>Ambillah paket Java CGI dari <url url="ftp://www.orbits.com/pub/software/java_cgi-0.4.tgz" name="Java CGI">. (Nomor versi mungkin berubah). <item>Bukalah distribusi dengan perintah : <tscreen><code> gzip -dc java_cgi-0.4.tgz | tar -xvf - </code></tscreen> (Jika nomor versi berubah, selanjutnya gunakan instruksi-instruksi dari distribusi). <item>Editlah Makefile yang anda temukan di direktori java_cgi-0.4 yang baru tercipta agar sesuai dengan sistem anda. <item>Sebagai root, jalankan <tt>make install</tt>. Hal ini akan mengkompilasi program Java, mengaplikasikan informasi spesifik sistem anda dan menginstal berbagai file. Jika anda ingin versi HTML dokumentasi ini dan sebuah dokumen percobaan, jalankan make all. <item>Anda siap untuk lanjut. </itemize> <sect>Mengeksekusi program Java CGI <sect1>Hambatan untuk menjalankan program Java dalam Model CGI <p> Terdapat dua masalah utama dalam menjalankan program Java dari sebuah web server : <sect2>Anda tidak dapat menjalankan program Java seperti halnya file eksekusi biasa. <p> Anda perlu menjalankan interpreter run-time Java dan memberikan class awal (program untuk dijalankan) pada perintah baris. Dengan sebuah form HTML, tidak ada pengawasan untuk mengirimkan perintah baris ke web server. <sect2>Java tidak memiliki akses umum ke lingkungan. <p> Setiap variabel lingkungan yang akan diperlukan oleh program Java harus secara eksplisit diberikan. Tidak ada metode yang menyerupai fungsi <tt>getenv()</tt> pada C. <sect1>Mengatasi masalah-masalah dalam menjalankan program Java CGI <p> Untuk berurusan dengan hambatan-hambatan ini, saya menulis sebuah program CGI shell yang menyediakan informasi yang diperlukan oleh interpreter Java. <sect2>Script java.cgi. <p> Script shell ini mengelola interaksi antara daemon HTTP dan program Java CGI yang anda ingin gunakan. Ia mengekstraksi nama program yang ingin anda jalankan dari data yang diberikan server. Ia mengumpulkan seluruh data lingkungan ke dalam file temporer. Lalu, ia menjalankan interpreter run-time Java dengan menambahkan nama file informasi lingkungan dan nama program. Script java.cgi dikonfigurasi dan diinstal dalam <ref id="kebijakan" name="Tentukan Kebijakan Local Path Anda">. <sect2>Memanggil java.cgi dari sebuah form HTML. <p> Form-form saya yang memakai program Java CGI menspesifikasikan aksi sebuah form sebagai berikut : <tscreen><code> <form action="/cgi-bin/java.cgi/CGI_Test" method="POST"> </code></tscreen> Dengan /cgi-bin/ adalah direktori lokal untuk biner CGI anda, java.cgi adalah front-end yang memungkinkan kita untuk menjalankan program Java melalui web dan CGI_Test adalah sebuah contoh nama program Java untuk dijalankan. <sect>Menggunakan class Java CGI <p> Saat ini terdapat tiga kelas utama yang didukung -- <ref id="CGI" name="CGI">, <ref id="Email" name="Email"> dan <ref id="HTML" name="HTML">. Saya sedang mempertimbangkan untuk menambah class yang berkaitan dengan input dan output yang berformat MIME -- MIMEin & MIMEout. Terdapat pula sedikit class pendukung dan percobaan. <ref id="CGI_Test" name="CGI_Test">, <ref id="Email_Test" name="Email_Test"> dan <ref id="HTML_Test" name="HTML_Test"> ditujukan agar digunakan untuk menguji instalasi program. Mereka dapat juga digunakan sebagai titik awal bagi program Java anda yang menggunakan pustaka class ini. Class <ref id="Text" name="Text"> adalah superclass bagi class-class Email dan HTML. <sect1>CGI<label id="CGI"> <sect2>Sintaks Class <p> <tscreen><code> public class CGI </code></tscreen> <sect2>Deskripsi Class <p> Class CGI berisi <tt/Informasi CGI/ -- variabel-variabel lingkungan yang diset oleh web server dan nama/nilai yang dikirim dari sebuah form ketika tindakan submit dipilih. Seluruh informasi disimpan dalam Properties obyek class. Class ini terdapat dalam paket <tt/Orbits.net/. <sect2>Ringkasan Anggota <p> <tscreen><code> CGI() // Konstruktor. getNames() // Ambil daftar nama-nama. getValue() // Ambil nilai form dg menspesifikasikan nama. </code></tscreen> <sect2>Lihat Juga <p> <ref id="CGI_Test" name="CGI_Test">. <sect2>CGI() <p> <descrip> <tag/Kegunaan/Membangun sebuah obyek yang mengandung data CGI yang tersedia. <tag/Sintaks/<tscreen><code>public CGI()</code></tscreen> <tag/Deskripsi/Ketika sebuah obyek CGI dikonstruksi, seluruh informasi CGI yangtersedia ditaruh di penyimpanan lokal terhadap obyek baru. </descrip> <sect2>getNames() <p> <descrip> <tag/Kegunaan/Tampilkan nama-nama yang didefinisikan memiliki nilai terkait. <tag/Sintaks/<tscreen><code>public Enumeration getKeys ()</code></tscreen> <tag/Deskripsi/Memberikan daftar lengkap nama yang nilai korespondennya terdefinisi. <tag/Hasil/Sebuah Enumerasi seluruh nama yang terdefinisikan. </descrip> <sect2>getValue() <p> <descrip> <tag/Kegunaan/Mengambil nilai yang sesuai dengan nama yang dispesifikasikan. <tag/Sintaks/<tscreen><code>public String getValue ( String name )</code></tscreen> <tag/Deskripsi/Metode ini menyediakan korespondensi antara nama dan nilai yang dikirim dari sebuah form HTML. <tag/Parameter/<descrip><tag/name/Kunci untuk memilih nilai.</descrip> <tag/Hasil/Sebuah string berisi nilai. </descrip> <sect1>CGI_Test<label id="CGI_Test"> <p> Class ini menyediakan sebuah contoh bagaimana menggunakan class CGI dan sebuah program percobaan yang dapat digunakan untuk mengkonfirmasi bahwa paket Java CGI berfungsi dengan benar. <sect2>Ringkasan Anggota <p> <tscreen><code> main() // Program main(). </code></tscreen> <sect2>Lihat Juga <p> <ref id="CGI" name="CGI"> <sect2>main() <p> <descrip> <tag/Kegunaan/Menyediakan metode main(). <tag/Sintaks/<tscreen><code>public static void main( String argv[] )</code></tscreen> <tag/Deskripsi/Ini adalah titik masuk untuk program CGI yang tidak mengerjakan sesuatu namun mengembalikan sebuah daftar pasangan nama/nilai yang ada dan nilai mereka saat ini. <tag/Parameter/<descrip><tag/argv[]/Argumen-argumen yang diberikan ke program oleh java.cgi script. Saat ini tidak digunakan.</descrip> </descrip> <sect1>Email<label id="Email"> <sect2>Sintaks Class <p> <tscreen><code> public class Email extends Text </code></tscreen> <sect2>Deskripsi Class <p> Pesan-pesan dibangun dengan metode add*() class Text dan metode khusus email ditambahkan oleh class ini. Setelah selesai, pesan dikirimkan ke tujuannya. Class ini terdapat dalam paket <tt/Orbits.net/ <sect2>Ringkasan Anggota <p> <tscreen><code> Email() // Konstruktor. send() // Mengirim pesan email. sendTo() // Menambahkan tujuan ke pesan. subject() // Menset Subject: untuk pesan. </code></tscreen> <sect2>Lihat Juga <p> <ref id="Email_Test" name="Email_Test">, <ref id="Text" name="Text">. <sect2>Email() <p> <descrip> <tag/Kegunaan/Membangun sebuah obyek yang mengandung pesan email. <tag/Sintaks/<tscreen><code>public Email()</code></tscreen> <tag/Deskripsi/Menset pesan kosong untuk diselesaikan oleh metode-metode Email. <tag/Lihat Juga/<ref id="Text" name="Text">. </descrip> <sect2>send() <p> <descrip> <tag/Kegunaan/Mengirim pesan email. <tag/Sintaks/<tscreen><code>public void send ()</code></tscreen> <tag/Deskripsi/Memformat dan mengirim pesan. Jika belum ada alamat tujuan yang diset, tidak ada tindakan diambil. </descrip> <sect2>sendTo() <p> <descrip> <tag/Kegunaan/Menambahkan tujuan pesan. <tag/Sintaks/<tscreen><code>public String sendTo ( String address )</code></tscreen> <tag/Deskripsi/Menambah alamat ke daftar tujuan metode ini. Tidak ada batasan jumlah tujuan yang boleh dimiliki pesan email. Saya yakin bahwa jika anda membuat daftar yang cukup besar, anda dapat melampaui ukuran parameter daftar yang dapat diterima Mail Transfer Agent atau memakai seluruh memori anda. <tag/Parameter/<descrip><tag/address/Sebuah tujuan untuk mengirimkan pesan.</descrip> </descrip> <sect2>subject() <p> <descrip> <tag/Kegunaan/Menset subyek untuk pesan. <tag/Sintaks/<tscreen><code>public void subject ( String subject )</code></tscreen> <tag/Deskripsi/Metode ini menset teks untuk baris Subject email. Jika dipanggil lebih dari satu kali, subyek yang paling akhir disetlah yang digunakan. <tag/Parameter/<descrip><tag/subject/Teks untuk baris Subject pesan.</descrip> </descrip> <sect1>Email_Test<label id="Email_Test"> <p> Class ini menyediakan sebuah contoh bagaimana menggunakan class Email dan menguji program yang dapat digunakan untuk memastikan bahwa paket Java CGI berfungsi dengan benar. <sect2>Ringkasan Anggota <p> <tscreen><code> main() // Program main(). </code></tscreen> <sect2>Lihat Juga <p> <ref id="Email" name="Email">. <sect2>main() <p> <descrip> <tag/Kegunaan/Menyediakan metode main() <tag/Sintaks/<tscreen><code>public static void main( String argv[] )</code></tscreen> <tag/Deskripsi/Ini adalah titik awal untuk program CGI yang mengembalikan daftar pasangan nama/nilai yang ada dan nilainya saat ini. Ia juga akan mengirimkan daftar ini ke alamat yang dispesifikasikan dalam variabel Email. <tag/Parameter/<descrip><tag/argv[]/Argumen-argumen yang diberikan kepada program oleh script java.cgi. Saat ini tidak digunakan.</descrip> </descrip> <sect1>HTML<label id="HTML"> <p> <sect2>Sintaks Class <p> <tscreen><code> public class HTML extends Text </code></tscreen> <sect2>Deskripsi Class <p> Pesan-pesan dibangun dengan metode-metode add*() class Text dan metode-metode khusus HTML ditambahkan oleh class ini. Setelah selesai, pesan dikirimkan ke tujuannya. Saat ini, tidak ada pemeriksaan kesalahan untuk memastikan bahwa metode- metode pembangun daftar digunakan dalam urutan yang benar, sehingga pemrogram harus bekerja keras agar tidak melanggar sintaks HTML. Class ini ada dalam paket <tt/Orbits.net/ <sect2>Ringkasan Anggota <p> <tscreen><code> HTML() // Konstruktor. author() // Menset nama penulis dokumen. definitionList() // Memulai daftar definisi. definitionListTerm() // Menambah suatu hal ke daftar definisi. endList() // Mengakhiri sebuah daftar. listItem() // Menambah suatu item ke daftar. send() // Mengirim pesan HTML. title() // Menset teks untuk judul dokumen. </code></tscreen> <sect2>Lihat Juga <p> <ref id="HTML_Test" name="HTML_Test">, <ref id="Text" name="Text">. <sect2>HTML() <p> <descrip> <tag/Kegunaan/Membangun sebuah obyek yang akan mengandung pesan HTML. <tag/Sintaks/<tscreen><code>public HTML()</code></tscreen> <tag/Deskripsi/Menset pesan kosong untuk diselesaikan oleh metode-metode HTML. <tag/Lihat Juga/<ref id="Text" name="Text">. </descrip> <sect2>author() <p> <descrip> <tag/Kegunaan/Menset nama penulis dokumen. <tag/Sintaks/<tscreen><code>public void author ( String author )</code></tscreen> <tag/Deskripsi/Menset nama penulis dokumen ke penulis. <tag/Parameter/<descrip><tag/author/Teks untuk digunakan sebagai penulis pesan ini.</descrip> <tag/Lihat Juga/title(). </descrip> <sect2>definitionList() <p> <descrip> <tag/Kegunaan/Memulai daftar definisi. <tag/Sintaks/<tscreen><code>public void definitionList ()</code></tscreen> <tag/Deskripsi/Memulai daftar definisi. Sebuah daftar definisi adalah daftar khusus sehingga setiap masukan dalam daftar adalah sebuah term yang diikuti oleh definisi teks untuk term tersebut. Awal daftar definisi diikuti oleh penciptaan (paling sedikit) satu pasangan term/teks dan sebuah panggilan ke metode endList(). Sebagai catatan, untuk saat ini, daftar tidak dapat dibuat bersarang. <tag/Lihat Juga/definitionListTerm(), endList(), listItem(). </descrip> <sect2>definitionListTerm() <p> <descrip> <tag/Kegunaan/Menambah sebuah term ke daftar definisi. <tag/Sintaks/<tscreen><code>public void definitionListTerm ()</code></tscreen> <tag/Deskripsi/Menambah sebuah term ke daftar definisi. Teks untuk bagian term masukan daftar saat ini ditambahkan ke pesan setelah metode ini dipanggil dan sebelum metode listItem yang terkait dipanggil. <tag/Lihat Juga/definitionList(), listItem(). </descrip> <sect2>endList() <p> <descrip> <tag/Kegunaan/Mengakhiri daftar. <tag/Sintaks/<tscreen><code>public void endList ()</code></tscreen> <tag/Deskripsi/Mengakhiri daftar. Metode ini menutup daftar. Sebagai catatan, untuk saat ini, daftar tidak dapat dibuat bersarang. <tag/Lihat Juga/definitionList(). </descrip> <sect2>listItem() <p> <descrip> <tag/Kegunaan/Menambah sebuah masukan ke daftar. <tag/Sintaks/<tscreen><code> public void listItem () public void listItem ( String item ) public boolean listItem ( String term, String item ) </code></tscreen> <tag/Deskripsi/Menambah sebuah masukan ke daftar. Jika bentuk pertama yang digunakan, teks untuk item daftar saat ini ditambahkan ke pesan setelah metode ini dipanggil dan sebelum metode-metode daftar lainnya dipanggil. Dalam bentuk kedua dan ketiga, teks item dispesifikasikan sebagai parameter metode daripada ditambahkan (atau sebagai tambahan) ke pesan. Bentuk ketiga adalah khusus untuk daftar definisi dan menyediakan term dan definisi masukan daftar. <tag/Parameter-parameter/ <descrip> <tag/item/Teks untuk masukan daftar. <tag/term/Teks untuk bagian definisi masukan daftar term. </descrip> <tag/Lihat Juga/definitionList(), definitionListTerm(), endList(). </descrip> <sect2>send() <p> <descrip> <tag/Kegunaan/Mengirim pesan HTML. <tag/Sintaks/<tscreen><code>public void send ()</code></tscreen> <tag/Deskripsi/Mengirim pesan HTML. </descrip> <sect2>title() <p> <descrip> <tag/Kegunaan/Menset teks untuk judul dokumen. <tag/Sintaks/<tscreen><code>public void title ( String title )</code></tscreen> <tag/Deskripsi/Menset teks untuk judul dokumen. <tag/Parameter/ <descrip> <tag/title/Teks untuk judul pesan. </descrip> <tag/Lihat Juga/author(). </descrip> <sect1>HTML_Test<label id="HTML_Test"> <p> Class ini menyediakan sebuah contoh bagaimana menggunakan class HTML dan sebuah program percobaan yang dapat digunakan untuk memastikan bahwa paket Java CGI telah berfungsi dengan benar. <sect2>Ringkasan Anggota <p> <tscreen><code> main() // Program main(). </code></tscreen> <sect2>Lihat Juga <p> <ref id="HTML" name="HTML">. <sect2>main() <p> <descrip> <tag/Kegunaan/Menyediakan metode main(). <tag/Sintaks/<tscreen><code>public static void main( String argv[] )</code></tscreen> <tag/Deskripsi/Ini adalah titik awal bagi program CGI yang mengembalikan daftarpasangan nama/nilai yang ada dalam dokumen HTML, dengan setiap pasangan nama/nilai ditampilkan dalam elemen daftar definisi. <tag/Parameter/ <descrip> <tag/argv[]/Argumen-argumen yang diberikan ke program oleh script java.cgi. Saat ini tidak digunakan. </descrip> </descrip> <sect1>Text<label id="Text"> <sect2>Sintaks Class <p> <tscreen><code> public abstract class Text </code></tscreen> <sect2>Deskripsi Class <p> Class ini merupakan superclass dari class Email dan HTML. Pesan-pesan dibangun dengan metode-metode dalam class ini dan diselesaikan serta diformat dengan metode-metode dalam subclass-subclass. Class ini ada dalam paket <tt/Orbits.text/. <sect2>Ringkasan Anggota <p> <tscreen><code> Text() // Konstruktor. add() // Menambah teks ke obyek. addLineBreak() // Menambah ganti baris. addParagraph() // Menambah ganti paragraf. </code></tscreen> <sect2>Lihat Juga <p> <ref id="Email" name="Email">, <ref id="HTML" name="HTML">. <sect2>add() <p> <descrip> <tag/Kegunaan/Menambahkan teks ke item. <tag/Sintaks/ <tscreen><code> public void add ( char addition ) public void add ( String addition ) public void add ( StringBuffer addition ) </code></tscreen> <tag/Deskripsi/Menambahkan addition ke isi item teks. <tag/Parameter/ <descrip> <tag/addition/Teks yang akan ditambahkan ke item teks. </descrip> <tag/Lihat Juga/addLineBreak(), addParagraph(). </descrip> <sect2>addLineBreak() <p> <descrip> <tag/Kegunaan/Memaksa penggantian baris pada titik ini dalam teks. <tag/Sintaks/<tscreen><code>public void addLineBreak ()</code></tscreen> <tag/Deskripsi/Menambahkan penggantian baris ke teks di lokasi saat ini. <tag/Lihat Juga/add(), addParagraph(). </descrip> <sect2>addParagraph() <p> <descrip> <tag/Kegunaan/Memulai paragraf baru. <tag/Sintaks/<tscreen><code>public void add ()</code></tscreen> <tag/Deskripsi/Memulai paragraf baru pada titik ini dalam aliran teks. <tag/Lihat Juga/add(), addLineBreak(). </descrip> <sect>Rencana-rencana Mendatang <p> <itemize> <item>Menambah ke class Email : <descrip> <tag/Email( int capacity )/Digunakan ketika kita tahu berapa besar ruangan yang perlu dialokasikan untuk pesan. <tag/sendTo( String address )/Menambah sebuah daftar tujuan utama ke pesan e-mail. <tag/sendCc( String address )/Menambah sebuah tujuan Carbon-Copy ke pesan e-mail. <tag/sendCc( String address )/Menambah sebuah daftar tujuan Carbon-Copy ke pesan e-mail. <tag/sendBcc( String address )/Menambah sebuah tujuan Blind Carbon-Copy ke pesan e-mail. <tag/sendBcc( String address )/Menambah sebuah daftar tujuan Blind Carbon-Copy ke pesan e-mail. </descrip> <item>Menambah ke class HTML : <descrip> <tag/HTML( int capacity )/Digunakan ketika kita tahu berapa besar ruang yang perlu dialokasikan untuk pesan. <tag/public void unorderedList()/Memulai daftar yang tidak terorder. <tag/public void orderedList()/Memulai daftar yang terorder. <tag/public void directoryList()/Memulai daftar direktori. <tag/public void menuList()/Memulai daftar menu. <tag/void anchor( String anchorName )/Menspesifikasikan anchor. <tag/void link( String url, String text )/Menspesifikasikan link. <tag/void applet( String url, String altText )/Menspesifikasikan link applet. </descrip> <item>Memungkinkan daftar HTML untuk dibuat bersarang. <item>Menambah kode untuk pengecekan kesalahan untuk memaksa urutan yang benar bagi kode pemformatan daftar HTML. <item>Lokasi file data lingkungan dapat dikonfigurasi dari Makefile. <item>Membuang pasangan nama/nilai kosong yang muncul dalam daftar ketika kita berurusan dengan metode GET untuk transfer data. <item>Mempertimbangkan bila memiliki CGI yang mengimplementasikan antar muka java.util.Enumeration untuk secara suksesif menyediakan nama variabel. <item>Menambah class Test, yang akan menggunakan setiap metode dalam paket. <item>Mendokumentasikan bagaimana CGI_Test, Email_Test dan HTML_Test membangun satu sama lain untuk memberikan uji yang berkelanjutan bagi proses debugging. <item>Mendokumentasikan bagaimana Test menggunakan setiap karateristik yang tersedia dalam paket ini. </itemize> <sect>Perubahan-perubahan <sect1>Perubahan dari 0.3 ke 0.4 <p> <itemize> <item>Penambahan lebih detil class HTML untuk memberikan kegunaan minimal. <item>Menulis class HTML_Test dan javahtmltest.html-dist. <item>Penambahan metode-metode HTML untuk menangani daftar definisi. </itemize> <sect1>Perubahan-perubahan dari 0.2 ke 0.3 <p> <itemize> <item>Penambahan class Text dan Email. HTML juga ditambahkan, tetapi hanya sedikit saja. <item>Menaruh berbagai class ke dalam paket. Class-class utama ada di dalam Orbits.net.*, class pendukung Text ada di dalam Orbits.text.Text. <item>Perubahan CGItest ke CGI_Test. <item>Penambahan class Email_Test </itemize> <sect1>Perubahan dari 0.1 ke 0.2 <p> <itemize> <item>Variabel-variabel lingkungan ditaruh ke file sementara tidak dimasukkan ke perintah baris interpreter Java. Class CGI dan java.cgi perlu dimodifikasi. <item>Dokumen javacgitest.html dijadikan bagian distribusi. <item>File-file teks yang dimodifikasi oleh make selama instalasi diberikan dengan nama-nama yang berakhiran dengan -dist. </itemize> <sect>Penterjemah : <p> Tedi Heriyanto <htmlurl url="mailto:tedi.h@a-vip.com" name="tedi.h@a-vip.com"> <p>Selesai diterjemahkan 28 Februari 1999. <p>Dokumen ini diformat menggunakan SGML-Tools version 1.0.7 <url url="http://pobox.com/~cg/sgmltools/"> <p>Versi terbaru HOWTO ini (versi bahasa Indonesia) dapat Anda temukan di <p><url url="http://www.a-vip.com/tedi_h/" name="Tedi Heriyanto's Homepage"> </article>