Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 50 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
50
Dung lượng
363 KB
Nội dung
3. Tổng quan Servlet 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. Giới thiệu servlet. Chu trình servlet. Yêu cầu đồng thời. Đối tượng ServletConfig ServletContext. Đối tượng ServletRequest ServletResponse. Xử lý liệu. 3.1. Giới thiệu Servlet Servlet thành phần J2EE phía server ứng dụng theo kiến trúc J2EE thực logic nghiệp cho HTTP request. Nó chạy phía server (không chạy client) Là class Java chạy môi trường JVM trình chứa Web. Là Web component quản lý trình chứa Web. Để tạo servlet, kiến trúc J2EE cung cấp Servlet API (một tập hợp class java định nghĩa giao tiếp chuẩn Web client Web Server). Giới thiệu Servlet (tiếp) •Servlet API bao gồm hai package: - javax.servlet - javax.servlet.http •Một servlet kế thừa từ hai lớp javax.servlet.GenericServlet javax.servlet.http.HttpServlet javax.servlet.Servlet implements javax.servlet.GenericServlet javax.servlet.http.HttpServlet •Trong môi trường web, giao thức HTTP sử dụng Web client Web server. Vì servlet thường kế thừa từ lớp javax.servle.http.HttpServlet, sau viết chồng hàm phương thức cần thiết để phục vụ yêu cầu từ client. Giới thiệu Servlet (tiếp) Các phương thức cần viết chồng hàm service (hoặc doGet, doPost), init, destroy. Khi có yêu cầu gửi đến server, phương thức service (hoặc doGet, doPost), gọi truyền theo tham số: HttpServletRequest: cung cấp truy cập tới liệu yêu cầu từ client, thông tin phiên làm việc. HttpServletResponse: cung cấp dịch vụ cho phép servlet tạo trả lời cho yêu cầu client. Giới thiệu Servlet: Luồng xử lý Servlet URL Request Servlet Instance Response Browser (client) 1. Web Server Application Server Client yêu cầu servlet, tên servlet phần URL (vd: http://www.music.com/music/SearchServlet). Giới thiệu Servlet: Luồng xử lý Servlet (tiếp) 2. 3. 4. 5. Web server nhận yêu cầu (request) gửi tới servlet engine, nơi mà quản lý tạo thể servlet. Servlet engine gọi phương thức service (hoặc doPost, doGet) servlet để xử lý yêu cầu. Servlet tiếp nhận yêu cầu với tham số, tài nguyên khác, sau xử lý tạo kết trả lời tương ứng (response) chuyển kết cho Web server. Web server gửi trả kết (response) cho client. 3.2. Chu trình Servlet Tạo Khởi tạo Không thể Phục vụ Khởi tạo Thành công Sẵn sàng Phục vụ Khởi tạo thất bại Exception Huỷ bỏ Xử lý Yêu cầu Dỡ bỏ Chu trình Servlet (tiếp) Servlet quản lý thông qua chu trình cách tạo ra, khởi tạo, xử lý yêu cầu từ client huỷ bỏ: 1. Tạo mới: – Trình chứa Servlet chịu trách nhiệm nạp tạo thể (instance) servlet. Quá trình thực trình chứa khởi động trình chứa xác định servlet cần nạp để xử lý yêu cầu. Chu trình Servlet (tiếp) – Khi servlet engine khởi động, servlet cần thiết định vị trình chứa servlet, trình chứa nạp servlet, sau tạo thể để sử dụng. 2.Khởi tạo – – Đọc tham số cấu hình, thực hành động thực lần khởi tạo tài nguyên cần thiết. Sau thể servlet tạo ra, phải khởi tạo trước xử lý yêu cầu từ client. Chu trình Servlet (tiếp) – – Phương thức init gọi để thực trình khởi tạo nạp giá trị mặc định. Có phương thức init, phương thức tham số, phương thức nhận đối tượng ServletConfig tham số. Phương thức cho phép servlet truy cập cặp “Tên - Giá trị” tham số khởi tạo. Đối tượng ServletConfig chứa thông tin cấu hình servlet, cho phép truy cập tới đối tượng ServletContext (là đối tượng chứa thông tin môi trường servlet). Đối tượng ServletRequest ServletResponse: ServletRequest (tiếp) Public Enumeration getHeaderNames(): trả lại danh sách tất tên header. Public Enumeration getHeader(String name): trả lại mảng giá trị header có tên name. Ví dụ: HTML Form Please fill out this form with your name. Thanks! Please enter your name: First name: [...]... cập Do servlet đơn luồng làm giảm tốc độ và hiệu năng của hệ thống, vì vậy nên tránh dùng nó 3.4 Đối tượng ServletConfig và ServletContext: ServletConfig Được trình chứa servlet sử dụng để truyền thông tin cho servlet trong suốt quá trình khởi tạo của servlet Lưu trữ thông tin cấu hình của servlet Mỗi servlet trên một server chỉ có duy nhất một đối tượng ServletConfig Lấy về đối tượng ServletConfig... các tham số khởi tạo Lấy về đối tượng ServletContext: public ServletContext getServletContext(); Ví dụ: Khai báo servlet RegistrationServlet< /servlet- name> RegistrationServlet com.ibm.exam .servlet. RegistrationServlet < /servlet- class> MaxTries 4 ... doPost Đối tượng ServletRequest và ServletResponse: ServletRequest (tiếp) Tham số của ServletRequest là các chuỗi được gửi từ client tới trình chứa servlet Khi ServletRequest là một đối tượng có kiểu HttpServletRequest thì trình chứa sẽ thao tác với các tham số từ URI query string (GET) hoặc từ post body (POST) Dữ liệu từ query string và post body được kết hợp thành tập các tham số ServletRequest... Sau khi thực hiện yêu cầu, một servlet có thể được giữ lại ở trình chứa thêm một khoảng thời gian nữa (tuỳ thuộc vào cấu hình) Chu trình Servlet (tiếp) – – Khi trình chứa thấy rằng một servlet nên được gỡ bỏ nó sẽ gọi phương thức destroy để giải phóng tất cả tài nguyên sử dụng cho servlet và lưu lại những trạng thái thường trú của servlet Điều này có thể thực hiện khi trình chứa cần lấy lại tài nguyên... cầu từ client, xử lý và trả lời lại cho web server Trình chứa Servlet cung cấp hai đối tượng: yêu cầu kiểu ServletRequest và trả lời kiểu ServletResponse Hai đối tượng này là 2 tham số cho phương thức service Chu trình Servlet (tiếp) – – Trong trường hợp yêu cầu có dạng là HTTP, các đối tượng được trình chứa cung cấp có kiểu HttpServletRequest và HttpServletResponse Các phương thức service, doGet, doPost,... 1 < /servlet> RegistrationServlet< /servlet- name> Register < /servlet- mapping> Ví dụ: Lấy tham số khởi tạo // Phương thức khởi tạo public void init() { String maxTries; String autoSave; maxTries = getInitParameter("MaxTries"); autoSave = getInitParameter("AutoSave"); … //Xử lý } hoặc public void init() { ServletConfig config = getServletConfig();... Đối tượng ServletConfig và ServletContext: ServletContext Là đối tượng chứa thông tin về môi trường, trạng thái của servlet khi nó đang hoạt động Nhờ đó servlet có thể log các sự kiện, truy cập tài nguyên, thay đổi các thuộc tính mà các servet trong cùng context có thể truy cập Mỗi ứng dụng web cài đặt trên một trình chứa Web chỉ có duy nhất một thể hiện của ServletContext Trường hợp trình chứa... khi trình chứa servlet gọi phương thức destroy nó phải cho phép tất cả các luồng đang chạy trong phương thức service hoàn thành Chu trình Servlet (tiếp) – – Khi phương thức destroy đã được gọi, trình chứa sẽ không gửi các yêu cầu khác đến thể hiện này nữa, nếu cần thì nó sẽ làm điều này với một thể hiện mới của servlet Sau khi phương thức destroy hoàn thành trình chứa sẽ giải phóng thể hiện của servlet. .. Public void removeAttribute(String name): xóa bỏ thuộc tính có tên là name từ servlet context Đối tượng ServletConfig và ServletContext: ServletContext (tiếp) Truy cập tài nguyên: public URL getResource(String path) public InputStream getResourceAsStream(String path) 3.5 Đối tượng ServletRequest và ServletResponse: ServletRequest Web Browser HTTP Response Network Client HTTP Request Web Server... thức getServletConfig() Đối tượng ServletConfig và ServletContext: ServletConfig (tiếp) Một số phương thức: Lấy về tham số khởi tạo (một cặp Tên – Giá trị): public String getInitParameter(String name): trả về giá trị của tham số có tên là name public Enumeration getInitParameterNames(): trả về tập hợp tên các tham số khởi tạo Lấy về đối tượng ServletContext: public ServletContext getServletContext(); . về Servlet (tiếp) • Servlet API bao gồm hai package: - javax .servlet - javax .servlet. http • Một servlet có thể kế thừa từ hai lớp javax .servlet. GenericServlet hoặc javax .servlet. http.HttpServlet • Trong. Tổng quan về Servlet 3.1. Giới thiệu về servlet. 3.2. Chu trình servlet. 3.3. Yêu cầu đồng thời. 3.4. Đối tượng ServletConfig và ServletContext. 3.5. Đối tượng ServletRequest và ServletResponse. 3.6 servlet. Quá trình này sẽ được thực hiện khi trình chứa được khởi động hoặc khi trình chứa xác định rằng servlet cần được nạp để xử lý các yêu cầu. Chu trình Servlet (tiếp) – Khi servlet engine