1. Trang chủ
  2. » Công Nghệ Thông Tin

CHUYÊN ĐỀ JAVA_SERVLET SESSION TRACKING pdf

19 341 2

Đ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 19
Dung lượng 0,93 MB

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

Nội dung

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

Trang 1

SERVLET SESSION TRACKING

CHUYÊN ĐỀ JAVA

Nguyễn Hoàng Anh Email: nhanh@fit.hcmus.edu.vn

hoanganhis@gmail.com

ĐH KHTN, 2011

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

Server Client 1

Client 2

Session ID 1

Session ID 2

Session 1

Session 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();

 Gán/lấy thời gian session timeout

session.setMaxInactiveInterval(int interval);

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){

}

//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

2

3

4

5

6

7

8

HttpSession session = request.getSession ();

synchronized (session){

session.setAttribute( );

session.getAttribute( );

session.removeAttribte( );

session.invalidate( );

}

- 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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

HttpSession session = request.getSession();

synchronized (session) {

Integer accessCount;

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

accessCount = (Integer)

session.getAttribute( "AccessCount" ) + 1;

} else {

accessCount = 1;

}

session.setAttribute( "AccessCount" , accessCount);

out.println( "<html>" );

out.println( "<head>" );

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

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

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

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

out.println( "<body>" );

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

Trang 12

Servlet Session API – Access Count

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

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

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

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

out.println( " <td><strong>Thông tin</strong></td>" ); out.println( " <td><strong>Giá tr?</strong></td>" );

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

out.println( " <tr>" );

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

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

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

out.println( " <tr>" );

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

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

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

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

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

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

Trang 13

Servlet Session API – Access Count

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

out.println(" <tr>");

out.println(" <td>Thời gian timeout</td>"); out.println(" <td>" +

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

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

out.println(" <tr>");

out.println(" <td>Số lần truy cập</td>"); out.println(" <td>"+accessCount + "</td>"); out.println(" </tr>");

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

XemGioHang

XoaMotSoDauSachKhoiGioHang

CapNhatSoLuongSach TrongGioHang

ThanhToan

<<extend>>

<<extend>>

<<extend>>

KhachHang

XemDanhSachDonDatHang

XemChiTietDonDatHang

<<extend>>

Trang 17

BookOnline – Cơ sở dữ liệu

Trang 18

Tài liệu tham khảo

 Nguyễn Hoàng Anh, Tập bài giảng và video môn chuyên đề Java, 2010

 Marty Hall, Tập bài giảng về Servlet, 2010

– http://courses.coreservlets.com/Course-Materials/csajsp2.html

Trang 19

HỎI VÀ ĐÁP

Ngày đăng: 08/08/2014, 18:22

TỪ KHÓA LIÊN QUAN

w