TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN TP.HCM
LẬP TRÌNH ỨNG DỤNG MẠNG BÀI 6
SERVLET SERVLET
1
GIẢNG VIÊN: VÕ TẤN DŨNG
g n ũ D n ấ T õ V
:
V G
PHẦN 1 TỔNG QUAN SERVLET
2
g n ũ D n ấ T õ V
:
V G
Các vấn đề được trình bày trong phần này:
– Giới thiệu Servlet (Servlet là gì?). – Luồng xử lý Servlet. – Các thư mục Web trong Tomcat server. – Chu trình sống của một Servlet. – Sáu bước để xây dựng và chạy một servlet.
3
g n ũ D n ấ T õ V
:
V G
TỔNG QUAN SERVLET TỔNG QUAN SERVLET
• Servlet là một lớp Java được nạp tự động và chạy trên
những web server có hỗ trợ Java. Những server như thế được gọi là Servlet Container (hay Java Server).
• Servlet tương tác với web client theo mô hình request- response dựa theo giao thức HTTP. Một số Servlet Container cũng hỗ trợ cả giao thức HTTPS (HTTP over SSL) dành cho các giao tác có tính bảo mật.
• Kiến trúc hoạt động:
4
g n ũ D n ấ T õ V
:
V G
GIỚI THIỆU SERVLET GIỚI THIỆU SERVLET
Luồng xử lý một servlet diễn ra qua các bước như sau: •
Client yêu cầu một servlet, tên của servlet là một phần của URL (vd: http://www.music.com/music/SearchServlet).
2. Web server nhận yêu cầu (request) và gửi nó tới
servlet engine, là nơi mà quản lý và tạo ra các thể hiện của servlet.
LUỒNG XỬ LÝ SERVLET LUỒNG XỬ LÝ SERVLET
3. Servlet engine sẽ gọi phương thức service (hoặc doPost, doGet) của servlet để xử lý yêu cầu.
4. Servlet sẽ tiếp nhận yêu cầu cùng với các tham số, tài nguyên khác, sau đó xử lý và tạo ra một kết quả trả lời tương ứng (response) và chuyển kết quả cho Web server.
5. Web server sẽ gửi trả kết quả này (response) cho
client (Web Browser).
5
g n ũ D n ấ T õ V
:
V G
Để chạy được một servlet cần phải có: • Cần có package servlet.jar để biên dịch (http://java.sun.com/products/servlet/) Java 2 không chứa các lớp của gói servlet, trong trường hơp này chúng ta phải chỉ biến môi trường CLASSPATH đến tập tin servlet.jar, hoặc servlet-api.jar. Các tập tin này có kèm theo trong các Web Server có hỗ trợ Java.
• Các Web Server hỗ trợ Servlet, hiện nay đã có: – Apache Tomcat (http://jakarta.apache.org) – Sun’s Java Web Server, free, hiện không cho download
(http://wwws.sun.com/software/jwebserver/)
– New Atlanta’s ServletExec, tích hợp ServletEngine vào
các web server(http://newatlanta.com)
– http://www.macromedia.com/software/jrun/trial/ – …
(Tham khảo các tài liệu về Servlet:
6
http://java.sun.com/products/servlet/docs.html)
g n ũ D n ấ T õ V
:
V G
GIỚI THIỆU SERVLET 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(“”);}
7
g n ũ D n ấ T õ V
}
:
V G
VíVí dụdụ servlet servlet đơđơnn giảngiản: “Hello” Servlet : “Hello” Servlet
• Đối với Tomcat Web Server, mỗi ứng dụng web được lưu
trữ trong thư mục riêng, chứa trong thư mục webapps (của thư mục Tomcat khi cài đặt lên đĩa). Mỗi ứng dụng này cần có tập tin web.xml để mô tả những yếu tố riêng, được đặt trong thư mục WEB-INF của ứng dụng.
• Ví dụ ta xây dựng một ứng dụng Web bằng cách tạo thư mục myApp tương ứng trong thư mục webapps. Tên thư mục này sẽ xuất hiện trong URL khi ta gọi servlet.
• Tạo một thư mục WEB-INF trong thư mục myApp, và tạo
một thư mục tên classes trong WEB-INF. Cấu trúc cây thư mục này được trình bày ở slide ngay sau đây. Nếu ta có các file HTML thì hãy đặt chúng trực tiếp vào thư mục myApp. Ta cũng nên tạo một thư mục tên là images trong myApp để chưa các file hình cho web của mình.
8
g n ũ D n ấ T õ V
:
V G
CÁC THƯ MỤC WEB TRONG TOMCAT CÁC THƯ MỤC WEB TRONG TOMCAT
9
g n ũ D n ấ T õ V
:
V G
CÁC THƯ MỤC WEB TRONG TOMCAT CÁC THƯ MỤC WEB TRONG TOMCAT
• Chu trình sống của một Servlet bắt đầu khi nó được hệ thống triệu gọi (gọi nạp vào bộ nhớ) cho đến khi nó bị loại khỏi trình chủ Web server. Trải qua các giai đoạn sau:
(cid:153) Nạp servlet. (cid:153) Khởi tạo servlet. (cid:153) Thực thi servlet. (cid:153) Dọn dẹp servlet.
10
g n ũ D n ấ T õ V
:
V G
ChuChu trình trình sống Servlet sống củacủa Servlet
ChuChu trình trình sống Servlet sống củacủa Servlet
Giai đoạn Nạp servlet: • 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. Tên của một servlet có thể 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ạ.
11
g n ũ D n ấ T õ V
:
V G
ChuChu trình trình sống Servlet sống củacủa Servlet
Giai đoạn Khởi tạo servlet: • 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 phương thức init() được cài đặt trong servlet.
12
g n ũ D n ấ T õ V
:
V G
ChuChu trình trình sống Servlet sống củacủa Servlet
Giai đoạn thực thi Servlet: • Khi servlet được gọi qua các URL hay từ các trang HTML hoặc trang JSP khác thì Web server chính thức gọi servlet thực thi thông qua các phương thức doGet(), doPost() hoặc service().
• doGet(): được gọi khi ta gọi trực tiếp servlet từ một
URL.
• doPost(): được gọi khi ta gọi servlet thông qua thao
tác post của thẻ