HttpRequest

Oleh : Reza Ervani

Rujukan : jenkov.com

بسم الله الرحمن الرحيم

Metode pemrosesan permintaan pada Class HttpServlet menggunakan dua parameter :

  1. javax.servlet.http.HttpRequest
  2. 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 :

  1. Parameters
  2. Headers
  3. InputStream
  4. Session
  5. 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

About Reza Ervani 387 Articles
Adalah pendiri programming.rezaervani.com -

Be the first to comment

Leave a Reply

Your email address will not be published.


*


This site uses Akismet to reduce spam. Learn how your comment data is processed.