Servlet adalah program kecil yang ditulis dengan bahasa Java yang dibuat untuk berjalan diatas web server.
Servlet memiliki kemiripan dengan applet. Bedanya applet berjalan disisi klien (client-side) sedangakan Servlet berjalan di sisi server (server-side).
Servlet diperkenalkan pertama kali oleh teknologi Java 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, kemudian data di proses di web server. Program CGI banyak ditulis dalam bahasa Perl atau C++.
Proses Akses Servlet
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:
import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class ServletTemplate extends HttpServlet {public void doGet(HttpServletRequest request,throws ServletException, IOException {HttpServletResponse response)// (e.g., cookies) and query data from HTML forms.// Use "request" to read incoming HTTP headers// code and headers (e.g. the content type, cookies).// Use "response" to specify the HTTP response status 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
|
Servlet memiliki kelebihan-kelebihan sebagai berikut :
- Efisien dan baik dalam performance.
Performance servlet dapat dikatakan efisien dan baik karena tidak ada proses pembuatan berulang untuk tiap request dari client. Setiap request ditangani oleh proses servlet container. Servlet tidak dibuat dan dihancurkan secara berulang-ulang, melainkan tetap tersimpan pada memori untuk menangani request yang datang selanjutnya.
- Powerful
Servlet memiliki kemampuan yang lengkap antara lain mampu melakukan penanganan request, session, cookie, akses ke database dengan JDBC dan caching, serta library yang lengkap untuk pembuatan aplikasi web.
- Aman
Servlet memiliki fasilitas security yang baik dan merupakan bagian dari teknologi Java yang sudah dari asalnya didesain dengan security yang baik.
- Portabilitas
Teknologi Java servket dapat dijalankan di berbagai servlet container, application server, maupun sistem operasi.
- Proses development yang lebih cepat
Dengan menggunakan servlet, kita dapat menggunakan library java yang lengkap dan menggunakan komponen atau bean yang sudah ada.
- Tangguh
Servlet merupakan teknologi java yang memiliki penanganan memory yang baik dan garbage collection sehingga menjadi aplikasi web yang tangguh dan stabil.
- Telah digunakan dan diakui di dunia
Servlet merupakan teknologi java yang telah digunakan di berbagai belahan dunia. Kita dapat menemukan berbagai komponen, solusi dan dukungan yang ditawarkan baik yang gratis (open source) maupun komersial.
- Murah
Dikatakan murah karena JDK Java dapat didownload secara gratis. Servlet dan JSP container juga banyak yang gratis, misalnya Apache Tomcat.
Nah dalam prakteknya di dunia MVC, servlet dapat berperan sebagai controller
Cara Membuat Servlet.
- Pastikan aplikasi Netbeans sudah terinstal di laptop/PC anda.
- Buka aplikasi Netbeans pada laptop/PC anda.
- Buatlah project baru dengan memencet tombol file dari menu, lalu pilih new project. Maka akan muncul tampilan seperti gambar berikut.
4. Masukkan nama project.
5. Pilih server.
6. Klik finish.
7. Tambahkan file servlet pada project yang telah dibuat, dengan cara klik kanan package, new, lalu pilih servlet.
8. Masukkan nama servlet. Klik finish.
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).

Tidak ada komentar:
Posting Komentar