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.
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).