1. Trang chủ
  2. » Giáo Dục - Đào Tạo

CHUYÊN đề JAVA SERVLET SESSION TRACKING

18 474 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 1,97 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

CHUYÊN ĐỀ JAVASERVLET SESSION TRACKING • Lâm Thị Xuân Thanh • Đỗ Xuân Thiện • Lê Hữu Thống... Nội dung trình bày Session Tracking  Cài đặt Session Tracking - Servlet Session API  Xây

Trang 1

CHUYÊN ĐỀ JAVA

SERVLET SESSION TRACKING

• Lâm Thị Xuân Thanh

• Đỗ Xuân Thiện

• Lê Hữu Thống

Trang 2

Nội dung trình bày

 Session Tracking

 Cài đặt Session Tracking

- Servlet Session API

 Xây dựng BookOnline

- Đăng nhập

- Quản lý giỏ hàng

Trang 3

Session Tracking

 Trong ứng dụng bán hàng trực tuyến, nhiều khách hàng thực hiện mua hàng Mỗi khách hàng có một giỏ hàng riêng biệt.

 Mỗi khách hàng thực hiện các thao tác như thêm sản phẩm vào giỏ hàng, xóa sản phẩm khỏi giỏ hàng, cập nhật số lượng mua, tiếp tục mua hàng, thanh toán…

 Để thực hiện mỗi thao tác của từng khách hàng làm sao server biết được các sản phẩm hiện có trong giỏ

hàng của khách hàng đó?

Trang 4

Session Tracking

 Cần cơ chế duy trì trạng thái của các request từ cùng một người dùng(hoặc có nguồn gốc cùng một

browser) trong một khoảng thời gian.

 Tuy nhiên HTTP là giao thức phi trạng thái (stateless)

- Mỗi lần client kết nối đến server đều mở ra một kết nối mới.

- Server không tự động duy trì trạng thái của một user.

Trang 5

Session Tracking

Session ID 1

Session 1 Client 1

Server

Session ID 2

Session 2 Client 2

Trang 6

Session Tracking

 Cài đặt Session Tracking sử dụng

- Servlet Session API

Trang 7

Session Tracking - Servlet Session API

 Lấy đối tượng session

HttpSession session = request.getSession();

 Lấy dữ liệu:

Object obj = session.getAttribute(String name);

 Lưu trữ dữ liệu vào session

session.setAttribute(String name, Object obj)

 Xóa dữ liệu session theo tên

session.removeAttribute(String name)

 Xóa toàn bộ dữ liệu trong session : session.invalidate()

 Kiểm tra session được tạo mới từ client:

boolean ok = session.isNew()

Trang 8

Session Tracking - Servlet Session API

 Lấy session id: String id = session.getId()

 Lấy các tên của các thuộc tính từ session

Enumeration<String> names = session.getAttributeNames()

 Lấy thời gian tạo session lần đầu tiên long time =

session.getCreationTime();

 Lấy thời gian truy xuất session lần cuối

long time = session.getLastAccessedTime();

session.setMaxInactiveInterval(int interval); Gán/lấy thời gian session timeout

int interval = session.getMaxInactiveInterval();

Trang 9

Session Tracking - Servlet Session API

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

//Lưu trữ dữ liệu

HttpSession session = request.getSession ();

SomePOJO data= ; session.setAttribute (" SomeName ", data);

//Lấy dữ liệu

HttpSession session = request.getSession();

if( session.getAttribute (“ SomeName ”)!=null){

SomePOJO data = (SomePOJO)session.getAttribute(“ SomeName ”);

}

//Xóa dữ liệu

HttpSession session = request.getSession ();

session.removeAttribute (“ SomeName ”);

//Xóa tất cả dữ liệu trong session

HttpSession session = request.getSession ();

session.invalidate ();

Trang 10

Session Tracking - Servlet Session API

1 HttpSession session = request.getSession ();

2 synchronized (session){

3 session.setAttribute( );

4 session.getAttribute( );

5 session.removeAttribte( );

7

- Synchronized : xử lý đồng bộ giữa các request đến từ cùng một user

- Thường sử dụng trong ứng dụng ajax

Trang 11

Servlet Session API - Access Count

1 HttpSession session = request.getSession();

2 synchronized (session) {

3 Integer accessCount;

4 if (session.getAttribute("AccessCount") != null) {

5 accessCount = (Integer)

6 session.getAttribute("AccessCount") + 1;

7

9 accessCount = 1;

11 session.setAttribute("AccessCount", accessCount);

12 out.println("<html>");

13 out.println("<head>");

14 out.println("<meta http-equiv='Content-Type'

15 content='text/html; charset=utf-8' />");

16 out.println("<title>Show Session</title>");

17 out.println("</head>");

18 out.println("<body>");

19 out.println("<h1 align='center'>THÔNG TIN SESSION</h1>");

Trang 12

Servlet Session API - Access Count

1 out.println("<table width='400' border='1' align='center'

2 cellpadding='0' cellspacing='0'>");

3 out.println(" <tr bgcolor='#00FFFF'>");

4 out.println(" <td><strong>Thông tin</strong></td>");

5 out.println(" <td><strong>Giá tr?</strong></td>");

6 out.println(" </tr>");

7 out.println(" <tr>");

8 out.println(" <td width='40%'>ID</td>");

9 out.println(" <td>" + session.getId() + "</td>");

10 out.println(" </tr>");

11 out.println(" <tr>");

12 out.println(" <td>Thời gian tạo lần đầu tiên</td>");

13 out.println(" <td>" + new

14 Date(session.getCreationTime()) + "</td>");

15 out.println(" </tr>"); out.println(" <tr>");

16 out.println(" <td>Thời gian truy cập lần cuối </td>");

17 out.println(" <td>" + new

18 Date(session.getLastAccessedTime()) + "</td>");

Trang 13

Servlet Session API - Access Count

1

2

3

4

out.println( "

out.println( "

out.println( "

<tr>" );

<td>Thời gian timeout</td>" );

<td>" +

5 session.getMaxInactiveInterval() + "</td>" );

6

7

8

9

10

11

12

out.println( "

out.println( "

out.println( "

out.println( "

out.println( "

</tr>" );

<tr>" );

<td>Số lần truy cập</td>" );

<td>" +accessCount + "</td>" );

</tr>" );

13

14

15

16

out.println( "</table>" );

out.println( "</body>" );

out.println( "</head>" );

out.println( "</html>" );

Trang 14

Servlet Session API - Access Count

Trang 15

BookOnline - Các chức năng

 Cho phép khách hàng quản lý giỏ hàng của mình

- Xem giỏ hàng

- Thêm sách vào giỏ hàng

- Xóa một số đầu sách trong giỏ

- Cập nhật số lượng sách mua

- Xóa tất cả các sách trong giỏ

- Thanh toán giỏ hàng

- Xem các đơn đặt hàng đã mua

Trang 16

BookOnline - Use case

DuaSachVaoGioHang KhachHang

XoaMotSoDauSachKhoiGioHang

<<extend>>

<<extend>>

XemDanhSachDonDatHang

<<extend>>

XemGioHang

<<extend>>

CapNhatSoLuongSach TrongGioHang

XemChiTietDonDatHang ThanhToan

Trang 17

BookOnline - Cơ sở dữ liệu

Trang 18

THE END

Ngày đăng: 31/08/2016, 09:54

TỪ KHÓA LIÊN QUAN

w