http://vietjack.com/jsp /index.jsp Copyright © vietjack.com Cookie JSP Cookie text file lưu giữ máy tính Client chúng giữ cho mục đích theo dõi thơng tin đa dạng Rõ ràng điều là, JSP hỗ trợ HTTP cookie sử dụng công nghệ Servlet tầng Có bước liên quan việc nhận diện việc phản hồi người dùng: Server script gửi tập hợp Cookie tới trình duyệt Ví dụ: name, age, số chứng minh thư, … Trình duyệt lưu giữ thông tin thiết bị nội để sử dụng thời gian tới Trong lần tới, trình duyệt gửi yêu cầu tới Web server, gửi thơng tin Cookie tới Server Server sử dụng thơng tin để nhận diện người dùng Chương hướng dẫn bạn cách để thiết lập phục hồi Cookie, cách để truy cập chúng cách để xóa chúng sử dụng chương trình JSP Phân tích Cookie Cookie thường thiết lập HTTP Header (mặc dù JavaScript thiết lập Cookie trực tiếp trình duyệt) Một JSP, mà thiết lập Cookie, gửi Header trơng giống sau: HTTP/1.1 200 OK Date: Fri, 04 Feb 2000 21:03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; path=/; domain=tutorialspoint.com Connection: close Content-Type: text/html Như bạn thấy, Set-Cookie Header chứa cặp name-value, GMT date, path domain Name value URL mã hóa Trường Expires lệnh tới trình duyệt để “bỏ qua” Cookie sau khoảng date time cho Nếu trình duyệt định cấu hình để lưu giữ Cookie, giữ thơng tin tới Expiry Date Nếu người dùng tới trình duyệt trang mà kết nối với path domain Cookie đó, gửi lại Cookie tới Server Các Header trình duyệt trơng giống sau: http://vietjack.com/ Trang chia sẻ các bài học online miễn phí http://vietjack.com/jsp /index.jsp Copyright © vietjack.com GET / HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc) Host: zink.demon.co.uk:1126 Accept: image/gif, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8 Cookie: name=xyz Sau đó, JSP script có truy cập tới Cookie thơng qua phương thức request.getCookies(), mà trả mảng đối tượng Cookie Các phương thức liên kết với Cookie JSP Bảng liệt kê phương thức hữu ích liên kết với đối tượng Cookie, mà bạn sử dụng thao tác cookie JSP: STT Phương thức Miêu tả public void setDomain(String pattern) Phương thức thiết lập domain mà Cookie áp dụng, ví dụ: vietjack.com public String getDomain() Phương thức nhận domain mà Cookie áp dụng, ví dụ: vietjack.com public void setMaxAge(int expiry) Phương thức thiết lập thời gian (bằng giây) Cookie hết hạn N khơng thiết lập nó, Cookie tồn cho session public int getMaxAge() Phương thức trả tuổi tối đa Cookie này, xác định giây định, -1 Cookie tồn tới trình duyệt kết thúc public String getName() Phương thức trả tên Cookie Tên bị thay đổi sau kh public void setValue(String newValue) Phương thức thiết lập giá trị mà liên kết với Cookie public String getValue() Phương thức nhận giá trị mà liên kết với Cookie public void setPath(String uri) Phương thức thiết lập path mà Cookie áp dụng Nếu bạn khơng xác đ path, Cookie trả cho URL thư mục trang http://vietjack.com/ Trang chia sẻ các bài học online miễn phí http://vietjack.com/jsp /index.jsp Copyright © vietjack.com 10 11 12 tất thư mục phụ public String getPath() Phương thức nhận path mà Cookie áp dụng public void setSecure(boolean flag) Phương thức thiết lập giá trị Boolean có hay khơng Cookie nê gửi qua kết nối mật mã hóa (ví dụ: SSL) public void setComment(String purpose) Phương thức xác định comment mà miêu tả mục đích Cooki Comment hữu ích trình duyệt hiển thị Cookie tới người dùng public String getComment() Phương thức trả Comment miêu tả mục đích Cookie này, trả Cookie khơng có comment Thiết lập Cookie với JSP Để thiết lập cookie với JSP, bạn theo bước sau: (1) Tạo đối tượng Cookie: Bạn gọi Cookie constructor với tên Cookie giá trị Cookie, hai String: Cookie cookie = new Cookie("key","value"); Bạn nên nhớ rằng, tên giá trị không nên chứa khoảng trống trắng ký tự sau: [ ] ( ) = , " / ? @ : ; (2) Thiết lập tuổi tối đa: Bạn sử dụng setMaxAge để xác định thời gian (bằng giây) Cookie hiệu lực Ví dụ sau thiết lập Cookie 24 cookie.setMaxAge(60*60*24); (3) Gửi Cookie vào trường HTTP Response Header: Bạn sử dụng response.addCookie để thêm Cookie vào trường HTTP Response Header sau: response.addCookie(cookie); Ví dụ Chúng ta sửa đổi chút Ví dụ Form JSP chương trước để thiết lập cookie cho First Name Last Name: Setting Cookies Setting Cookies First Name: Last Name: Đặt code main.jsp file sử dụng HTML page sau: First Name: Last Name: Giữ HTML content file hello.jsp đặt hello.jsp main.jsp thư mục /webapps/ROOT Khi bạn truy cập http://localhost:8080/hello.jsp, output thực form là: http://vietjack.com/ Trang chia sẻ các bài học online miễn phí http://vietjack.com/jsp /index.jsp Copyright © vietjack.com First Name: Last Name: Khi bạn nhập First Name Last Name sau nhấn nút Submit Nó hiển thị First Name Last Name hình thời điểm đó, thiết lập hai Cookie firstName lastName, mà truyền trở lại Server lần bạn nhấn nút Submit Phần tới giới thiệu cho bạn cách để truy cập Cookie trở lại ứng dụng web bạn Đọc Cookie với JSP Để đọc Cookie, bạn cần tạo mảng đối tượng javax.servlet.http.Cookie việc gọi phương thức getCookies() HttpServletRequest Sau đó, tuần hoàn qua mảng, sử dụng phương thức getName() getValue() để truy cập Cookie giá trị liên kết Ví dụ Đọc cookie mà có ví dụ trước: Reading Cookies Reading Cookies Đặt code main.jsp file thử truy cập Nếu bạn thiết lập first_nam cookie “John” last_name cookie “Player”, chạy http://localhost:8080/main.jsp hiển thị kết sau: Found Cookies Name and Value Name : first_name, Value: John Name : last_name, Value: Player Xóa Cookie với JSP Xóa Cookie đơn giản Nếu bạn muốn xóa Cookie, đơn giản bạn cần theo bước sau: • Đọc cookie tồn lưu đối tượng Cookie • Thiết lập tuổi cookie sử dụng phương thức setMaxAge() để xóa cookie tồn • Thêm cookie trở lại bên trường Response header Ví dụ Ví dụ sau xóa cookie tồn với tên “first_name” bạn chạy JSP main.jsp lần trả giá trị null cho first_name Reading Cookies Reading Cookies Đặt code main.jsp file thử truy cập Nó cho kết sau: Cookies Name and Value Deleted cookie : first_name Name : first_name, Value: John Name : last_name, Value: Player Bây giờ, thử chạy http://localhost:8080/main.jsp lần nữa, hiển thị cookie sau: Found Cookies Name and Value Name : last_name, Value: Player Bạn xóa cookie bạn IE thao tác tay Bắt đầu Tools menu chọn Internet Options Để xóa tất cookie, nhấn Delete Cookies http://vietjack.com/ Trang chia sẻ các bài học online miễn phí ... an array of Cookies associated with this domain cookies = request.getCookies(); if( cookies != null ){ out.println(" Found Cookies Name and Value"); for (int i = 0; i < cookies. length;... domain cookies = request.getCookies(); if( cookies != null ){ out.println(" Found Cookies Name and Value"); for (int i = 0; i < cookies. length; i++){ cookie = cookies[ i]; out.print("Name... chạy JSP main .jsp lần trả giá trị null cho first_name Reading Cookies< /title> Reading Cookies< /h1>