intTypePromotion=1

Bài giảng Công nghệ Java Servlet - Nguyễn Quang Hùng

Chia sẻ: Lavie Lavie | Ngày: | Loại File: PPT | Số trang:31

0
104
lượt xem
12
download

Bài giảng Công nghệ Java Servlet - Nguyễn Quang Hùng

Mô tả tài liệu
  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.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Công nghệ Java Servlet - Nguyễn Quang Hùng

  1. Công nghệ Java Servlet Nguyễn Quang Hùng E­mail: hungnq2@cse.hcmut.edu.vn Web site: http://www.cse.hcmut.edu.vn/~hungnq/courses.htm 1
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  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 • 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
  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 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
  9. 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
  10. 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 request­response.  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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2