Bài 1. Giới thiệu về
Servlet & JSP
Nội dung
1. Một số khái niệm
2. Giới thiệu về Servlet và JSP
3. Các bước phát triển và triển khai ứng
dụng Web
4. File WAR (Web Application Archive)
5. Cấu hình ứng dụng web
6. Web container
2
Web server và client
Số lượng: vô cùng lớn
Mục tiêu:
Xây dựng ứng dụng
được truy cập trên toàn
cầu
3
Web server và client
4
Server làm những gì?
5
Client làm những gì?
6
HTML, HTTP protocol
7
HTTP Protocol
Giao thức HTTP chạy trên TCP/IP
TCP: đảm bảo file được từ nút mạng này tới nút
mạng khác nguyên vẹn
IP: chịu trách nhiệm định tuyến, dịch chuyển gói
tin
Cấu trúc HTTP: chuỗi Request và Response
Browser: request
Server: response
8
HTTP Protocol
9
Request:
POST hay GET
Trang request (url)
Tham số
Response
Mã trạng thái
Context type: text, pic
Nội dung
Phương thức GET và POST
GET
POST
Lịch sử,
bookmark
Tham số hiển thị trên URL,
có thể bookmark
Tham số không hiển thị trên
URL, không thể bookmark
Loại dữ
liệu
Chỉ kí tự ASCII
Không giới hạn
Giới hạn
về độ dài
Có, vì độ dài URL có giới
hạn, thường 2048 kí tự
Không giới hạn
Sử dụng
Không sử dụng khi gửi thông
tin bí mật: password
Sử dụng để gửi các thông tin
bí mật: passowrd
10
GET:
?min=10000000&max=12000000
URL
11
Website vs web application
12
2. Giới thiệu về Servlet và JSP
Servlet và JSP: các web component
Cho phép tạo ra các nội dung động
13
Web Components & Container
Các web components chạy trên 1 Web container
Các web containers phổ biến: Tomcat và Resin
Web container cung cấp các dịch vụ hệ thống cho
các Web components
Request dispatching, security, và quản lý vòng đời
14
Web Application & Components
Web Application là 1 gói triển khai, gồm:
Web components (Servlets và JSP)
Tài nguyên tĩnh như images
Helper classes (sử dụng bởi web components)
Thư viện Libraries
Deployment descriptor (web.xml file)
Web Application có thể được tổ chức thành
Phân cấp các thư mục và files (dạng chưa đóng gói -
unpacked form) hoặc
*.WAR file: có fân cấp như trên (dạng đóng gói-packed
form)
15
Web Request Handling
16
3. Các bước phát triển và triển
khai ứng dụng Web
17
Các bước phát triển và triển khai ứng
dụng Web
Viết code (và biên dịch) cho các Web component
Servlet/JSP sử dụng trong web component
Tạo các tài nguyên tĩnh (Images, các trang HTML)
Viết file deployment descriptor (web.xml)
Build ứng dụng Web (Tạo file *.war hoặc thư mục
dạng chưa đóng gói nhưng triển khai được)
Triển khai ứng dụng Web trên 1 Web container
Web clients có thể truy cập ứng dụng qua URL
18
Development Tree Structure
Tạo cấu trúc cây thư mục (Development Tree
Structure) cho việc viết ứng dụng web
Thư mục gốc bao gồm:
src: Mã nguồn Java cho các servlets và các
JavaBeans
web: các trang JSP, HTML, images
Có thể sử dụng IDE Netbeans để hỗ trợ
19
Ví dụ 1: cấu trúc cây project ch1
ch1
src
Ch1Servlet.java
web
WEB-INF
web.xml
20
ch1
websrc
WEB-INF
web.xml
Ch1Servlet
.java
Ch1Servlet.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Ch1Servlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
java.util.Date today = new java.util.Date();
out.println("<html> " + "<body> "
+ "<h1 align=center>Servlet</h1>"
+ "<br>" + today + "</body>" + "</html>" );
}
}
21
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="
xmlns:xsi="
xsi:schemaLocation="
/><servlet>
<servlet-name>Chuong 1 Servlet</servlet-name>
<servlet-class>Ch1Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Chuong 1 Servlet</servlet-name>
<url-pattern>/Serv</url-pattern>
</servlet-mapping>
</web-app>
22
Biên dịch & triển khai trong Netbeans
Biên dịch
Các file được biên
dịch thành file .class
23
ch1
web
dist
WEB-INF
web.xml
ch1.war
build
classes
Ch1Servlet
.class
Request từ client
Trên trình duyệt gõ:
http://localhost:8084/ch1/Serv
24
Cấu trúc triển khai trong Tomcat
25