YOMEDIA
ADSENSE
Bài giảng Công nghệ Java Servlet - Nguyễn Quang Hùng
158
lượt xem 16
download
lượt xem 16
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Bài giảng Công nghệ Java Servlet do Nguyễn Quang Hùng biên soạn nhằm mục tiêu giúp cho các bạn hiểu về tổng quan công nghệ Java Servlet; kiến trúc của J2EE; giới thiệu Java Servlet; mô hình Java Servlet; lập trình Java Servlet.
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Công nghệ Java Servlet - Nguyễn Quang Hùng
- Công nghệ Java Servlet Nguyễn Quang Hùng Email: hungnq2@cse.hcmut.edu.vn Web site: http://www.cse.hcmut.edu.vn/~hungnq/courses.htm 1
- Mục tiêu Học về công nghệ Java Servlet. Bài tập: ứng dụng danh bạ điện thoại bằng Java Servlet. Nguyễn Quang Hùng 2
- Mục lục Tài liệu tham khảo Tổng quan Kiến trúc của J2EE Java Servlet Giới thiệu Mô hình Lập trình servlet Ví dụ: ứng dụng danh bạ điện thoại bằng servlet Nguyễn Quang Hùng 3
- Tài liệu tham khảo về Servlet và JSP 1. Professional Java Server Programming J2EE edition, Wrox Press, 2000. 2. Core Servlet and JSP, Orielly, 2000. 3. Sun blueprints: http://java.sun.com/tutorials 4. Sun J2SE document API 5. IBM Developer web site: www.ibm.com/developers Nguyễn Quang Hùng 4
- Tổng quan về công nghệ Java Kiến trúc J2EE bao gồm nhiều kỹ thuật lập trình phía server như: Servlet JSP Enterprise Java Bean … Nguyễn Quang Hùng 5
- Kiến trúc của J2EE Web Container Web client (X)HTML / Servlet JSP Tag XML objects pages Library HTTP(S) RMI/IIOP, JDBC, JMS, Applet JavaMail, JNDI JDBC RDBMS Nguyễn Quang Hùng 6
- Kiến trúc của J2EE Web Container Web client Servlet JSP Tag (X)HTML / objects pages Library XML HTTP(S) RMI/IIOP, JDBC, JMS, Applet JavaMail, JNDI • Web clients: trình duyệt hoặc một ứng JDBC dụng quản lý các tương tác của người dùng, hiển thị các trang web dạng HTML. RDBMS • HTML và Javascript hay DHTML, XML sẽ tạo các chức năng tương tác hữu dụng phía client • HTTP hoặc HTTPS là giao thức chuyển đổi thông tin của web client và các ứng dụng web trên web server. Nguyễn Quang Hùng 7
- Kiến trúc của J2EE Web Container Web client Servlet JSP Tag (X)HTML / objects pages Library XML HTTP(S) RMI/IIOP, JDBC, JMS, Applet JavaMail, JNDI J2EE cung cấp: JDBC • Web container. • Java Servlet API. RDBMS • JavaServer Page (JSP) API. Để xây dựng và quản lý các ứng dụng web. Nguyễn Quang Hùng 8
- Kiến trúc của J2EE Web Container Web client Servlet JSP Tag (X)HTML / objects pages Library XML HTTP(S) RMI/IIOP, JDBC, JMS, Applet JavaMail, JNDI Web container: JDBC • Cung cấp môi trường runtime và framework hỗ trợ các ứng dụng web. RDBMS • Ví dụ: Tomcat, Jboss, J2EE implementation, IBM WebSphere Application Server, BEA Web Logic, Oracle Application Server… Nguyễn Quang Hùng 9
- Java Servlet Java servlet là những chương trình độc lập platform và nhỏ chạy ở phía server được lập trình để mở rộng chức năng của web server. Nghĩa là bạn có thể nhúng logic của ứng dụng riêng vào việc xử lý các HTTP request và tạo HTTP response. Java servlet giống như CGI nhưng tốt hơn trong việc xử lý HTTP requestresponse. Java servlet không thể gọi từ client mà web container chứa ứng dụng web có server sẽ bị gọi. Nguyễn Quang Hùng 10
- Quy trình cơ bản khi web server nhận một HTTP request Uses the mapping Information J2EE 3 Web Application HTTP Req 2 Web 1 Container 4 Servlet/JSP Web Web 5 instances browser Server 6 Static HTTP resources Res Static resources One or more Servlets or JSP Nguyễn Quang Hùng 11
- Quy trình cơ bản khi web server nhận một HTTP request Có 5 bước: 1. Web server phải cấu hình để nhận biết request đi vào là tương ứng với ứng dụng web nào trong J2EE web container. Web container dùng server context để xác định các ứng dụng web. 2. Khi ứng dụng nhận thấy web container nên nắm bắt request này, web server sẽ uỷ quyền request cho web container. Giống như web server gọi hàm cục bộ/từ xa đến web container. 3. Khi web container nhận request, nó quyết định ứng dụng nào nên xử lý request này. Trong J2EE, mỗi request có thể ánh xạ xuống một servlet hay JSP page, hoặc một tài nguyên tĩnh (dựa vào URL như HTML, XML, ảnh, applet…) . Khi đóng gói ứng dụng web thì xác định luôn việc mapping này. Còn web container sẽ dùng thông tin này để map mỗi request đi vào đến một servlet hay JSP, hoặc một tài nguyên tĩnh. Nếu là tài nguyên tĩnh thì chuyển toàn bộ dữ liệu vể web server và web server trả về client Nguyễn Quang Hùng 12
- Java servlet một quy trình cơ bản khi web server nhận một HTTP request 4. Nếu request nên bị xử lý bởi servlet thì web container sẽ tạo hoặc định vị một thực thể servlet rồi uỷ quyền request đến servlet. 5. Khi uỷ quyền, web container truyền các đối tượng đóng gói HTTP request và response. Đối với servlet, những đối tượng này diễn tả request và response stream từ/đến trình duyệt. Servlet có thể đọc hoặc ghi dữ liệu vào các request và response stream này. Servlet có thể dùng java.io.PrintWriter và println() để ghi dữ liệu vào response stream. Điều này giống như ghi dữ liệu vào cầu nối TCP đã mở từ trình duyệt. Nguyễn Quang Hùng 13
- Vòng đời của servlet Không tồn tại Tạo ra (Doses not exist) (Instantiated) Không sẳn Sẳn sàng phục vụ sàng request (Instaniated Unavailable & Ready) Huỷ Phục vụ (Destroyed) (Service) Nguyễn Quang Hùng 14
- Vòng đời của servlet Không tồn tại Tạo ra (Instantiated) (Doses not exist) Không sẳn sàng Sẳn sàng phục vụ request Unavailable (Instaniated & Ready) Huỷ Phục vụ (Destroyed) (Service) Vòng đời của servlet gồm 6 trạng thái: Tạo ra: web container tạo một thực thể servlet Sẳn sàng phục vụ: gọi method init() của servlet Phục vụ: nếu có một request thì container sẽ gọi method service() của thực thể. Huỷ: container gọi method destroy() của servlet. Không sẳn sàng: thực thể được đánh dấu cho garbage collection. Nguyễn Quang Hùng 15
- ServletContainer thread 1 thread 2 Servlet create thread pool Instantiate servlet instance Call init() method Perform initialization allocate request to thread call service() method HTTP request 1 come allocate request to thread call service() method HTTP request 2 come HTTP Response 1 Block all further requests until exists ready thread HTTP Response 2 Nguyễn Quang Hùng 16
- Lập trình với Java servlet API Java Servlet API gồm: javax.servlet.* Chứa các class và interface độc lập với HTTP javax.servlet.http.* Chứa các class cụ thể cho HTTP Tất cả sevlet đều phải hiện thực giao diện javax.servlet.Servlet. Tuy nhiên do chúng ta dùng giao thức HTTP và javax.servlet.http.HttpServlet là lớp hiện thực giao diện Servlet, nên thường ta phải kế thừa từ lớp này và override doGet() và/hay doPost(). Nguyễn Quang Hùng 17
- Lập trình với Java servlet API (tiếp) Mục đích Class/Interface Hiện thực servlet javax.servlet.Servlet javax.servlet.SingleThreadModel javax.servlet.GenericServlet javax.servlet.http.HttpServlet Cấu hình sevlet javax.servlet.ServletConfig Servlet Exception javax.servlet.ServletException Requests javax.servlet.ServletRequest javax.servlet.http.HttpServletRequest javax.servlet.ServletInputStream Nguyễn Quang Hùng 18
- Lập trình với Java servlet API (tiếp) Mục đích Class/Interface Responses javax.servlet.ServletResponse javax.servlet.http.HttpServletResponse javax.servlet.ServletOutput Session tracking Javax.servlet.http.HttpSession Java.servlet.http.HttpSessionBindingListener Servlet context Javax.servlet.ServletContext Servlet collaboration Javax.servlet.RequestDispatcher Khác Javax.servlet.http.Cookie Java.servlet.http.HttpUtils Nguyễn Quang Hùng 19
- API cho HttpServletRequest 1. Object getAttribute(String name) 2. void setAttribute(String name, Object att ) 3. Enumeration getAttributeNames() 4. int getContentLength() 5. String getParameter(String name) 6. Enumeration getParameterNames() 7. Enumeration getParameterValues() 8. String getRemoteHost() 9. RequestDispatcher getRequestDispatcher( String path ) 10. boolean isSecure() 11. ServletInputStream getServletInputStream() 12. int getContentLength() 13. … Nguyễn Quang Hùng 20
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn