Kamis, 07 Mei 2015

Pertemuan 5 - Servlet


Pengertian 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++. 

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.



Alur Proses Yang Terjadi Ketika Klien Akses Servlet Pada Web Server  
1.      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.
2.      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,
3.      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.
4.      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)
5.      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). 

Apa Itu Request Dan Apa Response ?

Request ialah Informasi yang dikirim dari client (browser) ke server.

Response ialah Informasi yang dikirim ke client dari server :
- Text (html, palin) atau gambar.
- Http header, cookies, session, etc.


Methods doGet() Dan doPost()

Request dari client atau dari browser diterima oleh method service didalam HttpServlet. HttpServlet akan mengecek apakah yang di terima adalah get atau post. Apabila get, maka yang dieksekusi adalah doGet, kalau post maka yang dieksekusi adalah doPost. Dengan demikian, maka program kita nantinya atau kode program kita nantinya hanya ada di doGet atau di doPost.

Method Method HttpServletRequest
Method
Deskripsi
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
Deskripsi
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
void addCookie (Cookie cookie)
Digunakan untuk menambahkan cookie pada header sebagai respons ke klien.

Yang Dikerjakan Oleh Servlet
1.      Menerima request dari client (paling umum adalah HTTPrequest).
2.      Mengambil informasi- informasi dari request tersebut.
3.      Menciptakan konten untuk dikirimkan ke client atau melakukan bisnis logic seperti mengakses database atau memanggail EJB's.
4.   Menciptakan dan mengirimkan response ke client atau meng-forward request yang diterimanya ke servlet lainnya atau ke halaman JSP.

Yang Dibutuhkan Servlet

Beberapa aplikasi yaitu :
1.      Web server yang mendukung servlet (Servlet Container), seperti Jetty atau Apache Tomcat JDK, yaitu library yang dibutuhkan untuk kompilasi kode Java
2.     Tools lain untuk mempermudah kompilasi dan membangun aplikasi, misalnya Apache Maven atau juga Apache Ant

Untuk kemudahan bagi pemula, kita akan bicarakan satu saja untuk tiap kategori. Kita pilh saja Apache Tomcat untuk Web Servernya dan Apache Ant untuk kompliasinya.

Kelebihan Servlet
1.      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.
2.      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.
3.      Aman
Servlet memiliki fasilitas security yang baik dan merupakan bagian dari teknologi Java yang sudah dari asalnya didesain dengan security yang baik.
4.      Portabilitas
Teknologi Java servket dapat dijalankan di berbagai servlet container, application server, maupun sistem operasi.
5.      Proses development yang lebih cepat
Dengan menggunakan servlet, kita dapat menggunakan library java yang lengkap dan menggunakan komponen atau bean yang sudah ada.
6.      Tangguh
Servlet merupakan teknologi java yang memiliki penanganan memory yang baik dan garbage collection sehingga menjadi aplikasi web yang tangguh dan stabil.
7.      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.
8.      Murah
Dikatakan murah karena JDK Java dapat didownload secara gratis. Servlet dan JSP container juga banyak yang gratis, misalnya Apache Tomcat.

Kelemahan Servlet

Teks-teks HTML yang berisi tampilan halaman harus dibuat dengan menggunakan bahasa pemrograman Java. Hal ini menyulitkan jika kita ingin mengubah tampilan bagian HTML-nya, karena berarti kita harus membuka kembali kode program java di servlet.

1 komentar: