Java Cookies: Bagaimana melakukan Java Servlet Session Management menggunakan Cookies
Diterbitkan: 2020-08-19
Halaman Web tidak memiliki kenangan. Seorang pengguna pergi dari halaman ke halaman akan diperlakukan oleh situs web sebagai pengunjung yang sama sekali baru. Cookie sesi memungkinkan situs web yang Anda kunjungi untuk melacak pergerakan Anda dari halaman ke halaman sehingga Anda tidak dimintai informasi yang sama seperti yang telah Anda berikan ke situs.
Cookie memungkinkan Anda untuk menelusuri banyak halaman situs dengan cepat dan mudah tanpa harus mengotentikasi atau memproses ulang setiap area baru yang Anda kunjungi.
Namun terkadang dalam aplikasi web Java, kita harus mengetahui siapa kliennya dan memproses permintaan tersebut.
Misalnya, aplikasi keranjang belanja harus mengetahui siapa yang mengirim permintaan untuk menambahkan item dan di keranjang mana item harus ditambahkan atau siapa yang mengirim permintaan checkout sehingga dapat menagih jumlah tersebut ke klien yang benar.
Sesi adalah keadaan percakapan antara klien dan server dan dapat terdiri dari beberapa permintaan dan tanggapan antara klien dan server. Karena HTTP dan Server Web keduanya tidak memiliki kewarganegaraan, satu-satunya cara untuk mempertahankan sesi adalah ketika beberapa informasi unik tentang sesi (id sesi) diteruskan antara server dan klien dalam setiap permintaan dan tanggapan.

Sekarang mari kita buat Simple Dynamic Web Project di Eclipse yang menjelaskan Java Servlet Session Management menggunakan Cookies.
Berikut langkah-langkahnya:
- Buat Proyek Web Dinamis:
CrunchifySessionManagementByCookie
-
crunchify-login.html
: Membuat halaman selamat datang dari sebuah aplikasi -
CrunchifyLoginServlet.java
– Itu menangani permintaan Login -
CrunchifyLogoutServlet.java
– Itu menangani permintaan Logout -
web.xml
– Deployment Descriptor File (Tidak melihat web.xml? Ikuti tutorial ini) -
CrunchifyLoginSuccessful.jsp
– Permintaan Sukses sedang diteruskan keLoginSuccess.jsp
, cookie ini akan digunakan di sana untuk melacak sesi. Perhatikan juga bahwa waktu tunggu cookie diatur ke 60 menit.

Yang lain harus membaca:
- Contoh/Tutorial Spring MVC: Hello World – Spring MVC 3.2.1
- Cara Update Grafik Sparkline Setiap 3 Detik di Spring MVC (Realtime Update)
1. crunchify-login.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
< ! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > < html > < head > < meta http - equiv = "Content-Type" content = "text/html; charset=US-ASCII" > < title > Crunchify Login Form - Session Management by Cookies < / title > <style type ="text/css"> body { background-image : url ( 'https://cdn.crunchify.com/bg.png' ) ; } </style> < / head > < body > < div align = "center" > < br > < br > < form action = "CrunchifyLoginServlet" method = "post" > Enter Your Username : < input type = "text" name = "crunchifyUser" > < br > Enter Your Password : < input type = "password" name = "crunchifyPassword" > < br > < br > < br > < input type = "submit" value = "Login" > < / form > < / div > < / body > < / html > |
2. CrunchifyLoginServlet.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
package com . crunchify . tutorials ; import java . io . IOException ; import java . io . PrintWriter ; import javax . servlet . RequestDispatcher ; import javax . servlet . ServletException ; import javax . servlet . annotation . WebServlet ; import javax . servlet . http . Cookie ; import javax . servlet . http . HttpServlet ; import javax . servlet . http . HttpServletRequest ; import javax . servlet . http . HttpServletResponse ; /* * Author: Crunchify.com * */ /** * Servlet implementation class LoginServlet */ @WebServlet ( "/CrunchifyLoginServlet" ) public class CrunchifyLoginServlet extends HttpServlet { private static final long serialVersionUID = 1L ; private final String userID = "CrunchifyUser" ; private final String password = "CrunchifyPassword" ; protected void doPost ( HttpServletRequest request , HttpServletResponse response ) throws ServletException , IOException { // get request parameters for userID and password String crunchifyUser = request . getParameter ( "crunchifyUser" ) ; String pwd = request . getParameter ( "crunchifyPassword" ) ; if ( userID . equals ( crunchifyUser ) && password.equals(pwd)) { Cookie crunchifyCookie = new Cookie("crunchifyUser", crunchifyUser); // setting cookie to expiry in 60 mins crunchifyCookie . setMaxAge ( 60 * 60 ) ; response . addCookie ( crunchifyCookie ) ; response . sendRedirect ( "CrunchifyLoginSuccess.jsp" ) ; } else { RequestDispatcher rd = getServletContext ( ) . getRequestDispatcher ( "/crunchify-login.html" ) ; PrintWriter out = response . getWriter ( ) ; out . println ( "<font color=red>Please make sure you enter UserID/Pass as \"CrunchifyUser : CrunchifyPassword\".</font>\n" ) ; rd . include ( request , response ) ; } } } |
3. CrunchifyLogoutServlet.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
package com . crunchify . tutorials ; import java . io . IOException ; import javax . servlet . ServletException ; import javax . servlet . annotation . WebServlet ; import javax . servlet . http . Cookie ; import javax . servlet . http . HttpServlet ; import javax . servlet . http . HttpServletRequest ; import javax . servlet . http . HttpServletResponse ; /* * Author: Crunchify.com * */ /** * Servlet implementation class LogoutServlet */ @WebServlet ( "/CrunchifyLogoutServlet" ) public class CrunchifyLogoutServlet extends HttpServlet { private static final long serialVersionUID = 1L ; protected void doPost ( HttpServletRequest request , HttpServletResponse response ) throws ServletException , IOException { response . setContentType ( "text/html" ) ; Cookie loginCookie = null ; Cookie [ ] cookies = request . getCookies ( ) ; if ( cookies ! = null ) { for ( Cookie cookie : cookies ) { if ( cookie . getName ( ) . equals ( "crunchifyUser" ) ) { loginCookie = cookie ; break ; } } } if ( loginCookie ! = null ) { loginCookie . setMaxAge ( 0 ) ; response . addCookie ( loginCookie ) ; } response . sendRedirect ( "crunchify-login.html" ) ; } } |
4. web.xml
1 2 3 4 5 6 7 8 9 10 |
<? xml version = "1.0" encoding = "UTF-8" ?> < web - app xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns = "http://java.sun.com/xml/ns/javaee" xsi : schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id = "WebApp_ID" version = "3.0" > < display - name > CrunchifySessionManagementByCookie < / display - name > < welcome - file - list > < welcome - file > crunchify - login . html < / welcome - file > < / welcome - file - list > < / web - app > |
5. CrunchifyLoginSuccessful.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
<% @ page language = "java" contentType = "text/html; charset=US-ASCII" pageEncoding = "US-ASCII" %> < ! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > < html > < head > < meta http - equiv = "Content-Type" content = "text/html; charset=US-ASCII" > < title > Crunchify - Login Successful - Session management by Cookies < / title > <style type ="text/css"> body { background-image : url ( 'https://cdn.crunchify.com/bg.png' ) ; } </style> < / head > < body > < div align = "center" > < br > < br > <% String userName = null ; Cookie [ ] cookies = request . getCookies ( ) ; if ( cookies ! = null ) { for ( Cookie cookie : cookies ) { if ( cookie . getName ( ) . equals ( "crunchifyUser" ) ) userName = cookie . getValue ( ) ; } } if ( userName == null ) response . sendRedirect ( "crunchify-login.html" ) ; %> < h3 > Hi <%= userName %> , Login successful . < / h3 > < br > < form action = "CrunchifyLogoutServlet" method = "post" > < input type = "submit" value = "Logout" > < / form > < / div > < / body > < / html > |
Sekarang mari kita jalankan contoh ini:
- Terapkan Proyek
CrunchifySessionManagementByCookie
ke Tomcat dan Jalankan Tomcat.

- Arahkan URL browser Anda ke http://localhost:8080/CrunchifySessionManagementByCookie/crunchify-login.html

- Halaman Sukses

- Halaman Login Gagal

Sekarang Cara Memeriksa Jika Cookie Anda disetel dengan benar.

Coba unduh Cookie Manager Extension
apa pun dan Anda akan melihat Cookie
di browser Anda seperti yang terlihat di bawah ini.

Beri tahu saya jika Anda menghadapi masalah saat menjalankan kode Manajemen Cookie Servlet.