1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài giảng lập trình ứng dụng mạng bài 7 GV võ tấn dũng

60 233 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

TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN TP.HCM LẬP TRÌNH ỨNG DỤNG MẠNG BÀI GIẢNG VIÊN: VÕ TẤN DŨNG GV: Võ Tấn Dũng XỬ LÝ BIẾN SESSION PHẦN GV: Võ Tấn Dũng KHÁI NIỆM SESSION HTTP giao thức phi trạng thái protocol) Khi lời yêu cầu (request) tạo từ client kết nối (connection) mở ra, đáp ứng (response) gửi từ server xuống client Sau đó, kết nối đóng lại y Nếu transaction (giao tác) thực chuỗi liên tiếp request/response liên tiếp hậu Web Server không nhớ bước request/response trước y Ví dụ, ta mua sắm online, ta chọn mặt hàng xong chuyển sang trang tính tiền Lúc Web Server không nhớ trước ta chọn mặt hàng GV: Võ Tấn Dũng y Giao thức HTTP giao thức phi trạng thái (stateless Khái niệm session có kết nối trì thường xuyên trình khách (web browser) trình chủ (web server) y Khi trình duyệt cần trình chủ cung cấp trang tài liệu, trình duyệt mở kết nối, lấy trang liệu sau đóng kết nối Vì Web Server trước trình duyệt có trạng thái y Session tượng trưng giai đoạn trì kết nối trình khách trình chủ trình liên lạc Một loạt request từ client liên kết với session GV: Võ Tấn Dũng y Ta nhận rõ điều dịch vụ Web không Khái niệm session y Như vậy, làm để server nhớ giao tác xảy trước client bất kỳ? Ta theo dõi phiên làm việc (session tracking) web client cách sau: y Lưu liệu biến ẩn form (hidden fields) y Lưu liệu đối tượng session y Lưu liệu bảng băm (hash table) y Lưu liệu toàn cục ứng dụng web đối tượng GV: Võ Tấn Dũng application PHẦN GV: Võ Tấn Dũng HIDDEN FORM FIELDS HIDDEN FORM FELDS y Ý tưởng người dùng thực thao tác submit form, form chứa số biến ẩn chứa thông tin trạng thái liên quan đến người dùng tương tác với ứng dụng y Trở ngại lớn phương pháp chương trình phải truyền biến ẩn liên tục trang có liên hệ với y Ví dụ: ta xem ví dụ slide sau Mục đích GV: Võ Tấn Dũng ví dụ giữ lại thông tin username để trang khác truy cập Login.html Login.html > Login Please log in User Name: GV: Võ Tấn Dũng GV: Võ Tấn Dũng HIDDEN FORM FELDS File Login.jsp Welcome, ! Please enter your favorite book: C/C++ Java Linux XML .NET Platform 10 GV: Võ Tấn Dũng TẠO SESSION KHÔNG CẦN COOKIES y Lớp HttpServletResponse cung cấp hai phương thức cho phép chèn session ID vào đường dẫn URL lời gọi trang Servlet: y public String encodeURL(String url) y public String encodeRedirectURL(String url) y Phương thức encodeURL encodeRedirectURL trả 46 GV: Võ Tấn Dũng đường dẫn tham chiếu URL chứa session ID y Trang RewriteDemo.jsp slide hiển thị form, xử lý nhận liệu form submit, đặt giá trị nhận từ form vào biến session 47 GV: Võ Tấn Dũng RewriteDemo.jsp 48 GV: Võ Tấn Dũng RewriteDemo.jsp 49 GV: Võ Tấn Dũng RewriteDemo2.jsp 50 GV: Võ Tấn Dũng TẠO SESSION KHÔNG CẦN COOKIES PHẦN 51 GV: Võ Tấn Dũng SỬ DỤNG ĐỐI TƯỢNG APPLICATION LƯU DỮ LIỆU TRONG APPLICATION y Lớp HttpSession cung cấp đối tượng session lưu 52 GV: Võ Tấn Dũng liệu tương ứng tách biệt người dùng Mặc dù có lúc ta cần lưu biến toàn cục để trang JSP hay Servlet thuộc session khác nhìn thấy giá trị biến y Trong JSP ta gọi đối tượng application để lưu tất biến nhìn thấy toàn cục LƯU DỮ LIỆU TRONG APPLICATION y Các phương thức mà đối tượng application cung cấp để 53 GV: Võ Tấn Dũng lưu trữ loại bỏ biến hoàn toàn tương tự phương thức mà session cung cấp LƯU DỮ LIỆU TRONG APPLICATION y Ví dụ: trang Default.jsp ứng dụng BookStore 54 GV: Võ Tấn Dũng đếm số người dùng truy cập trang web biến GlobalCounter lưu đối tượng application sau: LƯU DỮ LIỆU TRONG APPLICATION y Đối tượng application JSP thực cài đặt từ giao diện ServletContext Trong servlet ta lấy giao tiếp để dùng cho mục đích lưu biến vào đối tượng application Biến application servlet có cách sử dụng lệnh sau: y Hoặc phương thức init() Servlet, ta lấy 55 GV: Võ Tấn Dũng tham chiếu đối tượng application sau: TestVariable.jsp y Để phân biệt biến lưu session biến lưu 56 GV: Võ Tấn Dũng application khác sao, ta kiểm tra trang TestVariable.jsp sau: 57 GV: Võ Tấn Dũng TestVariable.jsp TestVariable.jsp y Ta gọi trang TestVariable.jsp hai cửa sổ trình 58 GV: Võ Tấn Dũng duyệt khác Kết giá trị biến appCount tăng liên tục biến sesCounter tăng cục cửa sổ trình duyệt 59 GV: Võ Tấn Dũng TestVariable.jsp 60 GV: Võ Tấn Dũng HẾT BÀI [...]... } } 20 GV: Võ Tấn Dũng out.println(""); PHẦN 4 21 GV: Võ Tấn Dũng SỬ DỤNG ĐỐI TƯỢNG SESSION LỚP HttpSession y Trong Java, Web server cài đặt sẵn đối tượng session 22 GV: Võ Tấn Dũng thuộc lớp HttpSession HttpSession dựa vào khái niệm cookie quy định giữa trình khách và trình chủ Cookie là một mẩu thông tin được gởi về trình duyệt phía máy khách khi có yêu cầu trang từ server Mỗi khi trình duyệt... session 28 GV: Võ Tấn Dũng Sửa lại BookServlet2 thành BookServlet3 29 GV: Võ Tấn Dũng Sửa lại BookServlet2 thành BookServlet3 CÁCH SESSION LÀM VIỆC y Khi bộ xử lý Servlet (Servlet engine) của Web server 30 GV: Võ Tấn Dũng tạo ra đối tượng session, trình chủ gửi một định danh ID của session cho trình duyệt y Trình duyệt nhận số định danh ID này và xem nó như một mẩu tin cookies y Bất kỳ khi nào trình duyệt... 12 GV: Võ Tấn Dũng } y 13 Ví dụ trên cho ta thấy, thông tin hay giá trị của username được nhập vào từ trang Login.html truyền cho trang Login.jsp Trang Login.jsp lưu giá trị này trong biến ẩn của form và chuyển tiếp cho Servlet Quá trình cứ thế tiếp diễn cho đến khi nào bạn thôi không còn muốn sử dụng thông tin của username nữa GV: Võ Tấn Dũng File BookServlet.java PHẦN 3 SỬ DỤNG HASH TABLE 14 GV: Võ. .. session.setAttribute(“tuoi”,tuoicuatui); Integer my_age = (Integer)session.getAttribute(“tuoi”); 25 GV: Võ Tấn Dũng Viết lại trang Login2.jsp dùng session 26 GV: Võ Tấn Dũng Viết lại trang Login2.jsp dùng session SỬ DỤNG ĐỐI TƯỢNG SESSION VỚI Servlet y Trong JSP có sẵn đối tượng session để sử dụng nhưng 27 GV: Võ Tấn Dũng trong Servlet thì session không có sẵn Ta phải lấy session thông qua đối tượng request y HttpSession... lưu thông tin cookies xuống đĩa cứng trừ khi bạn muốn cấu hình cơ chế lưu cookies này y Nếu một đối tượng session đã được giải phóng mà trình duyệt vẫn gửi yêu cầu gọi nó thì trình chủ sẽ phát sinh ngoại lệ IllegalStateException 32 GV: Võ Tấn Dũng CÁCH SESSION LÀM VIỆC BUỘC TRÌNH CHỦ TẠO SESSION MỚI y Ví dụ khi người dùng đăng nhập và mua hàng online 33 GV: Võ Tấn Dũng trên trang web của bạn Người... y Bất kỳ khi nào trình duyệt yêu cầu một trang tài liệu nào từ server, trình duyệt sẽ gửi ngược định danh ID này về trình chủ CÁCH SESSION LÀM VIỆC y Thông thường mẩu tin cookies sẽ được trình duyệt hủy 31 GV: Võ Tấn Dũng bỏ khi bạn đóng cửa sổ trình duyệt y Trình duyệt còn có thể lưu thông tin cookies lên đĩa cứng cho lần sử dụng kế tiếp y Bởi vì session chỉ cần tồn tại trong một khoảng thời gian... khi trình duyệt phát sinh yêu cầu gửi lên server, nó lại chuyển mẩu cookie trở lại trình chủ Dựa vào cookie, trình khách và trình chủ sẽ có được những thông tin trạng thái thông báo cho nhau SỬ DỤNG ĐỐI TƯỢNG SESSION VỚI JSP y Với đối tượng session thuộc lớp HttpSession, ba 23 GV: Võ Tấn Dũng phương thức mà ta thường sử dụng nhất là: y public void setAttribute(String name, Object value) throws IlligalStateException... DỤNG ĐỐI TƯỢNG SESSION VỚI JSP y Chú ý: Giá trị mà ta muốn lưu hay lấy về phải là một đối tượng (Object) Đối với các giá trị có kiểu int, float, boolean,… thì ta phải chuyển sang kiểu lớp tương ứng như Integer, Float, Boolean,… y Ví dụ: 24 GV: Võ Tấn Dũng Integer tuoicuatui= new Integer(35); session.setAttribute(“tuoi”,tuoicuatui); Integer my_age = (Integer)session.getAttribute(“tuoi”); 25 GV: Võ Tấn. .. Sau đó người dùng có thể truyền trực tiếp giá trị cho username ngay trên đường dẫn: 15 GV: Võ Tấn Dũng y http://localhost:8080/BookServlet?username=abc&book=Java SỬ DỤNG HASH TABLE Form, ta dùng cơ chế bảng băm (Hash Table) y Khi việc chứng thực username/password thành công, bạn sinh ra một khóa ngẫu nhiên tương ứng với username Khóa này được đặt trong biến ẩn của Form đồng thời lưu giá trị thực tế... SỬ DỤNG HASH TABLE 14 GV: Võ Tấn Dũng (dùng để bảo mật các biến ẩn của Form) SỬ DỤNG HASH TABLE y Một trong những lý do mà biến ẩn của Form không được sử dụng nhiều trong các ứng dụng Web thương mại nhất là các site e-commerce đó là tính không bảo mật của giá trị và tên biến y Với ví dụ BookServlet của các slide trước, người dùng có thể đánh lừa BookServlet bằng cách dùng trình duyệt xem code HTML mà ... session 37 GV: Võ Tấn Dũng y valueBound gọi đối tượng ràng buộc 38 GV: Võ Tấn Dũng BindListener.java 39 GV: Võ Tấn Dũng BindListener.java 40 GV: Võ Tấn Dũng BindTest.jsp 41 GV: Võ Tấn Dũng BindTest.jsp... Dũng RewriteDemo.jsp 48 GV: Võ Tấn Dũng RewriteDemo.jsp 49 GV: Võ Tấn Dũng RewriteDemo2.jsp 50 GV: Võ Tấn Dũng TẠO SESSION KHÔNG CẦN COOKIES PHẦN 51 GV: Võ Tấn Dũng SỬ DỤNG ĐỐI TƯỢNG APPLICATION... out.println(""); } } 20 GV: Võ Tấn Dũng out.println(""); PHẦN 21 GV: Võ Tấn Dũng SỬ DỤNG ĐỐI TƯỢNG SESSION LỚP HttpSession y Trong Java, Web server cài đặt sẵn đối tượng session 22 GV: Võ Tấn Dũng thuộc

Ngày đăng: 03/12/2015, 13:53

Xem thêm: Bài giảng lập trình ứng dụng mạng bài 7 GV võ tấn dũng

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w