SlideShare a Scribd company logo
1 of 54
Download to read offline
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:
http://phucanh.vn/category-2/laptops.html ?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="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<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
Request từ client
 Run Tomcat
 Trên trình duyệt gõ
http://localhost:8080/ch1/Serv
26
Nhận xét
 Việc chèn thẻ HTML trong câu
lệnh println là dễ dàng?
 Giải pháp: JSP
<html>
<body>
<%=new
java.util.Date() %>
</body>
</html>
 Ý nghĩa của file web.xml?
27
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<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>
28
Ví dụ 2
 Ví dụ hello2 trong tutorial của J2EE 1.4
 Mục đích:
 Tạo 2 servlet có liên kết với nhau
 GreetingServlet chuyển yêu cầu tới
ResponseServlet
 Tài nguyên tĩnh
 File đóng gói war
 Hiểu hơn về file web.xml
29
http://localhost:8080/hello2/greeting
30
31
Cấu trúc cây hello2
 Hello2
 src/servlets
 GreetingServlet.java
 ResponseServlet.java
 web
 WEB-INF
 web.xml
 duke.waving.gif
 build.xml
32
Cấu trúc sau khi biên dịch
 Hello2
 src
 web
 build.xml
 build
 WEB-INF
 classes
 GreetingServlet.class
 ResponseServlet.class
 web.xml
 duke.waving.gif
33
GreetingServlet
String username = request.getParameter("username");
if ((username != null) && (username.length() > 0)) {
RequestDispatcher dispatcher =
getServletContext()
.getRequestDispatcher("/response");
if (dispatcher != null) {
dispatcher.include(request, response);
}
}
34
ResponseServlet
public class ResponseServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
String username = request.getParameter("username");
if ((username != null) && (username.length() > 0)) {
out.println("<h2>Hello, " + username + "!</h2>");
}
}
35
web.xml
<servlet>
<servlet-name>GreetingServlet</servlet-name>
<servlet-class>servlets.GreetingServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ResponseServlet</servlet-name>
<servlet-class>servlets.ResponseServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GreetingServlet</servlet-name>
<url-pattern>/greeting</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ResponseServlet</servlet-name>
<url-pattern>/response</url-pattern>
</servlet-mapping>
36
4. Web Application Archive
(*.WAR)
37
Ứng dụng Web
 Ứng dụng Web có thể được triển khai ở 2
dạng
 Một file *.war
 Một thư mục, cấu trúc giống file *.war file (thư
mục build)
 Sử dụng dạng file *.war khi muốn triển khai
trên 1 remote machine
38
File *.WAR là gì?
 Là gói triển khai được trên web container
 Tương tự như file *.jar
 Chứa tất cả thành phần cần thiết:
 Web components (servlets hoặc JSP)
 Các Class tiện ích
 Nội dung tĩnh (HTML, image, …)
 Các lớp phía Client (applets và các lớp tiện ích)
 Có nội dung giống như thư mục build
39
Cấu trúc thư mục của 1 file *.WAR
40
Cấu trúc thư mục của 1 file *.WAR
41
Tạo 1 file *.WAR như thế nào?
 3 cách khác nhau:
 Sử dụng IDE (NetBeans)
 Sử dụng công cụ ant
 “asant create-war” (J2EE 1.4 tutorial)
 Sử dụng lệnh “jar cvf <filename>.war .” khi ở
trong thư mục build
42
Ví dụ: Tạo file hello2.war với lệnh “asant
create-war”
C:j2eetutorial14exampleswebhello2>asant create-war
Buildfile: build.xml
...
create-war:
[echo] Creating the WAR....
[delete] Deleting:
C:j2eetutorial14exampleswebhello2assemblewarhello2.war
[delete] Deleting directory
C:j2eetutorial14exampleswebhello2assemblewarWEB-INF
[copy] Copying 1 file to
C:j2eetutorial14exampleswebhello2assemblewarWEB-INF
[copy] Copying 2 files to
C:j2eetutorial14exampleswebhello2assemblewarWEB-INFclasses
[war] Building war:
C:j2eetutorial14exampleswebhello2assemblewarhello2.war
[copy] Copying 1 file to C:j2eetutorial14exampleswebhello2
43
Ví dụ: Tạo file hello2.war sử dụng lệnh jar
C:j2eetutorial14exampleswebhello2build>jar cvf hello2.war .
added manifest
adding: duke.waving.gif(in = 1305) (out= 1295)(deflated 0%)
adding: servlets/(in = 0) (out= 0)(stored 0%)
adding: servlets/GreetingServlet.class(in = 1680) (out= 887)(deflated 47%)
adding: servlets/ResponseServlet.class(in = 1090) (out= 572)(deflated 47%)
C:j2eetutorial14exampleswebhello2build>jar xvf hello2.war
created: META-INF/
extracted: META-INF/MANIFEST.MF
extracted: duke.waving.gif
created: servlets/
extracted: servlets/GreetingServlet.class
extracted: servlets/ResponseServlet.class
44
Thư mục WEB-INF
 Chứa:
 web.xml : Web application deployment descriptor
 Các file JSP tag library descriptor
 Classes : là thư mục chứa các lớp phía server:
servlets, lớp tiện ích, các JavaBeans
 lib : là thư mục chứa các file thư viện JAR (tag
libraries, các thư viện tiện ích được gọi bởi các
lớp phía server)
45
5. Cấu hình ứng dụng Web
 Thông số cấu hình được đặc tả trong file
web.xml (Web Applications Deployment
Descriptor)
46
Prolog (web.xml)
 Tất cả tài liệu XML cần có prolog
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"
xsi:schemaLocation=http://java.sun.com/xml/n
s/javaee
http://java.sun.com/xml/ns/javaee/web-
app_3_0.xsd version="3.0">
47
Alias Paths (web.xml)
 Khi 1 Servlet container nhận 1 request, nó cần biết
Web component nào trong ứng dụng Web sẽ xử lý
request này.
 Thực hiện map URL path trong request tới 1 Web
component
 Alias Path có thể có 2 dạng
 /alias-string (cho servlet) hoặc
 /*.jsp (cho JSP)
48
web.xml
<servlet>
<servlet-name>GreetingServlet</servlet-name>
<servlet-class>servlets.GreetingServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ResponseServlet</servlet-name>
<servlet-class>servlets.ResponseServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GreetingServlet</servlet-name>
<url-pattern>/greeting</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ResponseServlet</servlet-name>
<url-pattern>/response</url-pattern>
</servlet-mapping>
49
6. Web Container
50
51
52
Vai trò của Container
 Hỗ trợ giao tiếp giữa servlet và web server
 Quản lý vòng đời của các servlet: khởi tạo,
gọi, hủy
 Hỗ trợ đa tuyến
 Cấu hình ứng dụng web dễ dàng qua
web.xml
 Hỗ trợ dịch các trang JSP
53
Thảo luận
54

More Related Content

What's hot

Lớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaLớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaANHMATTROI
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webMasterCode.vn
 
Lập trình web với các công nghệ phổ biến
Lập trình web với các công nghệ phổ biếnLập trình web với các công nghệ phổ biến
Lập trình web với các công nghệ phổ biếnSon Nguyen
 
Co ban ve_zend_framework 1
Co ban ve_zend_framework 1Co ban ve_zend_framework 1
Co ban ve_zend_framework 1Ông Thông
 
Spring mvc
Spring mvcSpring mvc
Spring mvcBa Big
 
Các bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với javaCác bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với javaBrand Xanh
 
Lap trinh giao dien nguoi dung voi Java
Lap trinh giao dien nguoi dung voi JavaLap trinh giao dien nguoi dung voi Java
Lap trinh giao dien nguoi dung voi JavaANHMATTROI
 
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng CaoBài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng CaoTuan Nguyen
 
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHuy Vũ
 
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webBài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webMasterCode.vn
 
Asp.net mvc framework qua cac vi du
Asp.net mvc framework  qua cac vi duAsp.net mvc framework  qua cac vi du
Asp.net mvc framework qua cac vi duKim Hyun Hai
 
Học Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkHọc Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkKhanhPham
 
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTBài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTMasterCode.vn
 
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTBài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTMasterCode.vn
 
Spring framework
Spring frameworkSpring framework
Spring frameworkAn Nguyen
 

What's hot (20)

Lớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaLớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong java
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
 
Lập trình web với các công nghệ phổ biến
Lập trình web với các công nghệ phổ biếnLập trình web với các công nghệ phổ biến
Lập trình web với các công nghệ phổ biến
 
Co ban ve_zend_framework 1
Co ban ve_zend_framework 1Co ban ve_zend_framework 1
Co ban ve_zend_framework 1
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Các bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với javaCác bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với java
 
Web203 slide 5
Web203   slide 5Web203   slide 5
Web203 slide 5
 
Lap trinh giao dien nguoi dung voi Java
Lap trinh giao dien nguoi dung voi JavaLap trinh giao dien nguoi dung voi Java
Lap trinh giao dien nguoi dung voi Java
 
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng CaoBài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
 
Asp control
Asp controlAsp control
Asp control
 
Ch06
Ch06Ch06
Ch06
 
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
 
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webBài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
 
Asp.net mvc framework qua cac vi du
Asp.net mvc framework  qua cac vi duAsp.net mvc framework  qua cac vi du
Asp.net mvc framework qua cac vi du
 
Học Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkHọc Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend Framework
 
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTBài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
 
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTBài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
 
Tim+hieu+jquery
Tim+hieu+jqueryTim+hieu+jquery
Tim+hieu+jquery
 
Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1
 
Spring framework
Spring frameworkSpring framework
Spring framework
 

Similar to Bai1 gioi thieu_servlet_va_jsp_8952

Giao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharpGiao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharpngohanty13
 
Bài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theoBài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theoMasterCode.vn
 
Web1012 slide 1
Web1012   slide 1Web1012   slide 1
Web1012 slide 1Cà Rốt
 
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPTBÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPTMasterCode.vn
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVCMasterCode.vn
 
Slide Web Service
Slide Web ServiceSlide Web Service
Slide Web Serviceask bills
 
Giao trinh java script
Giao trinh java scriptGiao trinh java script
Giao trinh java scripthieusy
 
Javascript tong-hop a-z
Javascript tong-hop a-zJavascript tong-hop a-z
Javascript tong-hop a-zManhh Nguyễn
 
Kiến thức cần thiết làm việc
Kiến thức cần thiết làm việcKiến thức cần thiết làm việc
Kiến thức cần thiết làm việcmanhvokiem
 
Hoc Jquery Trong 1h
Hoc Jquery Trong 1hHoc Jquery Trong 1h
Hoc Jquery Trong 1hDang Tuan
 

Similar to Bai1 gioi thieu_servlet_va_jsp_8952 (20)

Giao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharpGiao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharp
 
Giáo trình asp.net với c sharp
Giáo trình asp.net với c sharpGiáo trình asp.net với c sharp
Giáo trình asp.net với c sharp
 
Bai08 10 java_fx
Bai08 10 java_fxBai08 10 java_fx
Bai08 10 java_fx
 
Bài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theoBài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
 
Web1012 slide 1
Web1012   slide 1Web1012   slide 1
Web1012 slide 1
 
Sof301 slide1
Sof301   slide1Sof301   slide1
Sof301 slide1
 
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPTBÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
 
Lab lap trinhmang_v3
Lab lap trinhmang_v3Lab lap trinhmang_v3
Lab lap trinhmang_v3
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVC
 
Slide Web Service
Slide Web ServiceSlide Web Service
Slide Web Service
 
Giao trinh java script
Giao trinh java scriptGiao trinh java script
Giao trinh java script
 
Java fx
Java fxJava fx
Java fx
 
Giao trinh java script
Giao trinh java scriptGiao trinh java script
Giao trinh java script
 
Javascript tong-hop a-z
Javascript tong-hop a-zJavascript tong-hop a-z
Javascript tong-hop a-z
 
Web1012 slide 1
Web1012   slide 1Web1012   slide 1
Web1012 slide 1
 
Kiến thức cần thiết làm việc
Kiến thức cần thiết làm việcKiến thức cần thiết làm việc
Kiến thức cần thiết làm việc
 
Asp.net 3.5 _1
Asp.net 3.5 _1Asp.net 3.5 _1
Asp.net 3.5 _1
 
Php 01 modau
Php 01 modauPhp 01 modau
Php 01 modau
 
Hoc Jquery Trong 1h
Hoc Jquery Trong 1hHoc Jquery Trong 1h
Hoc Jquery Trong 1h
 
Java script
Java scriptJava script
Java script
 

Recently uploaded

bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa2353020138
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdftohoanggiabao81
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...Nguyen Thanh Tu Collection
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Nguyen Thanh Tu Collection
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...hoangtuansinh1
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...Nguyen Thanh Tu Collection
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líDr K-OGN
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxnhungdt08102004
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...ThunTrn734461
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...Nguyen Thanh Tu Collection
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNguyễn Đăng Quang
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhvanhathvc
 

Recently uploaded (19)

bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdf
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
 

Bai1 gioi thieu_servlet_va_jsp_8952

  • 1. Bài 1. Giới thiệu về Servlet & JSP
  • 2. 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
  • 3. 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
  • 4. Web server và client 4
  • 8. 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
  • 9. 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
  • 10. 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: http://phucanh.vn/category-2/laptops.html ?min=10000000&max=12000000
  • 12. Website vs web application 12
  • 13. 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
  • 14. 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
  • 15. 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
  • 17. 3. Các bước phát triển và triển khai ứng dụng Web 17
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <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
  • 23. 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
  • 24. Request từ client  Trên trình duyệt gõ: http://localhost:8084/ch1/Serv 24
  • 25. Cấu trúc triển khai trong Tomcat 25
  • 26. Request từ client  Run Tomcat  Trên trình duyệt gõ http://localhost:8080/ch1/Serv 26
  • 27. Nhận xét  Việc chèn thẻ HTML trong câu lệnh println là dễ dàng?  Giải pháp: JSP <html> <body> <%=new java.util.Date() %> </body> </html>  Ý nghĩa của file web.xml? 27
  • 28. web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <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> 28
  • 29. Ví dụ 2  Ví dụ hello2 trong tutorial của J2EE 1.4  Mục đích:  Tạo 2 servlet có liên kết với nhau  GreetingServlet chuyển yêu cầu tới ResponseServlet  Tài nguyên tĩnh  File đóng gói war  Hiểu hơn về file web.xml 29
  • 31. 31
  • 32. Cấu trúc cây hello2  Hello2  src/servlets  GreetingServlet.java  ResponseServlet.java  web  WEB-INF  web.xml  duke.waving.gif  build.xml 32
  • 33. Cấu trúc sau khi biên dịch  Hello2  src  web  build.xml  build  WEB-INF  classes  GreetingServlet.class  ResponseServlet.class  web.xml  duke.waving.gif 33
  • 34. GreetingServlet String username = request.getParameter("username"); if ((username != null) && (username.length() > 0)) { RequestDispatcher dispatcher = getServletContext() .getRequestDispatcher("/response"); if (dispatcher != null) { dispatcher.include(request, response); } } 34
  • 35. ResponseServlet public class ResponseServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); String username = request.getParameter("username"); if ((username != null) && (username.length() > 0)) { out.println("<h2>Hello, " + username + "!</h2>"); } } 35
  • 37. 4. Web Application Archive (*.WAR) 37
  • 38. Ứng dụng Web  Ứng dụng Web có thể được triển khai ở 2 dạng  Một file *.war  Một thư mục, cấu trúc giống file *.war file (thư mục build)  Sử dụng dạng file *.war khi muốn triển khai trên 1 remote machine 38
  • 39. File *.WAR là gì?  Là gói triển khai được trên web container  Tương tự như file *.jar  Chứa tất cả thành phần cần thiết:  Web components (servlets hoặc JSP)  Các Class tiện ích  Nội dung tĩnh (HTML, image, …)  Các lớp phía Client (applets và các lớp tiện ích)  Có nội dung giống như thư mục build 39
  • 40. Cấu trúc thư mục của 1 file *.WAR 40
  • 41. Cấu trúc thư mục của 1 file *.WAR 41
  • 42. Tạo 1 file *.WAR như thế nào?  3 cách khác nhau:  Sử dụng IDE (NetBeans)  Sử dụng công cụ ant  “asant create-war” (J2EE 1.4 tutorial)  Sử dụng lệnh “jar cvf <filename>.war .” khi ở trong thư mục build 42
  • 43. Ví dụ: Tạo file hello2.war với lệnh “asant create-war” C:j2eetutorial14exampleswebhello2>asant create-war Buildfile: build.xml ... create-war: [echo] Creating the WAR.... [delete] Deleting: C:j2eetutorial14exampleswebhello2assemblewarhello2.war [delete] Deleting directory C:j2eetutorial14exampleswebhello2assemblewarWEB-INF [copy] Copying 1 file to C:j2eetutorial14exampleswebhello2assemblewarWEB-INF [copy] Copying 2 files to C:j2eetutorial14exampleswebhello2assemblewarWEB-INFclasses [war] Building war: C:j2eetutorial14exampleswebhello2assemblewarhello2.war [copy] Copying 1 file to C:j2eetutorial14exampleswebhello2 43
  • 44. Ví dụ: Tạo file hello2.war sử dụng lệnh jar C:j2eetutorial14exampleswebhello2build>jar cvf hello2.war . added manifest adding: duke.waving.gif(in = 1305) (out= 1295)(deflated 0%) adding: servlets/(in = 0) (out= 0)(stored 0%) adding: servlets/GreetingServlet.class(in = 1680) (out= 887)(deflated 47%) adding: servlets/ResponseServlet.class(in = 1090) (out= 572)(deflated 47%) C:j2eetutorial14exampleswebhello2build>jar xvf hello2.war created: META-INF/ extracted: META-INF/MANIFEST.MF extracted: duke.waving.gif created: servlets/ extracted: servlets/GreetingServlet.class extracted: servlets/ResponseServlet.class 44
  • 45. Thư mục WEB-INF  Chứa:  web.xml : Web application deployment descriptor  Các file JSP tag library descriptor  Classes : là thư mục chứa các lớp phía server: servlets, lớp tiện ích, các JavaBeans  lib : là thư mục chứa các file thư viện JAR (tag libraries, các thư viện tiện ích được gọi bởi các lớp phía server) 45
  • 46. 5. Cấu hình ứng dụng Web  Thông số cấu hình được đặc tả trong file web.xml (Web Applications Deployment Descriptor) 46
  • 47. Prolog (web.xml)  Tất cả tài liệu XML cần có prolog <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xsi:schemaLocation=http://java.sun.com/xml/n s/javaee http://java.sun.com/xml/ns/javaee/web- app_3_0.xsd version="3.0"> 47
  • 48. Alias Paths (web.xml)  Khi 1 Servlet container nhận 1 request, nó cần biết Web component nào trong ứng dụng Web sẽ xử lý request này.  Thực hiện map URL path trong request tới 1 Web component  Alias Path có thể có 2 dạng  /alias-string (cho servlet) hoặc  /*.jsp (cho JSP) 48
  • 51. 51
  • 52. 52
  • 53. Vai trò của Container  Hỗ trợ giao tiếp giữa servlet và web server  Quản lý vòng đời của các servlet: khởi tạo, gọi, hủy  Hỗ trợ đa tuyến  Cấu hình ứng dụng web dễ dàng qua web.xml  Hỗ trợ dịch các trang JSP 53