Oleh : Reza Ervani
Rujukan : jenkov.com
بسم الله الرحمن الرحيم
Metode pemrosesan permintaan pada Class HttpServlet
menggunakan dua parameter :
- javax.servlet.http.HttpRequest
- javax.servlet.http.HttpResponse
Sebagai contoh, berikut contoh penggunaan metode HttpServlet.doGet() :
protected void doGet( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { }
Tujuan dari objek HttpRequest
adalah untuk mewakili request HTTP yang dikirimkan web browser ke aplikasi kita. Jadi apapun yang dikirim oleh browser, dapat diakses via HttpRequest
.
Objek HttpRequest
memiliki banyak metode, kita akan melihat yang paling sering digunakan saja, yakni :
- Parameters
- Headers
- InputStream
- Session
- ServletContext
Parameter
paramater request adalah parameter yang dikirim dari browser bersamaan dengan request yang dilakukan. Parameter request umumnya dikirim sebagai bagian dari URL (dalam bentuk “query string”) atau sebagai bagian dari tubuh suatu request HTTP. Contohnya
http://programming.rezaervani.com/contoh.html?id1=rezaervani&id2=java
Perhatikan bagian “query string” dari URL tersebut yakni ?id1=rezaervani&id2=java
Bagian tersebut mengadung dua parameter dengan nilai parameter :
id1=rezaervani id2=java
Kita dapat mengakses parameter-parameter ini dari objek HttpRequest
seperti ini :
protected void doGet( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String parameter1 = request.getParameter("id1"); String parameter2 = request.getParameter("id2"); }
Kita akan menggunakan kode yang sama jika parameter-parameter request dikirim di dalam bagian tubuh request HTTP. JIka tidak ada parameter dengan nama yang diminta, maka nilai yang akan diberikan adalah null
Secara umum, jika browser mengirim request HTTP GET, parameter disertakan pada query string URL. Jika browser mengirim request HTTP POST, parameter disertakan pada tubuh request HTTP
Header
Header request adalah nama, pasangan-pasangan nilai yang dikirim oleh browser bersama dengan request HTTP. Header request berisi informasi tentang – misalnya – software browser apa yang digunakan, tipe file apa yang dapat diterima oleh browser dll. Atau secara singkat yang terkait dengan meta data yang berhubungan dengan request HTTP.
Kita dapat mengakses header request dari objek HttpRequest
seperti ini :
String contentLength = request.getHeader("Content-Length");
Contoh diatas membaca header Content-Length
yang dikirim oleh browser.
Header Content-Length
berisi nilai byte yang dikirim dalam tubuh request HTTP, dalam kasus browser mengirim request HTTP POST. Jika browser mengirim request HTTP GET header Content-Length
tidak digunakan, sehingga kode diatas akan memberikan nilai null.
Secara umum, jika tidak ada header yang cocok dengan nama yang dilewatkan pada getHeader()
, maka yang diberikan adalah nilai null.
InputStream
Jika browser mengirimkan request HTTP POST, parameter request dan data potensial lainnya dikirim ke server via tubuh request HTTP. Data tersebut tidak harus dalam bentuk parameter request. Dapat pula dalam bentuk data yang lain, seperti sebuah file atau request SOAP (web service request).
Untuk memberikan kita akses ke tubuh suatu request HTTP POST, kita dapat menggunakan suatu InputStream
yang ditujukan ke tubuh request HTTP seperti berikut :
InputStream requestBodyInput = request.getInputStream();
Catatan : Kita harus memanggil metode ini sebelum memanggil metode getParameter()
apapun, dikarenakan pemanggilan metode getParameter()
pada request HTTP POST akan menyebabkan mesin servlet melakukan penguraian tubuh request HTTP untuk mendapatkan parameter. Sekali terurari, maka kita tidak akan dapat mengakses lagi tubuh request tersebut sebagai raw stream byte.
Apa yang kemudian kita lakukan terhadap data yang kita baca dari InputStream
adalah terserah kita. Mesin servlet tidak membantu kita untuk mengurai atau menginterpetasikan data, hanya memberikan baris data.
Session
Adalah dimungkinkan juga untuk mendapatkan objek session
dari objek HttpRequest
Objek session
dapat menyimpan informasi tentang user yang ada, sambil melakukan request-request yang lain. Jadi, jika kita mengatur suatu objek ke dalam objek session saat satu request, maka datanya akan dapat kita gunakan pada request lain sesudahnya selama masih ada dalam waktu sesi yang sama.
Berikut cara kita mengakses objek session
dari objek HttpRequest
:
HttpSession session = request.getSession();
ServletContext
Kita juga dapat mengakses objek ServletContext
dari objek HttpRequest
.
ServletContext
berisi informasi meta tentang aplikasi web. Sebagai contoh, kita dapat mengakses parameter konteks yang diset di dalam file web.xml
, kita dapat pula mem-forward request ke servlet yang lain, atau kita juga dapat menyimpan parameter aplikasi di dalam ServletContext
.
Berikut cara kita mengakses ServletContext
dari objek HttpRequest
:
ServletContext context = request.getSession().getServletContext();
Seperti yang kita lihat, pertama-tama kita harus mendapatkan objek session, untuk mengakses objek ServletContext
reza@rumahilmu.or.id
Leave a Reply