Apa itu Servlet ?
Servlet adalah program kecil yang ditulis dengan bahasa Java yang
dibuat untuk berjalan diatas web server. Kata Servlet memiliki kemiripan dengan
Applet. Perbedaannya adalah applet berjalan disisi klien (client-side)
sedangakan Servlet berjalan di sisi server (server-side).
Teknologi Java memperkenalkkan Servlet sebagai alternatif lain dari program CGI (Common Gateway Interface). CGI merupakan program yang dikembangkan untuk membuat halaman web menjadi lebih dinamis. CGI memungkinkan adanya interaksi antara user dengan web server, misalkan user input data pribadi melalui form HTML, kemudian data di proses di web server. Program CGI banyak ditulis dalam bahasa Perl atau C++.
Teknologi Java memperkenalkkan Servlet sebagai alternatif lain dari program CGI (Common Gateway Interface). CGI merupakan program yang dikembangkan untuk membuat halaman web menjadi lebih dinamis. CGI memungkinkan adanya interaksi antara user dengan web server, misalkan user input data pribadi melalui form HTML, kemudian data di proses di web server. Program CGI banyak ditulis dalam bahasa Perl atau C++.
Proses Akses Servlet
Program servlet berjalan di dalam web server, dan berperilaku
sebagai lapisan penghubung antara request yang dikirim browser lewat protokol
HTTP dengan Database, atau lapisan tengah antara browser dengan aplikasi pada
web server.
Berikut alur proses
yang terjadi ketika klien akses Servlet pada web server :
- Membaca data secara ekplist
data yang dikirim oleh klien lewat browser. User input data pada form HTML
pada halaman web, data juga bisa berasal dari sebuah applet atau lewat
program klien HTTP.
- Membaca data secara implisit
data HTTP request yang dikirim melalui browser. Dalam proses ini akan
dibaca dua jenis data, pertama data yang diinput klien dan data yang
dikirim oleh browser (seperti : cookies, media type) , proses ini berada
di server dimana Servlet dieksekusi,
- Generate hasil permintaan
(request). Proses ini mungkin memerlukan komunikasi dengan database,
eksekusi sebuah RMI atau memanggil web service, invoke sebuah aplikasi,
atau menjawab (response) secara langsung permintaan (request). Disini
database tidak langsung "berbicara" dengan HTTP atau tidak langsung
mengembalikan database dalam bentuk HTML, hal ini berlaku untuk semua
aplikasi. Disini dibutuhkan suatu lapisan untuk meng-ekstrak data kedalam
bentuk steram HTTP.
- Kirim data (dokumen) secara
explicit ke client. Dokumen yang dikirim dapat dalam berbagai format ,
text (HTML), binary (image file), atau bahkan file hasil kompres (gzip
file)
- Kirim data response HTTP
secar implisit. Servlet atau JSP akan mengirim data ke client, ada dua
jenis data yang dikirim, data yang berisi informasi yang diinginkan /
diproses dan informasi HTTP ( cookies, catch parameter dan sebagainya).
Struktur Dasar Servlet
Package yang diperlukan untuk membuat class Servlet adalah package
java.io.* (PrintWriter), javax.servlet.* (HttpServlet), dan
javax.servlet.http.* (HttpServletRequest ,HttpServletResponse).
Berikut struktur dasar class Servlet:
Berikut struktur dasar class Servlet:
import
java.io.*;
import
javax.servlet.*;
import
javax.servlet.http.*;
public class
ServletTemplate extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Use "request" to read incoming
HTTP headers
// (e.g., cookies) and query data from HTML
forms.
// Use "response" to specify the
HTTP response status
// code and headers (e.g. the content type,
cookies).
PrintWriter out = response.getWriter();
// Use "out" to send content to
browser.
}
}
Method Method HttpServletRequest
Method
|
Description
|
String getParameter(String name)
|
Mengembalikan nilai yang berkesesuaian dengan parameter
yang dikirim ke servlet sebagai bagian dari proses request GET atau POST
|
Enumeration getParamterNames( )
|
Mengembalikan nama seluruh parameter yang dikirim ke
servlet sebagai bagian dari request POST
|
String[] getParameterValues( )
|
Mengembalikan array of String yang berisi untuk nilai
paramater tertentu yang dikirim ke Servlet
|
Cookie[] getCookies()
|
Mengembalikan array of Cookie yang merupakan object yang
disimpan di client oleh server. Cookie dapat digunakan untuk mengidentifikasi
secara unik setiap client oleh servlet
|
HttpSession getSession(boolean create)
|
Mengembalikan object HttpSession yang berkesesuaian dengan
browsing session yang sedang berlangsung pada client. Object session ini
digunakan untuk mengidentifikasi klien yang mengakses servlet secara unik.
|
Method Method HttpServletResponse
Method
|
Description
|
void addCookie (Cookie cookie)
|
Digunakan untuk menambahkan cookie pada header sebagai
respons ke klien.
|
ServletOutputStream getOutputStream( )
|
Mendapatkan output stream berbasis byte yang memungkinkan
binary data di kirim ke klien
|
PrintWriter getWriter( )
|
Mendapatkan output stream berbasis karakter yang
memungkinkan data teks dikirim ke klien
|
void setContentType( String type)
|
Menspesifikasi tipe MIME pada respons ke browser. Tipe
MIME membantu browser menentukan cara menampilkan data. Misalnya tipe MIME
"text/html" mengindikasikan respons berupa dokumen HTML sehingga
browser menampilkan halaman HTML
|
Siklus Servlet
Servlet mempunyai siklus internal [sun] yaitu
:
1.
Memanggil class servlet,
2.
Men-create instance dari
servlet,
3.
Memanggil method init,
4.
Memanggil method service,
5.
Memanggil method destroy.
Siklus ini di atur oleh web container. Proses
1, 2, 3 hanya berlangsung satu kali, pada saat servlet di panggil untuk pertama
kalinya. Setelah proses tersebut, servlet dalam keadaan ready.
Proses 4 akan dilakukan apabila ada request
dari client, kemudia web container menangani request, menggunakan method
service (doGet, doPost, dll). Apabila terdapat banyak request, akan ditangani
oleh web container, dengan multi thread.
Proses 5 dilakukan apabila aplikasi web tidak
digunakan lagi atau dimatikan. Web container akan memanggil method destroy
untuk melepaskan memory yang terpakai. Proses ini berlangsung satu kali saja.
Membuat Servlet Pertama
Berikut ini contoh
program Servlet sederhana yang menampilkan teks "Salam dari Servlet
!" ke dalam halaman web pada browser.
/**
* File SalamServlet.java
*/
package app;
import
java.io.*;
import
java.util.Date;
import
javax.servlet.*;
import
javax.servlet.http.*;
// setiap
servlet adalah turunan HttpServlet
public class
SalamServlet extends HttpServlet
{
//
inilah 'main' dari Servlet
public void doGet ( HttpServletRequest rq,
HttpServletResponse resp )
throws ServletException, IOException
{
// supaya browser type content data
resp.setContentType
("text/html");
// untuk character dan line oriented
output
PrintWriter out = resp.getWriter ( );
// send salaam
out.println("<h1>Assalamu'alaikum ...</h1>");
Date date = new Date();
out.println(date.toString());
}
}
Simpan file ini
dibawah direktori base_aplikasi/src/java/app
Compile Program Servlet
Proses kompilasi dan
deploy aplikasi menggunakan tools ant (detail pada bab II), dengan konsole
(shell command) di base direktori aplikasi anda, jalankan perintah :
base_aplikasi]$
ant
Sebelum di deploy
Servlet kew servlet container (tomcat), edit terlebih dahulu file web.xml pada
direktori (base_aplikasi/web/WEB-INF/web.xml), dengan menambahkan baris
berikut:
<servlet>
<servlet-name>firstServlet</servlet-name>
<servlet-class>app.SalamServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name<firstServlet>/servlet-name<
<url-pattern</salam>/url-pattern<
</servlet-mapping>
Penjelasan baris kode
pada file web.xml
<servlet>
<servlet-name>firstServlet</servlet-name>
<servlet-class>app.SalamServlet</servlet-class>
</servlet>
berarti : class hasil
kompilasi SalamServlet.class yang terdapat dalam package app akan di mapping
dengan nama servlet firstServlet
<servlet-mapping>
<servlet-name<firstServlet>/servlet-name<
<url-pattern</salamt>/url-pattern<
</servlet-mapping>
berarti : servlet
dengan nama firstServlet mempunyai url /SalamServlet
Deploy Servlet ke Tomcat Web
Server
base_aplikasi]$
ant install
Jika sudah pernah
deploy aplikasi ke dalam servlet container (tomcat), jalankan perintah :
base_aplikasi]$
ant reload
Akses Servlet
Jika semua berjalan
lancar anda bisa mengakses Servlet pertama anda lewat browser dengan url :
http://localhost:8080/appweb/salam.
appweb adalah nama
project yang di deploy ke servlet container (tomcat).
Arsitektur Model 2
menggunakan Servlet
Pada
kali ini akan diterapkan arsitektur model 2, dimana komponen view menggunakan
JSP, komponen controlle menggunakan servlet dan komponen model menggunakan java
class Karena saat ini kita baru mempelajari servlet, maka kita cob membuat
komponen view dengan menggunakan servlet.
Membuat Komponen View
Komponen
view dalam aplikasi web digunakan untuk [SUN] :
Untuk
memudahkan mengklasifikasikan servlet sebagai komponen view dan komponen
controller, pada NetBeans, dibuat package view, package controller serta
package model untuk menempatkan servlet sesuai dengan fungsinya.
Membuat
Komponen Controller Servlet
Sebagai komponen controller, dapat digunakan
untuk [SUN] :


0 komentar:
Posting Komentar