Chuyên đề Servlet Basic

Nội dung trình bày

 Nhiệm vụ của Servlet

 Servlet với cấu trúc đơn giản

 Custom URL cho Servlet

 Chu kỳ sống của Servlet

 Xây dựng một số chức năng cho BookOnline với Servlet

– Trang chủ

– Trang hiển thị sách theo danh mục có phân trang

– Xem chi tiết sách

pdf30 trang | Chia sẻ: Thành Đồng | Ngày: 11/09/2024 | Lượt xem: 26 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Chuyên đề Servlet Basic, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
SERVLET BASIC CHUYÊN ĐỀ JAVA Nguyễn Hoàng Anh Email: nhanh@fit.hcmus.edu.vn ĐH KHTN, 2011 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 Nội dung trình bày  Nhiệm vụ của Servlet  Servlet với cấu trúc đơn giản  Custom URL cho Servlet  Chu kỳ sống của Servlet  Xây dựng một số chức năng cho BookOnline với Servlet – Trang chủ – Trang hiển thị sách theo danh mục có phân trang – Xem chi tiết sách 2 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 Nhiệm vụ của Servlet 3 Web Browser Web Server Servlet Request Response Request Response Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 Nhiệm vụ của Servlet  Đọc dữ liệu từ Client – Tường minh: Form Data – Ngầm định: Request Headers  Xử lý đọc, thêm, xóa, sửa dữ liệu từ cơ sở dữ liệu  Phát sinh kết quả – HTML, XML, Excel,  Trả kết quả về cho Client – Tường minh: HTML, XML, Excel,. – Ngầm định: Status Codes, Response Headers 4 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 HTTP GET & HTTP POST  Hai cơ chế Request thông dụng nhất từ Client – HTTP GET và HTTP POST  HTTP GET Request – Thông tin gửi đính kèm vào cuối URL – Dữ liệu gửi bị giới hạn • ../XemSanPham?id=S001&Trang=1  HTTP POST Request – Thông tin gửi xem như dữ liệu (không đính kèm vào URL) – Không giới hạn dung lượng gửi Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 Servlet với cấu trúc đơn giản 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 @WebServlet(name="ServletSample", urlPatterns={"/ServletSample"}) public class ServletSample extends HttpServlet { protected void processRequest (HttpServletRequest request, HttpServletResponse response){ ... } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response){ processRequest (request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) { processRequest (request, response); } } Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 Servlet với cấu trúc đơn giản 7 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { out.println(""); out.println(""); out.println("Servlet ServletSample"); out.println(""); out.println(""); out.println("Xin chào Nguyễn Hoàng Anh"); out.println(""); out.println(""); } finally { out.close(); } } Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 Servlet với cấu trúc đơn giản 8 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 Custom URL 9 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 @WebServlet(name="ServletSample", urlPatterns={"/NewServlet"}) public class ServletSample extends HttpServlet { protected void processRequest (HttpServletRequest request, HttpServletResponse response){ ... } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response){ processRequest (request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) { processRequest (request, response); } } Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 Custom URL 10 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 service() doPost() do () doGet() Chu kỳ sống của servlet 11 init() destroy() 1 2* 3 Phương thức khởi tạo Phương thức hủy Phương thức phục vụ Request Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 Chu kỳ sống của servlet 12 - Được tự động gọi thực hiện khi server tạo thể hiện Servlet - Được xem như là phương thức khởi tạo Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 Chu kỳ sống của servlet 13 @WebServlet(name="ServletSample", urlPatterns={"/ServletSample"}) public class ServletSample extends HttpServlet { private KieuDuLieu thuocTinh1; private KieuDuLieu thuocTinh2; ... private KieuDuLieu thuocTinhN; @Override public void init(){ super.init(); //Khởi tạo thuocTinh1 //Khởi tạo thuocTinh2 ... //Khởi tạo thuocTinhn } protected void processRequest(...){...} @Override protected void doGet(...){...} @Override protected void doPost(...){...} } Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 Chu kỳ sống của servlet 14 @WebServlet(name="ServletSample", urlPatterns={"/ServletSample"}) public class ServletSample extends HttpServlet { private ArrayList ds; @Override public void init(){ super.init(); ds=DanhMucDAO.layDanhSachDanhMuc(); } protected void processRequest(...){ Sử dụng ds } @Override protected void doGet(...){...} @Override protected void doPost(...){...} } Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 Chu kỳ sống của servlet 15 - Nhận xử lý tất cả các request từ client - Phương thức service tự động được gọi thực hiện khi request từ client gửi đến - Chuyển request của client đến doGet(), doPost(), do () tương ứng từ client - Điều kiện: phương thức init () đã được gọi - Không cài đặt lại phương thức này Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 Chu kỳ sống của servlet 16 - Request được service() chuyển đến doGet(), doPost(), do () tương ứng phụ thuộc từ client - Xử lý GET, POST, từ request - Cần cài đặt lại phương thức doGet(), doPost(), do () để xử lý request tương ứng từ client Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 Chu kỳ sống của servlet 17 - Được tự động gọi thực hiện khi server hủy thể hiện của Servlet - Được xem như là phương thức hủy Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 Chu kỳ sống của servlet 18 @WebServlet(name="ServletSample", urlPatterns={"/ServletSample"}) public class ServletSample extends HttpServlet { private KieuDuLieu thuocTinh1; private KieuDuLieu thuocTinh2; ... private KieuDuLieu thuocTinhN; @Override public void init(){...} @Override public void destroy(){ Giải phóng thuocTinh1, 2, ..,n } protected void processRequest(...){...} @Override protected void doGet(...){...} @Override protected void doPost(...){...} } Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 Chu kỳ sống của servlet 19 @WebServlet(name="ServletSample", urlPatterns={"/ServletSample"}) public class ServletSample extends HttpServlet { private ArrayList ds; @Override public void init(){ super.init(); ds=DanhMucDAO.layDanhSachDanhMuc(); } @Override public void destroy(){ ds = null; } protected void processRequest(...){...} @Override protected void doGet(...){...} @Override protected void doPost(...){...} } Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 BookOnline – Các chức năng  Khách hàng có thể xem trang chủ của ứng dụng web.  Trong lúc xem trang chủ khách hàng có thể chọn chức năng xem danh sách các đầu sách theo danh mục có phân trang, số đầu sách trên trang là 5 (số này có thể thay đổi).  Thông tin danh mục bao gồm: mã danh mục, tên danh mục  Thông tin sách bao gồm mã sách, tên sách, giá bán, số lượng tồn, tác giả, mã danh mục, hình ảnh 20 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 BookOnline – Sơ đồ use case 21 Xem Danh Sach Cac Dau Sach Theo Danh Muc Co Phan Trang Khachhang Xem Trang Chu > Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 BookOnline – Cơ sở dữ liệu 22 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 BookOnline – Mô hình xây dựng (2 Layer) 23 DATABASE Data Layer Presentation Layer Java Beans (POJO) Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 BookOnline – Mô hình xây dựng (2 Layer) 24 DATABASE Data Layer (JDBC) Presentation Layer (Servlet) Java Beans (POJO) Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 BookOnline – Xây dựng trang chủ  Bước 1: Thiết kế trang chủ bằng HTML với Dreamweaver  Bước 2: Sử dụng công cụ Html2Servlet.exe để chuyển đoạn html thành Servlet (được cung cấp) – Đơn giản thêm out.println vào mỗi dòng HTML  Bước 3: Tạo Servlet TrangChu.java – Chép đoạn mã servlet từ bước 2 vào phương thức processRequest Chi tiết xem: BookOnline-Servlet-Trang-Chu.avi 25 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 BookOnline – Xây dựng xem danh sách đầu sách  Bước 1: Thiết kế trang xem danh sách đầu sách bằng HTML với Dreamweaver (thiết kế mẫu)  Bước 2: Sử dụng công cụ Html2Servlet.exe để chuyển đoạn html thành Servlet (được cung cấp)  Bước 3: Tạo Servlet Sach.java – Chép đoạn mã servlet từ bước 2 vào phương thức processRequest  Bước 4: Xây dựng lớp DanhMucPOJO, SachPOJO 26 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 BookOnline – Xây dựng xem danh sách đầu sách  Bước 5: Xây dựng lớp ThamSoDAO – Lấy số lượng sản phẩm trên trang  Bước 6: Xây dựng lớp DanhMucDAO – Lấy danh sách danh mục – Tính số lượng sản phẩm theo danh mục – Tính số lượng trang theo danh mục 27 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 BookOnline – Xây dựng xem danh sách đầu sách  Bước 7: Xây dựng lớp SachDAO – Lấy danh sách sách theo danh mục và trang  Bước 8: Sử dụng phương thức từ các DAO và POJO vào các đoạn động tương ứng trong Servlet Sach.java  Chi tiết xem video: – BookOnline-Servlet-Xem-Danh-Sach-Dau-Sach- Theo-Danh-Muc-Co-Phan-Trang.avi 28 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 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 – 29 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 HỎI VÀ ĐÁP 30

Các file đính kèm theo tài liệu này:

  • pdfchuyen_de_servlet_basic.pdf
Tài liệu liên quan