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 6 GV võ tấn dũng

45 354 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

Thông tin cơ bản

Định dạng
Số trang 45
Dung lượng 416,02 KB

Nội dung

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 SERVLET PHẦN GV: Võ Tấn Dũng TỔNG QUAN SERVLET TỔNG QUAN SERVLET Các vấn đề trình bày phần này: Giới thiệu Servlet (Servlet gì?) Luồng xử lý Servlet Các thư mục Web Tomcat server Chu trình sống Servlet Sáu bước để xây dựng chạy servlet GV: Võ Tấn Dũng – – – – – GIỚI THIỆU SERVLET GV: Võ Tấn Dũng • Servlet lớp Java nạp tự động chạy web server có hỗ trợ Java Những server gọi Servlet Container (hay Java Server) • Servlet tương tác với web client theo mô hình requestresponse dựa theo giao thức HTTP Một số Servlet Container hỗ trợ giao thức HTTPS (HTTP over SSL) dành cho giao tác có tính bảo mật • Kiến trúc hoạt động: LUỒNG XỬ LÝ SERVLET GV: Võ Tấn Dũng Luồng xử lý servlet diễn qua bước sau: • Client yêu cầu servlet, tên servlet phần URL (vd: http://www.music.com/music/SearchServlet) 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 (Web Browser) Để chạy servlet cần phải có: • Cần có package servlet.jar để biên dịch (http://java.sun.com/products/servlet/) Java không chứa lớp gói servlet, trường hơp phải biến môi trường CLASSPATH đến tập tin servlet.jar, servlet-api.jar Các tập tin có kèm theo Web Server có hỗ trợ Java • Các Web Server hỗ trợ Servlet, có: – Apache Tomcat (http://jakarta.apache.org) – Sun’s Java Web Server, free, không cho download (http://wwws.sun.com/software/jwebserver/) – New Atlanta’s ServletExec, tích hợp ServletEngine vào web server(http://newatlanta.com) – http://www.macromedia.com/software/jrun/trial/ –… (Tham khảo tài liệu Servlet: http://java.sun.com/products/servlet/docs.html) GV: Võ Tấn Dũng GIỚI THIỆU SERVLET //HelloWorldServlet.java import javax.servlet.*; import java.io.*; public class helloWorldServlet extends GenericServlet{ public void service(ServletRequest request, ServletResponse response) throws IOException { response.setContentType(“text/html”); PrintWriter out=response.getWriter(); out.println(“”); out.println(“”); out.println(“Hello World Servlet!”); out.println(“”); out.println(“”); } } GV: Võ Tấn Dũng Ví dụ servlet đơn giản: “Hello” Servlet • Đối với Tomcat Web Server, ứng dụng web lưu trữ thư mục riêng, chứa thư mục webapps (của thư mục Tomcat cài đặt lên đĩa) Mỗi ứng dụng cần có tập tin web.xml để mô tả yếu tố riêng, đặt thư mục WEB-INF ứng dụng • Ví dụ ta xây dựng ứng dụng Web cách tạo thư mục myApp tương ứng thư mục webapps Tên thư mục xuất URL ta gọi servlet • Tạo thư mục WEB-INF thư mục myApp, tạo thư mục tên classes WEB-INF Cấu trúc thư mục trình bày slide sau Nếu ta có file HTML đặt chúng trực tiếp vào thư mục myApp Ta nên tạo thư mục tên images myApp để chưa file hình cho web GV: Võ Tấn Dũng CÁC THƯ MỤC WEB TRONG TOMCAT GV: Võ Tấn Dũng CÁC THƯ MỤC WEB TRONG TOMCAT Chu trình sống Servlet 10 GV: Võ Tấn Dũng • Chu trình sống Servlet bắt đầu hệ thống triệu gọi (gọi nạp vào nhớ) bị loại khỏi trình chủ Web server Trải qua giai đoạn sau: ™ Nạp servlet ™ Khởi tạo servlet ™ Thực thi servlet ™ Dọn dẹp servlet VD2: Servlet sinh HTML public class ServletUtilities { public static final String DOCTYPE = ""; public static String headWithTitle(String title) { return(DOCTYPE + "\n" + "\n" + "" + title + "\n"); } } public class HelloWWW2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(ServletUtilities.headWithTitle("Hello WWW") + "\n" + "Hello WWW\n" + ""); } } 31 GV: Võ Tấn Dũng Viết lại VD2 hàm import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; public class ThreeParams extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); String title = "Reading Three Request Parameters"; out.println(ServletUtilities.headWithTitle(title) + "\n" + "" + title + "\n" + "\n" + " param1: “ + request.getParameter("param1") + "\n" + " param2: “ + request.getParameter("param2") + "\n" + " param3: “ + request.getParameter("param3") + "\n" + "\n" + ""); } //còn tiếp slide sau 32 GV: Võ Tấn Dũng VD3: Đọc tham số từ địa VD3: Đọc tham số từ địa 33 GV: Võ Tấn Dũng public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } A Sample FORM using POST A Sample FORM using POST [...]... Chu trình sống của Servlet 15 GV: Võ Tấn Dũng Vòng đời của Servlet được tóm tắt bằng hình vẽ sau: Sáu bước chạy một servlet 16 GV: Võ Tấn Dũng 1 Tạo một thư mục trong Tomcat web server cho ứng dụng web của mình 2 Viết code cho một servlet Khi viết, đầu tiên ta phải import hai gói sau: javax.servlet và javax.servlet.http 3 Biên dịch code của servlet 4 Tạo một mô tả sử dụng (description) 5 Chạy Tomcat 6. .. trùng với tên lớp của servlet hoặc tên mà ta đăng ký với trình chủ trong quá trình đăng ký và ánh xạ Chu trình sống của Servlet Giai đoạn Khởi tạo servlet: 12 GV: Võ Tấn Dũng • Khi có một yêu cầu gọi servlet, trình chủ Web server sẽ xem servlet được nạp vào bộ nhớ hay chưa Khi servlet đã được nạp thì server chuyển sang giai đoạn khởi tạo servlet • Trình chủ web server khởi tạo servlet bằng cách gọi đến... Gọi servlet từ một trình duyệt web PHẦN 2 17 GV: Võ Tấn Dũng VIẾT SERVLET Servlet API • Servlet API bao có hai package cần javax.servlet.Servlet thiết: implements - javax.servlet - javax.servlet.http javax.servlet.GenericServlet • Một servlet có thể kế thừa từ hai lớp: •javax.servlet.GenericServlet hoặc javax.servlet.http.HttpServlet •javax.servlet.http.HttpServlet 18 GV: Võ Tấn Dũng • Trong môi trường... =DriverManager.getConnection(strConn); } service() method 22 GV: Võ Tấn Dũng • Phương thức này được xem là trung tâm xử lý của servlet mà ta cài đặt • Bên trong phương thức service có hai đối tượng tham số: - HttpServletRequest: biểu diễn yêu cầu của client từ Web browser gửi lên - HttpServletResponese: mô tả đáp ứng của server gửi đến Web browser service() method Ví dụ: 23 GV: Võ Tấn Dũng import java.io.*; import javax.servlet.*;... 32 GV: Võ Tấn Dũng VD3: Đọc tham số từ thanh địa chỉ VD3: Đọc tham số từ thanh địa chỉ 33 GV: Võ Tấn Dũng public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } A Sample FORM using POST ... NAME="cardNum"> Repeat Credit Card Number: 35 GV: Võ Tấn Dũng VD4: Liệt kê dữ liệu từ một FORM 36 GV: Võ Tấn Dũng VD4: Liệt kê dữ liệu từ một FORM ... req, ServletResponese res); } init() method 20 GV: Võ Tấn Dũng • Được gọi khi Web server nạp servlet • Để khởi tạo biến môi trường, các biến toàn cục, các giá trị ban đầu • Tạo sẵn các kết nối socket, các kết nối CSDL, nạp các thư viện cần thiết,v…v… • Phương thức init() chỉ được gọi một lần khi Web server nạp servlet init() method Ví dụ: 21 GV: Võ Tấn Dũng public class ShoppingCartDB extends GenericServlet... resp) throws Exception { processRequest(req, resp); } public processRequest(HttpServletRequest req, HttpServletResponse resp) throws Exeption { // Xử lý yêu cầu } 27 GV: Võ Tấn Dũng VD: Các bước để viết một Servlet PHẦN 3 28 GV: Võ Tấn Dũng CÁC VÍ DỤ SERVLET package hall; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; /* Very simplistic servlet * Part of tutorial on servlets...Chu trình sống của Servlet Giai đoạn Nạp servlet: 11 GV: Võ Tấn Dũng • Một servlet có thể được nạp vào bộ nhớ ở ba thời điểm: khi server khởi động, khi người quản trị yêu cầu, khi servlet được triệu gọi từ máy client • Yêu cầu Server nạp servlet trước sẽ khiến trình khách có thể gọi servlet ngay mà không phải mất công chờ • Để nạp servlet thì trình chủ phải biết tên lớp của... servlet sẽ bị trình chủ giải phóng • Trước khi servlet bị hủy thì phương thức destroy() sẽ được gọi • Phương thức destroy() dùng để dọn dẹp tài nguyên, giải phóng bộ nhớ, đóng kết nối socket hoặc đóng kết nối đến CSDL,… 24 GV: Võ Tấn Dũng Ví dụ: conn.close(); //đóng kết nối CSDL đặt trong destroy() getServletConfig() và getServletInfo() • Phương thức getServletConfig() giúp người sử dụng Servlet có ... thức destroy() Chu trình sống Servlet 15 GV: Võ Tấn Dũng Vòng đời Servlet tóm tắt hình vẽ sau: Sáu bước chạy servlet 16 GV: Võ Tấn Dũng Tạo thư mục Tomcat web server cho ứng dụng web Viết code... TOMCAT GV: Võ Tấn Dũng CÁC THƯ MỤC WEB TRONG TOMCAT Chu trình sống Servlet 10 GV: Võ Tấn Dũng • Chu trình sống Servlet bắt đầu hệ thống triệu gọi (gọi nạp vào nhớ) bị loại khỏi trình chủ Web... TYPE="SUBMIT" VALUE="Submit Order"> 35 GV: Võ Tấn Dũng VD4: Liệt kê liệu từ FORM 36 GV: Võ Tấn Dũng VD4: Liệt kê liệu từ FORM import java.io.*; import javax.servlet.*;

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

TỪ KHÓA LIÊN QUAN

w