HttpSession

Oleh : Reza Ervani

Rujukan : jenkov.com

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

Objek HttpSession mewakili suatu sesi pengguna. Sebuah sesi pengguna berisi informasi tentang pengguna yang melewati beberapa request HTTP.

Ketika seorang pengguna masuk ke situs kita untuk pertama kali, pengguna tersebut akan diberikan ID yang unik untuk mengidentifikasi sesi miliknya. ID ini umumnya disimpan di cookie atau dalam suatu parameter request.

Kita dapat mengakses objek session dengan cara berikut :

protected void doPost(HttpServletRequest request,
    HttpServletResponse response)
        throws ServletException, IOException {

    <b>HttpSession session = request.getSession();</b>
}

Kita dapat menyimpan nilai dalam objek session dan mengambilnya kemudian. Pertama-tama, mari kita lihat cara menyimpan nilai ke objek session :
session.setAttribute(“userName”, “theUserName”);

Kode tersebut memberikan nama atribut “userName”, dengan nilai “theUserName”.

Untuk membaca nilai tersebut, kita dapat melakukan hal berikut :

String userName = (String) session.getAttribute("userName");

Nilai yang disipan di dalam objek session disimpan di dalam memori kontainer servlet.

Session dan Cluster

Jika kita memiliki arsitektur dengan 2 web server di dalam suatu klaster, selalu diingat bahwa nilai yang disimpan dalam objek session di satu server, mungkin tidak tersedia pada objek session di server yang lain. Sehingga jika seorang pengguna melakukan request yang terpisah antara dua server, terkadang nilai session menjadi hilang.

Solusi untuk masalah ini diantaranya adalah

  1. Jangan menggunakan atribut session
  2. Gunakan database session, dimana atribut session disimpan dan dibaca.
  3. Gunakan session menempel (sticky session), dimana pengguna selalu dibawa ke server yang sama pada seluruh sesi yang ada.
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.