Servlet oh Servlet

Bahasa pemrograman yang paling sering gw post di blog ini adalah Java, seperti post yang ini, ini, ini, dan banyak deh 😛 Sejak setahun belakangan gw agak meninggalkan bahas pemrograman Java. Gw pakenya cuman buat hal-hal yang rada gak penting (seperti di postingan ini). Tiba saatnya disuruh bikin spesifikasi tugas besar ke4 untuk mata kuliah Pemrograman Internet tentang JSP dan Java Servlet. Bump! Baru disadari semua asisten gak ada yang demen sama Java.

Sampai si Diaz pun pasang status Facebook, “Sedang tidak ingin bersentuhan dengan barang-barang berbau Java” Wkwkwk.

Pertama kali gw menggunakan teknologi web berbasis Java adalah pas mata kuliah proyek perangkat lunak. Pas itu make Servlet sama JSP udah kayak ngegunain PHP aja. Begitu make langsung frustrasi karena ternyata pemrograman di Servlet dan JSP.

Well, pemrograman web dengan Java memang agak berbeda dengan PHP. Di dalam PHP, mostly semua dikodekan dengan menggunakan paradigma prosedural. Sebuah entry point pada PHP adalah sebuah berkas PHP yang di dalamnya langsung runtunan kode prosedural. Sedangkan entry point pada Java adalah sebuah Servlet class, yup, langsung sebuah class. Di dalam banyak framework PHP, penggunaan MVC ditangani oleh framework dengan menggunakan fungsi class autoloading.

Di dalam teknologi Java Servlet, ada yang disebut dengan Servlet Life Cycle yang konsepnya cukup berbeda dengan konsep web programming yang lain. Ketika sebuah request dilakukan terhadap sebuah entry point, maka server akan mencari servlet yang bersangkutan. Jika tidak ada maka server akan melakukan instansiasi dari servlet class yang dimaksud. Selanjutnya request-request yang lain akan ditangani oleh instance/object yang sama dengan menggunakan thread yang berbeda-beda. Pada teknologi PHP, sebuah script akan langsung diinterpretasikan untuk setiap request, meski kadang-kadang beberapa server melakukan caching (memang ada beberapa produk PHP caching yang digunakan untuk melakukan speed up). Servlet akan tetap terus ada di dalam memori dan menangani semua request yang ditujukan kepadanya. Hal ini akan mengurangi overhead dalam melakukan script interpreting seperti pada bahasa lain.

Karena sifat servlet yang stateful tersebut maka ketika kita melakukan instansiasi sebuah obyek pada sebuah servlet, maka selama servlet tersebut masih ada maka obyek yang diinstansiasi akan terus ada. Hal ini akan sangat membantu karena akan mengurangi kebutuhan penggunaan basis data. Untuk semua bahasa pemrograman web proses koneksi database adalah hal yang menyebalkan. Koneksi database akan cukup menambah response time dari sebuah skrip terutama pada saat melakukan pembukaan koneksi. Dengan adanya sifat stateful dari servlet maka sebenarnya koneksi basis data yang sudah dibuka dapat disimpan dan digunakan sewaktu-waktu (pooling). Cara ini akan mengurangi beban dari server serta overhead.

Well, meski demikian seperti banyak bahasa pemrograman web yang lain, servlet juga menyediakan session yakni mekanisme untuk menyimpan data sebuah session dari pengguna untuk memisahkan dengan pengguna yang lain. Fitur session sebenarnya adalah fitur yang menarik karena sebenarnya Web memiliki sifat yang stateless. HTTP pada dasarnya tidak pernah menspesifikasikan adanya session, tapi beberapa bahasa pemrograman web menambahkan session ID pada bagian Head dari HTTP request.

Selain Servlet ada juga yang namanya JSP. JSP juga sebenarnya adalah Servlet yang dibuat sedemikian rupa sehingga berupa script. JSP dibuat sangat mirip dengan PHP maupun ASP. Hal ini disebabkan karena mengatur tampilan pada sebuah Servlet akan membuat frustrasi sebenernya *pengalaman* Anyway, dengan menggunakan JavaBean, pemrograman pada JSP akan menjadi sangat menarik ^^

Well ada bahan kilasan yang menarik dari Andra.

*petra yang lagi frustrasi bikin spek tubes 4*

4 thoughts on “Servlet oh Servlet”

  1. Servlet akan tetap terus ada di dalam memori dan menangani semua request yang ditujukan kepadanya. Hal ini akan mengurangi overhead dalam melakukan script interpreting seperti pada bahasa lain.

    Kalau gitu di servlet sebenarnya bisa ada variable yg berlaku global ga? Misalnya variable untuk menghitung hit count sebuah page.
    Tugas 4-nya kapan dirilis nih? Bisa2 ga ada tugas 5 kl kelamaan (baguslah) 🙂

Leave a Reply