LƯU DỮ LIỆU TRONG ĐỐI TƯỢNG SESSION

Một phần của tài liệu thiết kế website môn lập trình mạng (Trang 61 - 65)

Khi lập trình ứng dụng cơ sở dữ liệu khái niệm session tượng trưng một giai đoạn duy trì kết nối giưã trình khách và trình chủ trong quá trình liên lạc .

Tuy nhiên , khái niệm session trong giao thức HTTP giưã trình duyệt và trình chủ lại có ý nghiã hơi khác .Khi trình duyệt cần yêu cầu trình chủ cung cấp một tài liệu , trình duyệt mở kết nối , lấy về nội dung trang dữ liệu và sau đó đóng ngay kết nối .Bởi vì không có một kết nối nào được duy trì , mỗi lần nhận được yêu cầu trình chủ Web Server không biết được trước đó trình duyệt đã có những trạng thái nào , do đó giao thức kết nối HTTP là giao thức kết nối phi trạng thái .

Application,Applet ,Servlet JDBC Driver

Java Native Driver

Cơ sở dữ liệu (Access,SQL Server

,Oracle,…) Mã Java

Truy xuất cơ sở dữ liệu JDBC kiểu 4 Internet

Để lưu vết những trạng thái mà trình duyệt yêu cầu trước đó , trình chủ đã cài đặt sẵn lớp HttpSession.Thay vào đó , HttpSession dưạ vào khái niệm cuả cookies quy định giữa trình khách và trình chủ .Cookies là một mẫu thông tin được gởi về trình duyệt phiá máy khách khi có yêu cầu trang .Mỗi khi trình duyệt phát sinh yêu cầu gởi lên web server ,nó lại chuyển mẫu tin cookies trở lại cho trình chủ .Dưạ vào cookies trình khách và trình chủ sẽ có những thông tin trạng thái thông báo cho nhau .

1./ SỬ DỤNG ĐỐI TƯỢNG SESSION TRONG TRANG JSP

Java Server Pages API cung cấp rất nhiều đối tượng nội tại .Ví dụ request và out là hai đối tượng nội tại mà ta nghiên cưú qua .Đối tượng nội tại là đối tượng session .Đây là đối tượng xuất phát từ lớp HttpSession .Với đối tượng session , 3 phương thức mà bạn thường sử dụng nhất là :

Public void setAttribute(String name,Object value) throws IllegalStateException.

Public Object getAttribute(String name) throws IllegalStateException.

Public void removeAttribute(String name) throws IllegalStateException.

Các phương thức này hoạt động tương tự phương thức get và put cuả lớp Hashtable cuả Java . Cụ thể ,setAttibute() kết hợp một tên khoá với một giá trị cuả biến ,trong khi getAttibute() trả về giá trị kết hợp cuả một tên khoá nào đó ,nếu không tìm thấy giá trị kết hợp ,giá trị trả về sẽ là null .Lưu ý giá trị mà bạn muốn lưu hay lấy về phải là một đối tượng .Đối với giá trị đơn nguyên như int , float , bolean phải chuyển chúng sang kiểu đối tượng dưạ vào các lớp tương ứng như Integer , Float , Boolean . Thường tên khoá được xem là tên biến .Ví dụ để lưu một giá trị chuỗi vào đối tượng session để tất cả các trang JSP và servlet thấy được giá trị này , bạn phải goị setAttribute() như

that sự cuả khoá ,cần chuyển Object về kiểu đối tượng thích hợp .

Biến đối tượng session chỉ tồn tại trong một thời gian nhất định .Khoảng thời gian này gọi là thời gian thực cuả session .Có thể cấu hình thay đổi thời gian này . Nếu muốn chủ động làm cho session hết hiệu lực ,phải gọi phương thức session.invalidate(). Khi session hết hiệu lực ,tất cả các khoá và giá trị kết hợp với nó do session lưu trữ sẽ bị huỷ bỏ .Khi bạn gọi các phương thức như getAttribute() hay setAttribute() mà đối tượng session đã hết hiệu lực thì lỗi ngoại lệ IllegalStateException sẽ phát sinh .

2./ TÌM HIỂU CÁCH SESSION LÀM VIỆC

Dưới đây là mô hình làm việc và giao tiếp giữa trình duyệt và Web Server liên quan trao đổi thông tin cookies phục vụ cho session .

Đối tượng session chỉ được phép tồn tại trong một khoảngthời gian cho phép. Trình chủ tự động giải phóng và vô hiệu lực session để tài nguyên của hệ thống được bảo tồn . Nếu đối tượng session đã giải phóng và trình duyệt gởi yêu cầu trang với số session ID, trình chủ do không tìm thấy đối tượng session tương ứng nữa sẽ phát sinh lỗi ngoại lệ IllegalStateException.

Web Server Web Server

Browser Cho tôi xin

trang tài liệu

Đây là trang tài liệu bạn .Số session ID

là 3478

Cho tôi xin trang tài liệu bạn .Số session ID cuả tôi là 3478

Trình duyệt yêu cầu tài liệu

Trình chủ trả về trang tài liệu và cookies

chưá thông tin về session ID Trình duyệt chuyển số session ID cho trình chủ bất kì khi nào nó muốn yêu câù

một tài liệu mới. Browser

Web Server Browser

3./ XỬ LÝ CHẤM DỨT SESSION (adsbygoogle = window.adsbygoogle || []).push({});

Đối tượng session có thể bị chấm dứt hay bị huỷ bỏ trong hai trường hợp :chủ động gọi phương thức invalidate() cuả nó hoặc trình chủ web server huỷ session do thời gian hết hiệu lực .Tuỳ theo dữ liệu lưu trong session mà cần phải thực hiện một vài thao tác xoá biến dọn dẹp các đối tượng trước khi session bị hủy bỏ .Ví dụ , có thể lưu biến trong session các thông tin kết nối đến cơ sở dữ liệu .Thực hiện kết nối trước khi xoá session vì nó sẽ làm cho ứng dụng tăng tốc độ xử lý đối với các người dùng còn lại .

Đối tượng session cũng cài đặt cơ chế gọi ngược để thông báo cho một đối tượng nào đó trạng thái đối tượng được ràng buộc vào session hoặc khi session bị hủy bỏ .

Để cài đặt cơ chế thông báo cuả session ,dùng giao diện HttpSessionBindingListener .Giao diện này định nghĩa các phương thức mà session sẽ gọi thông báo cho các đối tượng về trạng thái cuả nó.

PHẦN 2 : GIỚI THIỆU RATIONAL ROSE

I. Rational Unified Process (RUP) được định hướng bởi các mô

hình Use Case Đăngkýhọc Học DạoxemWeb Cậpnhậtthôngtin Họcviên

Một Uses Case Cậpnhậtđềthi Cậpnhậtgiáoviên Cậpnhậtchươngtrìnhhọc Thayđổimậtkhẩu Đăngkýhọc Học Thi DạoxemWeb Cậpnhậtthôngtin Xemđiểmthi Admin Login Họcviên Cậpnhậtthôngtin Cậpnhậtđềthi Giáoviên là một chuỗi các hành động mà hệ thống thực hiện mang lại một kết quả quan sát được .

Uses Case chứa luồng các sự kiện diễn ra trong hệ thống . Lợi ích cuả quá trình định hướng bởi Uses Case :

• Uses Case ngắn gọn , đơn giản và dễ hiểu đối với người dùng và người phát triển khi hiểu các yêu cầu chức năng cuả hệ thống .

• Uses Case định hướng nhiều hoạt động trong quy trình : tạo mô hình thiết kế , triển khai hệ thống , …

• Uses Case giúp đồng bộ hoá nội dung các mô hình khác nhau

Một phần của tài liệu thiết kế website môn lập trình mạng (Trang 61 - 65)