Catatan belajar Jsp&Servelet (1)
Penulis:Eve Cole
Waktu Pembaruan:2009-07-02 17:15:10
1.1 Tulis program servelet
1.2 Menulis program Jsp
1.3 Kompilasi program Servlet
1.4 Mengemas program Servlets dan Jsps
1.5 Buat deskriptor penerapan
1.1 Tulis program servelet
Masalah Anda ingin menulis servlet sebagai aplikasi web Solusi Tulis kelas Java yang diwarisi dari javax.servlet.http.HttpServlet. Pertama, paket kelas servlet.jar harus dituangkan. Anda memerlukan perpustakaan kelas di dalamnya untuk mengkompilasi program servlet ini.
Diskusi Program servlet adalah kelas java yang digunakan untuk merespons konten dinamis yang diminta oleh klien melalui jaringan. Jika Anda familiar dengan program (CGI), maka servlet teknologi java dapat sepenuhnya menggantikan program CGI. Sering disebut sebagai komponen web, program servlet yang dijalankan dalam lingkungan runtime akan disediakan oleh container servles seperti Tomcat dan Bea WebLogic.
Catatan: Wadah web bisa
Servlet dipasang di wadah web sebagai bagian dari aplikasi web. Aplikasi ini akan berisi sumber daya WEB. Seperti halaman HTML, gambar, klip multimedia, servlet, jsps, file konfigurasi xml, kelas runtime Java, dan pustaka kelas. Ketika aplikasi web disebarkan ke dalam wadah web, wadah tersebut akan menghasilkan dan memuat instance kelas Java servlet ke dalam JVM. Menangani permintaan servlet.
Semua servlet mewarisi antarmuka javax.servlet.Servlet. Pemrogram yang mengembangkan aplikasi web menulis servlet khusus
Diwarisi dari javax.servlet.http.HttpServlet, kelas abstrak mengimplementasikan antarmuka Servlet dan dirancang khusus untuk menangani permintaan HTTP.
Ketika sebuah wadah web menghasilkan sebuah instance servlet, urutan dasarnya adalah sebagai berikut:
1. Kontainer servlet terlebih dahulu memanggil metode init() dari servlet, yang akan menginisialisasi sumber daya untuk digunakan servlet. Terdaftar sebagai logger. Metode init() ini hanya akan dipanggil satu kali selama seluruh siklus hidup servlet.
2. Metode init() menginisialisasi objek, yang mewarisi antarmuka java.servlet.ServletConfig. Objek ini memungkinkan servlet untuk menginisialisasi parameter yang dideklarasikan dalam deskriptor penerapan. ServletConfig juga memberikan akses servlet ke objek javax.servlet.ServletContext, yang dapat digunakan servlet untuk mencatat informasi, mengirimkan permintaan ke komponen web lain, dan menggunakan sumber daya web lain dalam aplikasi yang sama.
3. Kontainer servlet memanggil metode service() dari servlet ini untuk merespons beberapa permintaan servlet. Berdasarkan HttpServlets, service() secara otomatis memanggil metode HTTP yang sesuai untuk menangani permintaan dengan memanggil metode doGet() atau doPost() servlet. Untuk beberapa contoh, pengguna mengirimkan permintaan Post dan servlet merespons permintaan tersebut dengan mengeksekusi metode doPost().
4. Saat memanggil metode doPost() dan doGet() dari dua HttpServlet utama, container servlet akan menghasilkan objek javax..servlet.http.HttpServletRequest dan HttpServletResponse dan meneruskannya sebagai parameter ke metode pemrosesan permintaan ini.
http://www.downcodes.com/
5. Kelola siklus hidup servlet, atau tentukan waktu pemrosesan instance servlet ini berdasarkan permintaan permintaan dan waktu keberadaan di mesin virtual Java. Ketika kontainer servlet mulai menghapus servlet, metode destroy() servlet akan dipanggil, yang mana semua sumber daya, seperti koneksi database, dapat dilepaskan.
Contoh HttpServlet yang khas
paket com.mydev;
impor java.io.IOException; impor java.io.PrintWriter;
import java.util.Enumeration; import javax.servlet.ServletException;
impor javax.servlet.http.HttpServlet;
impor javax.servlet.http.HttpServletRequest;
impor javax.servlet.http.HttpServletResponse;
//Harus mewarisi antarmuka HttpServlet
kelas publik FirstServlet memperluas HttpServlet ...{
public void doGet(permintaan HttpServletRequest, respons HttpServletResponse) menampilkan ServletException, java.io.IOException ...{
//atur tipe respons MIME, "teks/html"
respon.setContentType("teks/html");
//gunakan PrintWriter untuk mengirim data teks ke klien yang meminta
//servlet
java.io.PrintWriter keluar = respon.getWriter();
//Mulai merakit konten HTML out.println("<html><head>");
out.println("<title>Halaman Bantuan</title></head><body>");
out.println("<h2>Silakan kirimkan informasi Anda</h2>");
//pastikan metode="post" sehingga metode layanan servlet
//memanggil doPost sebagai respons terhadap pengiriman formulir ini
out.println( "<form method="post" action ="" + permintaan.getContextPath( ) + "/firstservlet" >");
out.println("<tabel border="0"><tr><td valign="top">");
out.println("Nama Depan Anda: </td> <td valign="top">");
out.println("<input type="text" nama="nama depan" size="20">");
out.println("</td></tr><tr><td valign="top">");
out.println("Nama Belakang Anda: </td> <td valign="top">");
out.println("<input type="text" nama="nama belakang" size="20">");
out.println("</td></tr><tr><td valign="top">");
out.println("Email Anda: </td> <td valign="top">");
out.println("<input type="text" nama="email" size="20">");
out.println("</td></tr><tr><td valign="top">");
out.println("<input type="submit" value="Kirim Info"></td></tr>");
keluar.println("</table></form>"); keluar.println("</body></html>");
}
//doGet
public void doPost(permintaan HttpServletRequest, respons HttpServletResponse) menampilkan ServletException, java.io.IOException ...{
//menampilkan nama dan nilai parameter
ParamNames enumerasi = request.getParameterNames( );
String parNama;
//ini akan menampung nama parameter
boolean kosongEnum = false;
if (! paramNames.hasMoreElements( ))
kosongEnum = benar;
//atur tipe respons MIME, "teks/html"
respon.setContentType("teks/html");
//gunakan PrintWriter untuk mengirim data teks ke klien
java.io.PrintWriter keluar = respon.getWriter();
//Mulai merakit konten HTML
keluar.println("<html><kepala>");
out.println("<title>Parameter yang Dikirim</title></head><body>");
jika (kosongEnum) ...{
out.println( "<h2>Maaf, permintaan tidak mengandung parameter apa pun</h2>");
} kalau tidak ...{
out.println( "<h2>Berikut adalah nilai parameter yang dikirimkan</h2>");
}
while(paramNames.hasMoreElements( )) ...{
parName = (String) paramNames.nextElement( );
out.println( "<strong>" + parName + "</strong> : " + permintaan.getParameter(parName));
keluar.println("<br />");
}//ketika
keluar.println("</body></html>");
}
//lakukanPosting
}
Anda mungkin memperhatikan bahwa doGet() dan doPost() masing-masing akan memunculkan ServletException dan IOException. Itu karena respon.getWriter() akan memunculkan pengecualian IO.
http://blog.csdn.net/bruceleey/archive/2007/02/07/1503843.aspx