SERVLET
Sumber gambar
: http://core0.staticworld.net/images/idge/imported/article/jvw/1999/12/model2_sml-100158072-orig.gif
è
Servlet : class yang didefinisikan dalam java dan
digunakan untuk meningkatkan kemampuan web server dalam menangani request dan
response client.
è
Servlet : suatu teknologi Java yang diintegrasikan di
dalam Web-Server untuk melakukan fungsi-fungsi server-side. Fungsi server-side
ini dijalankan untuk menanggapi permintaan dari client (web browser).
è
Kelebihan
– Kelebihan Servlet :
· Efisien dan baik dalam performance.
· Powerful
· Aman
· Portabilitas
· Proses development yang lebih cepat
· Tangguh
· Telah digunakan dan diakui di dunia
· Murah
è
Servlet dapat menerima request dan menghasilkan
response melalui protokol komunikasi yang berbeda, tetapi sebagian besar tipe
yang digunakan adalah HTTP Servlet,
yang diimplementasikan dengan class java javax.servlet.httpServlet.
è Java
memiliki dua paket yang menyediakan interface dan class untuk servlet :
· javax.servlet
· javax.servlet.http
è Method-Method
yang terdapat pada interface servlet :
·
void init (ServletConfig config) : Method ini
dipanggil hanya sekali selama siklus servlet dan pemanggilan secara otomatis.
Method ini digunakan untuk inisialisasi servlet.
·
ServletConfig getServletConfig() : Method ini
mengembalikan reference ke objek yang mengimplementasikan interface
ServletConfig. Objek ini memungkinkan servlet mengakses konfigurasi informasi servlet
seperti inisialisasi parameter dan ServletContex, yang memungkinkan servlet
memiliki akses ke lingkungannya, seperti pengaksesan ke server dimana servlet
dijalankan.
·
void service (ServletRequest request, ServletResponse
response) : Method ini merupakan method pertama yang dipanggil pada setiap
servlet untuk merespons request client.
·
String getServletInfo() : Method ini didefinisikan
programmer servlet untuk mengembalikan String yang berisi informasi servlet
seperti author dan versi servlet.
·
Void destroy() : Method ini sering disebut clenUp.
Method ini untuk mendealokasi resource yang digunakan servlet.
è
Paket servlet mendefinisikan dua buah class abstract
yang mengimplementasikan interface Servlet :
·
class GenericServlet pada paket javax.servlet
·
class HttpServlet pada paket javax.servlet.http
è
class HttpServlet : mendefinisikan kemampuan
pemrosesan servlet untuk mewarisi fungsionalitas web server
è
Method utama yang terdapat pada setiap servlet : method
service (parameter berupa objek ServletRequest
dan ServletResponse).
è
Class HttpServlet akan melakukan override method
service untuk membedakan request yang diterima web browser client.
è
Dua tipe request yang paling umum digunakan request method (“GET” dan “POST”)
·
Request GET : untuk mendapatkan atau menerima
informasi dari server yang berupa file HTML atau image.
·
Request POST : untuk mengirimkan data ke server dalam
bentuk HTML yang berisi data yang dimasukan oleh client.
è
Method yang sering digunakan untuk memberikan respon terhadap
request client : doGet dan doPost yang memiliki dua parameter (HttpServletRequest dan HttpServletResponse)
è
Method-Method dari ServletRequest :
·
String getParameter(String name) : Dikirim ke servlet
sebagai bagian request GET atau POST.
·
Enumeration getParameterNames() : Mengembalikan nama
seluruh parameter yang dikirim ke servlet sebagai bagian dari request POST.
·
String[] getParameterValues(String name) : Mengembalikan
array of string yang berisi nilai untuk parameter servlet
·
Cookie[] getCookies() : Mengembalikan array of cookie,
merupakan objek client yang disimpan di server. Cookies dapat digunakan untuk
mengidentifikasikan secara unik setiap client oleh server.
·
HttpSession getSession(Boolean create) : Mengembalikan
objek HttpSession yang sedang berlasung pada client. Parameter akan bernilai
jika tidak terdapat objek Httpsession di client. Secara fungsionalitas memilki
kegunaan yang sama dengan Cookies.
è
Method-Method dari ServletResponse :
·
void addCookie(Cookie cookie) : Digunakan untuk
menambahkan cookie pada header sebagai respons ke client.
·
ServletOutputStream getOutputStream() : Mendapatkan
output stream berbasis byte yang memungkinkan data teks dikirim ke client.
·
PrintWriter getWriter() : Mendapatkan output stream
berbasis karakter yang memungkinkan data binary dikirim ke client.
·
Void setContentType(String type) : Menspesifikasikan
type MIME respons ke browser.
è
Contoh program servlet sederhana untuk menangani request HTTP Get untuk menerima content
dari suatu URL.
Listing Program 1.1.
|
// Nama file : HTTPGetServlet.java
// Diskripsi : Membuat dan
mengirimkan halaman web ke client
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class HTTPGetServlet
extends HttpServlet {
public void doGet(
HttpServletRequest request,
HttpServletResponse response )
throws ServletException,
IOException
{
PrintWriter output;
response.setContentType(
"text/html" ); //tipe content
output = response.getWriter(); //
get writer
// membuat dan melakukan send
halaman HTML ke client
StringBuffer buf = new
StringBuffer();
buf.append( "\n" );
buf.append( "
Program
Servlet Sederhana!
\n" );
buf.append( "" );
output.println( buf.toString() );
output.close(); // close
PrintWriter stream
}
}
|
Sedangkan
file HTML yang mendemonstrasikan servlet untuk menangani Request HTTP GET
adalah sebagai berikut :
Listing Program 1.2.
|
ACTION="http://localhost:8080/SERVER2/servlet/HTTPGetServlet"
METHOD="GET">
Tekan tombol Submit agar servlet
mengirimkan
file HTML
|
Jika
HTTPGetServlet.html dijalankan pada browser, maka akan terlihat tampilan pada
browser seperti pada gambar 1.1. :
Dilakukan
dengan memasukan alamat URL pada browser sebagai berikut :
Gambar 1.1. Tampilan HTTPGetServlet.html pada
Browser
Jika button
Submit ditekan, maka servlet akan mengembalikan HTML seperti yang terlihat pada
browser sebagai berikut :
Gambar 1.2. Servlet yang Menangani Request HTTP
Get
1.2. Menangani Request HTTP POST
Request HTTP
Post sering digunakan untuk mengirimkan data dalam bentuk HTML menjadi
server-side form handler yang digunakan untuk memproses data. Dibawah ini
diberikan contoh program servlet sederhana untuk menangani request HTTP Post.
Contoh ini
mendeskripsikan survey berbasis web untuk mengetahui minat kebutuhan terhadap
suatu jenis bahasa pemrograman.
Listing Program 1.3.
|
// Nama file : HTTPPostServlet.java
// Diskripsi : Hasil survey
menggunakan servlet request HTTP POST
import javax.servlet.*;
import javax.servlet.http.*;
import java.text.*;
import java.io.*;
import java.util.*;
public class HTTPPostServlet
extends HttpServlet {
private String namaBahasa[] =
{ "Fortran", "Pascal",
"C", "Java", "TidakAda" };
public void doPost(
HttpServletRequest request,
HttpServletResponse response )
throws ServletException,
IOException
{
int bahasa[] = null, total = 0;
File f = new File(
"survey.txt" );
if ( f.exists() ) {
// menentukan responden hasil
survey
try {
ObjectInputStream input = new
ObjectInputStream(
new FileInputStream( f ) );
bahasa = (int [])
input.readObject();
input.close(); // close stream
for ( int i = 0; i <>
total += bahasa[ i ];
}
catch( ClassNotFoundException cnfe
) {
cnfe.printStackTrace();
}
}
else
bahasa = new int[ 5 ];
// membaca responden hasil survey
current
String value =
request.getParameter(
"jBahasa" );
++total; // update total of all
responses
// menentukan bahasa yang dipilih
dan melakukan update total
for ( int i = 0; i <>
if ( value.equals( namaBahasa[ i ]
) )
++bahasa[ i ];
// menulis update total ke disk
ObjectOutputStream output = new
ObjectOutputStream(
new FileOutputStream( f ) );
output.writeObject( bahasa );
output.flush();
output.close();
// menghitung persentase
double percentages[] = new double[
bahasa.length ];
for ( int i = 0; i <>
percentages[ i ] = 100.0 * bahasa[
i ] / total;
// mengirim message terima kasih
ke clien
response.setContentType(
"text/html" );//content type
PrintWriter responseOutput =
response.getWriter();
StringBuffer buf = new
StringBuffer();
buf.append( "\n" );
buf.append( "\n" );
buf.append( "Terima Kasih
untuk partisipasinya.\n" );
buf.append( "
Hasil Survei :\n
" );
DecimalFormat twoDigits = new
DecimalFormat("#0.00");
for ( int i = 0; i <>
buf.append( "
" );
buf.append( namaBahasa[ i ] );
buf.append( ": " );
buf.append(twoDigits.format(percentages[
i ]) );
buf.append( "% responden:
" );
buf.append( bahasa[ i ] );
buf.append( "\n" );
}
buf.append( "\n
Total responden: " );
buf.append( total );
buf.append( "\n" );
responseOutput.println(
buf.toString() );
responseOutput.close();
}
}
|
Sedangkan
file HTML yang mendemonstrasikan servlet untuk menangani Request HTTP POST
adalah sebagai berikut :
Listing Program 1.4.
|
"http://localhost:8080/SERVER2/servlet/HTTPPostServlet">
Bahasa Pemrograman yang paling
banyak dibutuhkan
Fortran
Pascal
C
Java
TidakAda
|
Jika
HTTPPostServlet.html dijalankan pada browser, maka akan terlihat tampilan pada
browser seperti pada gambar 1.3.:
Dilakukan
dengan memasukan alamat URL pada browser sebagai berikut :
Gambar 1.3. Tampilan HTTPPostServlet.html pada
Browser
Jika tombol
submit ditekan, maka servlet akan mengembalikan dokumen HTML sebagai berikut :
Gambar 1.4. Servlet yang Menangani Request HTTP
Post
Aris Puji Widodo
Copyright © 2003 - 2006
IlmuKomputer.Com
Seluruh
dokumen di IlmuKomputer.Com
è JSP (Java Server Page) : perluasan
teknologi Java Servlet yang mengkombinasikan HTML dengan java untuk membangun
halaman web dinamis. Karena JSP dibangun di atas java dan HTML, teknologinya
tidak dibatasi suatu platform atau server spesifik.
è
Arsitektur
JSP
·
Komponen JSP
:
1. Web server adalah perangkat lunak yang menerima permintaan dan mengirim informasi balik , jawaban yang akan ditampilkan browser.
2. Container adalah perangkat lunak yang menyimpan file JSP, servlet, mentransformasikan file JSP menjadi servlet, mengkompilasi dan menjalankan servlet untuk menghasilkan HTML.
1. Web server adalah perangkat lunak yang menerima permintaan dan mengirim informasi balik , jawaban yang akan ditampilkan browser.
2. Container adalah perangkat lunak yang menyimpan file JSP, servlet, mentransformasikan file JSP menjadi servlet, mengkompilasi dan menjalankan servlet untuk menghasilkan HTML.
·
Mekanisme
Kerja JSP
1. Web server mengirimkan permintaan satu halaman JSP
2. Web server mengenali file .jsp di URL yang diminta browser, mengindikasikan sumber daya yang diminta adalah halaman JSP, dan harus ditangani JSP engine
3. Halaman JSP itu kemudian diterjemahkan menjadi java class yang kemudian dikompilasi menjadi servlet. Penerjemahan dan kompilasi hanya dilakukan sekali saat JSP pertama kali dipanggil atau saat terjadi perubahan JSP.
1. Web server mengirimkan permintaan satu halaman JSP
2. Web server mengenali file .jsp di URL yang diminta browser, mengindikasikan sumber daya yang diminta adalah halaman JSP, dan harus ditangani JSP engine
3. Halaman JSP itu kemudian diterjemahkan menjadi java class yang kemudian dikompilasi menjadi servlet. Penerjemahan dan kompilasi hanya dilakukan sekali saat JSP pertama kali dipanggil atau saat terjadi perubahan JSP.
è
Sumber :
Tidak ada komentar:
Posting Komentar