Tải bản đầy đủ (.pdf) (71 trang)

Bài giảng lập trình ứng dụng mạng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.1 MB, 71 trang )

1
TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN TP.HCM
LẬP TRÌNH ỨNG DỤNG MẠNG
BÀI 5
JSP (Java Server Pages)
LẬP TRÌNH ỨNG DỤNG MẠNG
BÀI 5
JSP (Java Server Pages)
JSP (Java Server Pages)
GIẢNG VIÊN:
VÕ TẤN DŨNG
GV: Võ TấnDũng
2
PHẦN 1
GI
GI


I THI
I THI


U JSP
U JSP
GV: Võ TấnDũng
3
• JSP (Java Server Pages) cho phép ta chèn các đoạnmã
Java vào trong các tậptin vănbảndạng HTML hay XML.
Sau đó, các tậptin nàysẽđượcchuyển đổi thành Java
Servlets để thựchiệnviệctạo các trang web động.
•Côngnghệ Java Server Pages hiện đang là mộtphương


pháp tạoweb động thu hút sự chú ý của các nhà phát triển
ứng dụng web. JSP cung cấpphương tiện đơngiản để tạo
ra những trang web động.
•Côngnghệ JSP là một thành phần trong họ Java, sử dụng
ngôn ngữ Java như là ngôn ngữ kịch bản (script). Hiệnnay
JSP cùng với các thành phần JavaBean, Enterprise
JavaBean tạo nên sứcmạnh cho họ Java trong việcxây
dựng các ứng dụng web.
JSP L
JSP L
À
À
GÌ?
GÌ?
GV: Võ TấnDũng
4
• Trang JSP đơn giản hiện thị ngày tháng hiện hành
<html>
<head>
<title>A simple date</title>
</head>
<body>
The time on the server is <%= new java.util.Date() %>
</body>
</html>
•Server xử lý thành phần của JSP để chuyển đổi thành dữ
liệu tĩnh trên trang HTML để trình bày trên Web browser
JSP L
JSP L
À

À
GÌ?
GÌ?
GV: Võ TấnDũng
5
•Khingườisử
dụng gọi trang
JSP lần đầu
tiên, Web
Server triệugọi
trình biên dịch
dịch trang JSP
(trong trường
hợp này là JDK)
thành tậptin
Java, kếđếntập
tin java (Java
Servlet) này sẽ
biên dịch ra
class. Chạy
class để sinh ra
các trang
HTML.
C
C
Ơ
Ơ
CH
CH



L
L
À
À
M VI
M VI


C C
C C


A JSP
A JSP
GV: Võ TấnDũng
6
V
V
í
í
d
d


:
:
m
m



t
t
trang
trang
JSP
JSP
MộttrangJSP:
<! File jsp001.jsp
02/13/2010
>
<html>
<body>
<H1>My First JSP Page</H1>
<H2>Hello, JSP World!</H2>
<%for(int i=0; i<11; i++) {%>
<br>
<%=i %>
<%}// end for loop %>
<H3> Isn't this fun</H3>
</body>
</html>
Kết qua sinh ra tại Web Browser:
My First JSP Page
Hello, JSP World!
0
1
2
3
4

5
6
7
8
9
10
Isn't this fun
GV: Võ TấnDũng
7
PHẦN 2
COMMENTS
COMMENTS
DECLARATIONS
DECLARATIONS
EXPRESSIONS
EXPRESSIONS
GV: Võ TấnDũng
8
•Phần này giớithiệuvề các cú pháp (syntax) sau đây:
• Comments (các ghi chú)
• Declarations (các khai báo)
• Expressions (các biểuthức)
COMMENTS,DECLARATIONS,EXPRESSIONS
COMMENTS,DECLARATIONS,EXPRESSIONS
GV: Võ TấnDũng
9
• Comments: là những chú thích, ghi chú được chèn vào để
giải thích cho người đọc code HTML hoặcJSP dễ hiểu.
Servlet không biên dịch thành phần này.
• Trang JSP chứa hai loại comments là:

• Hidden comment (hay còn gọi là JSP comment).
• Output comment (hay còn gọilàHTMLcomment).
• Output comments được xuất vào HTML file để gửi đến
client.
• Hidden comment chỉ hiển thị trong source code của trang
JSP mà không xuất vào HTML file để gửi đến client.
Hidden comment là ẩn đốivớiHTML file.
COMMENTS (
COMMENTS (
c
c
á
á
c
c
ghi
ghi
ch
ch
ú
ú
)
)
GV: Võ TấnDũng
10
• Cú pháp của Output Comments:
<! comment [ <%= expression %> ] >
• Cú pháp này sinh ra một ghi chú đượcthấy trong HTML
file. HTML file này đượcsinhrabởi JSP file.
• Trong cú pháp này ta thấy Output comment có thể chứa

hay không chứamộtbiểuthức (expression) của JSP.
Những gì chứa trong dấu ngoặc vuông có nghĩalàtùy
chọn. Biểuthức JSP (expression) sẽđược tìm hiểu ở các
slide sau.
OUTPUT COMMENTS
OUTPUT COMMENTS
GV: Võ TấnDũng
11
Ví dụ: đây là một code mẫuchứa trong tập tin jsp0002.jsp
<! File jsp002.jsp
02/13/2010
Mô tả các ghi chú nhằmxuất ra file HTML.
Mô tả các ghi chú ẩn - hidden comments.
Cũng mô tả các biểuthức - expressions.
cuối ghi chú >
<html>
<body>
<! HTML comment without JSP expression >
<! HTML comment with JSP >
<! expression follows >
<! Date and time is
<%=(new java.util.Date()) %> >
<! The following space was produced by >
<! hidden comments. >
<% This is hidden comment is won't %>
<% appear in the output HTML %>
</body>
</html>
OUTPUT COMMENTS
OUTPUT COMMENTS

GV: Võ TấnDũng
Trong ví dụ này, xuấtliệu
Date và Time đượcsinhra
bởibiểuthức nhúng trong
comment nhưng Date và
Time này cũng không xuất
hiện trong Web Browser
(dù Date và Time này có
xuấthiện trong HTML file).
12
Đây là file HTML đượcsinhratừ file JSP của slide trước. Nhưng file HTML này không xuất
gì ra Web Browser cả.
<! File jsp002.jsp
02/13/2010
Mô tả các ghi chú nhằmxuất ra file HTML.
Mô tả các ghi chú ẩn - hidden comments.
Cũng mô tả các biểuthức - expressions.
cuối ghi chú >
<html>
<body>
<! HTML comment without JSP expression >
<! HTML comment with JSP >
<! expression follows >
<! Date and time is Sat Feb 13 08:54:00 ICT 2010 >
<! The following space was produced by >
<! hidden comments. >
</body>
</html>
OUTPUT COMMENTS
OUTPUT COMMENTS

GV: Võ TấnDũng
Với cách chèn biểuthức
vào ghi chú trong JSP cho
phép ta thựchiện ghi chú
động (dynamic comments)
trên HTML file.
13
• Hidden comment được dùng để ghi chú trong các file JSP
nhưng không xuất ra các file HTML khi gửixuống client. Cú
pháp:
<% hidden comment %>
• JSP engine bỏ qua, không xử lý bấtkỳ code nào nằmtrong
hidden comment. Do đó hidden comment cũng không xuất
hiện ở Web Browser phía client.
•Ta thấycóbốnkýtự %> nằm trong cú pháp của hidden
comment. Cho nên nếumuốn chúng xuấthiệnlàchuỗi
trong hidden comment thì ta phảiviếtlà %\> (có dấu
xuyệt)
HIDDEN COMMENTS
HIDDEN COMMENTS
GV: Võ TấnDũng
14
•Declaration được dùng để khai báo các biến (variable) các
phương thức (method) được dùng sau đó trong các JSP
source file. Cú pháp declaration (chú ý dấuchấm than):
<%! declarations %>
Ví dụ:
<%! int a = 100, b = 2; %>
<%! java.util.Date myDate = new java.util.Date(); %>
Tầmvực (Scope):

•Một declaration có tầmvựctrongmột trang (page
scope). Có nghĩalàmột khai báo (declaration) biếnhay
hàm trong một trang sẽđượcsử dụng hợplệ bởicác
scriptlets, expressions và các declarations khác trong cùng
một JSP source file.
DECLARATIONS (
DECLARATIONS (
c
c
á
á
c
c
khai
khai
b
b
á
á
o
o
)
)
GV: Võ TấnDũng
15
Theo Sun, có mộtsố nguyên tắcsử dụng cho các JSP declarations:
•Một declaration phảichứaítnhấtmột phát biểu khai báo hoàn chỉnh.
•Cóthể khai báo nhiềubiến (variables) hoặcphương thức (methods)
trong mộtthẻ (tag) declaration, nhưng phải cách nhau bởidấuchấm
phẩy.

• Các declaration phảihợplệ trong các ngôn ngữ kịch bản (scripting
language) được dùng trong JSP file. Các declaration phải phù hợpvới
đặctả của ngôn ngữ Java.
•Một đặctả phải đượckết thúc bằ
ng mộtdấuchấmphẩy. Nguyên tắc
này giống với nguyên tắc dành cho Scriptlet, nhưng khác vớinguyên
tắcdànhchomột Expression.
• Ta phải khai báo mộtbiếnhoặclàmộtphương thứctrướckhisử dụng
chúng trong file JSP.
•Cũng có thể dùng mộtbiếnhoặcmộtphương thức được khai báo
trong packages imported bởi Page Directive, vì thế không cầnphải khai
báo lại chúng lầnnữa trong một declaration.
DECLARATIONS (
DECLARATIONS (
c
c
á
á
c
c
khai
khai
b
b
á
á
o
o
)
)

GV: Võ TấnDũng
16
• Cú pháp cho mộttag (thẻ) để khai báo mộtbiểuthứcnhư
sau (chú ý dấubằng theo sau dấu%):
<%= expression %>
•Biểuthứcchứa trong thẻ sẽđược tính toán, sau đókếtquả
được chuyển sang chuỗi (String) để chèn vào file HTML
vớivị trí tương ứng củanótrongJSP file.
EXPRESSIONS (
EXPRESSIONS (
c
c
á
á
c
c
bi
bi


u
u
th
th


c
c
)
)

GV: Võ TấnDũng
17
<! File jsp003.jsp
02/13/2010
Illustrates declarations and expressions.
end comment >
<html>
<body>
<% Some JSP declarations follow %>
<%! int a = 100, b =2; %>
<%! java.util.Date myDate = new java.util.Date(); %>
<P>Some JSP expression follow<BR>
a = <%= a %> <BR>
b = <%= b %> <BR>
a/b = <%= a/b %> <BR>
The date is <%= myDate %>
</body>
</html>
V
V
í
í
d
d


GV: Võ TấnDũng
Some JSP expression follow
a = 100
b = 2

a/b = 50
The date is Sat Feb 13 12:25:16 ICT 2010
18
• Chúng ta vừamớikhảosát:
• Output comments:
<! comment [ <%= expression %> ] >
• Hidden comments:
<% hidden comment %>
• Declarations:
<%! declarations %>
• Expressions:
<%= expression %>
T
T
ó
ó
m
m
t
t


t
t
GV: Võ TấnDũng
19
PHẦN 3
SCRIPTLET
SCRIPTLET
(

(
m
m


u
u
k
k


ch
ch
b
b


n
n
)
)
GV: Võ TấnDũng
20
•Thẻ (tag) scriptlet dùng để chứ một đoạnmãJava rồi được
nhúng (chèn) vào trong mã HTML.
•Một scriptlet có thể chứasố lượng bấtkỳ các phát biểu
(statements) các khai báo biến (variable), khai báo phương
thức (method) hoặcbiểuthức (expressions).
• Cú pháp của scriptlet như sau:
<% code fragment %>

C
C
Ú
Ú
PH
PH
Á
Á
P SCRIPTLET
P SCRIPTLET
GV: Võ TấnDũng
21
Theo Sun, ta có thể dùng scriptlets cho các việcsauđây:
• Dùng khai báo biến, khai báo phương thứcsẽđược dùng
trong file JSP.
•Viếtcácbiểuthứchợplệ (tương tự như phần khai báo
biểuthức expression củaphầntrước).
•Sử dụng bấtkỳđốitượng tiềm ẩn (implicit) hoặcbấtkỳđối
tượng nào đã được khai báo bằng thẻ <jsp:useBean> (thẻ
này sẽđược trình bày ở các slide sau).
• Để viếtbấtkỳ phát biểuhợplệ nào (statement). Các phát
biểunàyphải phù hợpvới quy định cú pháp, vănphạmcủa
ngôn ngữ Java.
D
D
ù
ù
ng
ng
Scriptlet

Scriptlet
đ
đ


l
l
à
à
m
m
g
g
ì
ì
?
?
GV: Võ TấnDũng
22
• Ví dụ:
<% c = a/b; %>
• Ví dụ:
<% myDate = new java.util.Date(); %>
• Ví dụ:
<% for (int i=0; i<11; i++) { %>
<br>
<%= i %>
<% }//end for loop %>
•Với Scriptlet, JSP cho phép ta nhúng và thực thi các
Servlet, JavaBean, Java Code.

V
V
í
í
d
d


Scriptlet
Scriptlet
GV: Võ TấnDũng
23
<! File jsp004.jsp 02/13/2010 Illustrates scriptlets. >
<html>
<body>
<% Some JSP declaration follow %>
<%! int a = 100, b = 2, c; %>
<%! java.util.Date myDate; %>
a = <%= a%> <BR>
b = <%= b%> <BR>
<% scriptlet follows %>
<%c=a/b;%>
c = <%= c %> <BR>
<% scriptlet follows %>
<% myDate = new java.util.Date(); %>
The date is <%= myDate %> <BR>
<% two scriptlets follow %>
<% for(int i=0; i<11; i++){ %>
<BR>
<%= i%>

<% }//end for loop %>
</body>
</html>
V
V
í
í
d
d


Scriptlet
Scriptlet
GV: Võ TấnDũng
Kếtquả tại Web Browser phía
Client:
a = 100
b = 2
c = 50
The date is Sat Feb 13 14:17:45 ICT
2010
0
1
2
3
4
5
6
7
8

9
10
24
• Chúng ta đãhọc đượccácthẻ sau:
Output comments:
<! comment
[ <%= expression %> ] >
Hidden comments:
<% hidden comment %>
Declarations:
<%! declarations %>
Expressions:
<%= expression %>
Scriptlets:
<% code fragment %>
T
T
ó
ó
m
m
t
t


t
t
GV: Võ TấnDũng
25
PHẦN 4

DIRECTIVE
DIRECTIVE
(
(
ch
ch


h
h
ư
ư


ng
ng
)
)
GV: Võ TấnDũng

×