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

Thương mại điện tử

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.25 MB, 107 trang )


MỤC LỤC
3
Phần thứ nhất: JSP Technology
Chương I: Căn bản về JSP
I. Một số so sánh các công nghệ được sử dụng với công nghệ khác? 6
1. MySQL Server
1) Ưu diểm
2). Khuyết điểm 9
2. So sánh JSP với các công nghệ khác.
1) JSP với ASP
2) JSP với PHP 12
3. Tầm quan trọng của XML cùng với XSLT.
1) XML
2) XSLT 15
II. JSP scripting elements.
1. Các biến được định nghĩa sẵn trong JSP
2. Biểu thức trong JSP 18
1) Biểu thức như là giá trị trong elements khác.
2) Ví dụ expression.jsp.
3. JSP scriptlets 21
4. Khai báo trong JSP
III. JSP directives.
1. The page directive 24
2. The include directive
3. The taglib directive
IV. Các action chuẩn. 27
THÖ VIEÄN ÑIEÄN TÖÛ TRÖÏC TUYEÁN
1. Action chèn vào files ở thời gian request.
2. Action chèn vào Applets cho Java Plug-In.
1) jsp:plugin action. 30


2) jsp:param và jsp:params action.
3) jsp:fallback action.
3. Actions dùng để forward và sử dụng Components. 33
1) Chuyển các request từ các trang JSP.
2) Sử dụng component trong JSP.
Chương II: JSP JavaBeans 36
I. Khái niệm và các quy ước của Bean.
1. Khái niệm.
2. Các quy ước của Bean. 39
II. JSP sử dụng Beans.
1. Các JSP element dùng cho Bean.
1) jsp:useBean element 42
2) jsp:setProperty element
3) jsp:getProperty element
2. Phương pháp chuyển kiểu tự động JSP  Bean 45
3. Tìm hiểu cách INTROSPECTOR làm việc
1) Introspector là gì?
2) Thiết kế các phương thức mẫu dùng cho thuộc tính 48
3) Khai báo các phương thức một các tường minh
4. Thuộc tính của Bean
1) Các phương thức truy xuất 51
2) Các loại thuộc tính
III.Các giao tiếp bổ trợ cho Bean
1. Giao tiếp BeanInfo 54
THÖ VIEÄN ÑIEÄN TÖÛ TRÖÏC TUYEÁN
2. Giao tiếp Serializable
3. Giao tiếp HttpSessionBindingListener
Chương III: Tag Libraries 57
I. Tag library là gì ?
II. Cách dùng các tags trong JSP

1. Khai báo các tag library 60
2. Các loại tag
1) Các tag đơn giản
2) Các tag có thuộc tính 63
3) Các tag có nội dung
4) Các tag định nghĩa các biến kịch bản.
5) Kết hợp các tag 66
III. Định nghĩa các tag
1. Tag handler
2. Tag library descriptor 69
3. Các ví dụ
1) Các tag đơn giản
2) Các tag có thuộc tính 72
3) Các tag có nội dung
4) Các tag định nghĩa các biến kịch bản
4. Tag handler được triệu gọi như thế nào? 75
PHẦN THỨ HAI: PHÂN TÍCH – THIẾT KẾ – CÀI ĐẶT
Chương IV: Phân Tích – Thiết Kế
I. Phân Tích 78
1. Đặt vấn đề
2. Định nghĩa các yêu cầu
3. Phạm vi đề tài 81
THÖ VIEÄN ÑIEÄN TÖÛ TRÖÏC TUYEÁN
4. Mụ hỡnh x lý quan nim
1) S ng cnh
2) S phõn ró chc nng 84
3) S h thng
5. Mụ hỡnh d liu quan nim
II. Thit K 87
1. Thit k x lý

1) S h thng mc vt lý
2) Cỏc n v thit k 90
3) Mt s gii thut c th hin bng lu
2. Thit k c s d liu
1) Mụ hỡnh d liu vt lý 93
2) Bng mụ t chi tit
3) Cỏc rng buc ton vn
4) Bng tm nh hng 96
3. Thit k chng trỡnh
4. Thit k giao din
Chng V: ng Dng Qun Lý Cụng Vic 99
I. Ci t v trin khai ng dng.
1. Cỏc phn mm cn thit.
2. Trin khai ng dng web. 102
3. Ci t ng dng The Web Work.
II. Hng dn s dng.
III. ng dng c th chng trỡnh vo cụng ty Liờn Doanh Bờtụng Vit 105
c
KT LUN
HNG PHT TRIN 108
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
DANH SÁCH WEB SERVERS HỖ TRỢ JSP
BẢNG THUẬT NGỮ
TÀI LIỆU THAM KHẢO 111


THÖ VIEÄN ÑIEÄN TÖÛ TRÖÏC TUYEÁN


Lời Giới Thiệu


Thương mại điện tử giờ đây đã thực sự trở thành một lĩnh vực sơi động của nền
kinh tế, là xu hướng phát triển tất yếu của nền kinh tế trong thế kỷ 21 – Kỷ ngun
cơng nghệ thơng tin. Đặc biệt là đối với các nước đang phát triển như Việt Nam
chúng ta. Thương mại điện tử là cơ hội, là phương tiện để đưa tin học vào quản lý,
để thâm nhập vào thị trường tồn cầu, . . .
Sự phát triển của cơng nghệ thơng tin sẽ số hố nền kinh tế, sự phát triển của
thương mại điện tử sẽ giúp đẩy nhanh tốc độ tồn cầu hố về thương mại. Các
giao dịch, quản lý trên mạng sẽ xố nhòa đi sự cách biệt về thời gian và khơng
gian giữa văn phòng làm việc và nơi cư ngụ, giữa các nước, các khu vực trên thế
giới. Mức độ ảnh hưởng của các cơng ty nhỏ đối với thị trường thế giới cũng sẽ
khơng thua kém gì so với các cơng ty lớn. Xu hướng hướng hình thành các cơng ty
“Vơ trọng ” (Zero Gravity Company) ngày càng trở nên phổ biến, các cơng ty này
có thể thành cơng mà khơng cần phụ thuộc vào vị trí, phòng ốc, tài sản, . . . mà chỉ
cần một số lượng nhân viên tối thiểu và một máy tính kết nối vào mạng, điển hình
như Yahoo, Amazon, . . .
Đứng trước thực tế, thương mại điện tử vẫn còn q mới và xa lạ ở nước ta nhưng
mức độ tác động của nó đối với nền kinh tế nước ta nói riêng và thế giới nói chung
là rất lớn, hơn nữa ở hầu hết các cơ quan nhà nước hay tư nhân, đều có khâu quản
lý và phân cơng cơng việc cụ thể cho từng cá nhân và tập thể (hay nhóm) nhằm
mục đích khai thác các tiềm năng của Internet, nâng cao hiệu quả quản lý, năng
suất cơng việc và được sự cho phép, động viên của Thầy giáo, chúng em xin mượn
luận văn tốt nghiệp này để nhằm xây dựng một chương trình ứng dụng thương mại
điện tử vào quản lý, trình bày một số hiểu biết của mình về thương mại điện tử.
Tuy đã cố gắng rất nhiều nhưng sự hiểu biết có hạn nên khơng thể tránh khỏi
những sai sót, rất mong nhận được sự góp ý và chỉ bảo của thầy cơ và các bạn.
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
JSP Technology Căn Bản Về JSP
Vinh&An 04/05/2001 Trang
1

1





Phần thứ nhất






J
J
S
S
P
P


T
T
e
e
c
c
h
h
n

n
o
o
l
l
o
o
g
g
y
y


THÖ VIEÄN ÑIEÄN TÖÛ TRÖÏC TUYEÁN
JSP Technology Căn Bản Về JSP
Vinh&An 04/05/2001 Trang
2
2
P
P
h
h


n
n


t
t

h
h




n
n
h
h


t
t


J
J
S
S
P
P


T
T
e
e
c
c

h
h
n
n
o
o
l
l
o
o
g
g
y
y


C
C
h
h
ư
ư
ơ
ơ
n
n
g
g



I
I






C
C
ă
ă
n
n


B
B


n
n


V
V





J
J
S
S
P
P




JavaServer Pages (JSP) là một kỹ thuật server-side do đó chúng ta không
thể thực hiện bất kỳ hành động nào ở client. JSP cho phép chúng ta tách
thành phần động của trang ra khỏi thành phần tĩnh HTML. Rất đơn giản,
chúng ta chỉ cần viết một tài liệu HTML bình thường rồi sau đó bao quanh
mã của thành phần động trong các tag đặc biệt, hầu hết các tag bắt đầu với
<% và kết thúc với %>. Ví dụ, đây là một phần của trang JSP, có kết quả
trả về là “Thanks for reading vinh an book.” với URL là

Thanks for reading <i><%=request.getParameter(“title”)%><i>book.
Kỹ thuật JSP là một thành phần trong đại gia đình Java; nó sử dùng ngôn
ngữ kịch bản dựa vào ngôn ngữ lập trình Java, và các trang JSP được biên
dịch thành servlets. Từ đó chúng ta cũng nhận biết được, JSP thì không phụ
thuộc bất kỳ nền (platform) nào. Nó đáp ứng được khuynh hướng của Sun
MicroSystem là “write one, run anywhere”.
Các trang JSP có thể gọi các thành phần JavaBeans, Enterprise JavaBeans
(EJB) hoặc custom tags để thực hiện các xử lý trên server. Và như thế, kỹ
thuật JSP là thành phần chủ chốt trong kiến trúc khả chuyển của Java cho
những ứng dụng dựa vào Web.
Như đã biết, JSPs sẽ biên dịch thành servlets nhưng JSP không thể thay thế
servlet vì các lý do sau:

- Một số tác vụ được giải quyết rất tốt bằng servlet. Ví dụ, các ứng dụng
xuất ra dữ liệu nhị phân hoặc chỉ xác định nơi gởi trở lại cho người
dùng (bằng cách dùng response.sendRedirect) được dùng servlet thì tốt
nhất.
- Một số tác vụ khác lại được giải quyết rất tốt bằng JSP như các tình
huống mà cấu trúc nền tảng của trang HTML là cố định nhưng các giá
trị trong nó lại thay đổi.
- Còn các tác vụ còn lại cần sự kết hợp cả servlet và JSP. Ví dụ, trong yêu
cầu gốc được trả lời bằng một servlet mà thực hiện mọi công việc, lưu
trữ các kết quả trong các Beans và điều phối yêu cầu này đến một trong
những trang JSP có thể hiển thị nó.
Cả ba định hướng này đều có chổ đứng của nó. Chẳng có định hướng nào
hổ trợ đầy đủ cho mọi ứng dụng .
THÖ VIEÄN ÑIEÄN TÖÛ TRÖÏC TUYEÁN
JSP Technology Cn Bn V JSP
Vinh&An 04/05/2001 Trang
3
3
Trc khi i vo chi tit cụng ngh JSP, chỳng tụi cú mt vi so sỏnh cỏc
cụng ngh c s dng trong ng dng vi cỏc cụng ngh khỏc.
I
I
.
.


M
M



t
t


s
s




s
s
o
o


s
s


n
n
h
h


c
c



c
c


c
c


n
n
g
g


n
n
g
g
h
h











c
c


s
s




d
d


n
n
g
g


v
v


i
i


c
c



n
n
g
g


n
n
g
g
h
h




k
k
h
h


c
c
?
?



1
1
.
.


M
M
y
y
S
S
Q
Q
L
L


S
S
e
e
r
r
v
v
e
e
r
r

.
.


MySQL l h qun tr c s d liu quan h. C s d liu l mt
tp d liu cú cu trỳc v c lu tr trong cỏc bng riờng bit, mi
bng c lu trong ba files vi tờn c s d liu l tờn th mc
cha cỏc files ú. SQL c vit tt t Structured Query Language,
l ngụn ng chun ph bin nht truy cp c s d liu. Sau õy
l mt s u v nhc im ca MySQL vi cỏc h qun tr c s d
liu khỏc:
1) u dim.
- Chy c trờn rt nhiu nn khỏc nhau nh Unix, Windows,
MacOS, .
- MySQL l h qun tr nhanh, nh gn. Cỏc script files cú th
chy trờn mt s h qun tr khỏc nh MS SQL Server,
Oracle.
- Theo mt s web site thng kờ, vic thc hin cỏc lnh insert,
update, delete nhanh nht trong cỏc h qun tr.
- Min phớ v mó ngun m (open source code).
2) Khuyt im.
- Cha h tr mt s chun ANSI SQL92 nh khụng cho cỏc
cõu select lng nhau, select into table, khoỏ ngoi, triggers,
stored procedures,
- Khụng cú mụi trng ho.
2
2
.
.



S
S
o
o


s
s


n
n
h
h


J
J
S
S
P
P


v
v


i

i


c
c


c
c


c
c


n
n
g
g


n
n
g
g
h
h





k
k
h
h


c
c
.
.


1) JSP vi ASP.
ASP l cụng ngh tng ng t Microsoft. JSP cú ba li th so
vi ASP.
- Phn ng c vit bng Java, ch khụng phi bng cỏc
ngụn ng script nh VBScript, JavaScript. Vỡ th nú mnh
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
JSP Technology Căn Bản Về JSP
Vinh&An 04/05/2001 Trang
4
4
SGML
HTML
XML
CDF
SMIL
CML
MML

mẽ hơn tốt hơn đối với các ứng dụng phức tạp cần các
thành phần sử dụng lại.
- JSP chạy được trên nhiều hệ điều hành và web servers
khác nhau ngay cả với IIS của Microsoft (cần có plugins
từ Webphere, JRun, ...)
- Hổ trợ sự mở rộng tag với custom tag.
2) JSP với PHP.
Lợi điểm của JSP với PHP cũng như với ASP. JSP được viết
bằng Java mà chúng ta đã biết với các API mở rộng cho mạng,
truy cập cơ sở dữ liệu, các đối tượng phân tán, … trong khi với
PHP đòi hỏi chúng ta phải học cả một ngôn ngữ mới.
3
3
.
.


T
T


m
m


q
q
u
u
a

a
n
n


t
t
r
r


n
n
g
g


c
c


a
a


X
X
M
M
L

L


c
c
ù
ù
n
n
g
g


v
v


i
i


X
X
S
S
L
L
T
T
.

.


1) XML.
XML là tập con của SGML, nó kết hợp tính linh động và sức
mạnh của SGML cùng với một số tính năng hữu ích của HTML.
Vì XML là tập con của SGML nên nó cũng tương thích với các
hệ thống dựa vào SGML đã có. XML là lực đẩy cho các nghi
thức trên internet và các phần mềm để dễ dàng xử lý và truyền dữ
liệu.
Ở trên đã nói XML là tập con của SGML và HTML là một sự cài
đặt của SGML, mô hình sau đây diễn tả mối quan hệ giữa các
ngôn ngữ và các siêu ngôn ngữ:



Metalanguages Languages
Implementation

subset


Implementation




THÖ VIEÄN ÑIEÄN TÖÛ TRÖÏC TUYEÁN
JSP Technology Cn Bn V JSP
Vinh&An 04/05/2001 Trang

5
5

CDF : Channel Difinition Format cho phộp cỏc tỏc gi ca cỏc Web
sites cho phộp cỏc ngi ng ký bit khi no Web site ny thay i,
CDF ó c gii thiu trong IE4 vỡ vy nú ch lm vic vi IE ca
Microsoft.
SMIL : Synchronized Multimedia Integration Language c s
dng ng b húa cỏc dũng d liu a truyn thụng c truyn
qua internet.
CML : Chemical Markup Language mụ t cỏc cụng thc húa hc.
MML: Mathematical Markup language- mụ t cỏc phng trỡnh, biu
thc toỏn hc.
Tớnh t mụ t d liu ca XML : cỏc tags mụ t cỏc vn , cỏc
i tng gn gi vi th gii thc. Chỳng ta s thy rừ hn vi
hai vớ d sau, õy l vớ d minh ha nờn nú cũn thiu nhiu thuc
tớnh trong th gii thc :














- XML cú mi quan h cht ch vi JSP, t t JSP h tr cỳ
phỏp XML, chỳng ta cú th trn ln mó chỳng vi nhau d
dng nh JSP vi HTML nh th chỳng ta cú th dựng JSP t
ng phỏt sinh trang XML.
- Hin nay cú rt nhiu sn phm qun tr c s d liu m mi
sn phm u cú cỏc c tớnh riờng nú, do ú khi cỏc c s d
liu khỏc nhau cn chuyn i d liu vi nhau li khụng
tng thớch. Vỡ vy ngi lm cụng vic ny cn phi bit
nhiu sn phm qun tr c s d liu khỏc nhau. Do ú XML
l mt nh dng chun m cỏc h qun tr cn h tr. Hin
nay cú nhiu h qun tr ln h tr XML nh MS SQL
Server, Oracle, hiu r hn chỳng tụi v hai hỡnh sau:

Vớ d vi XML tags
<student>
<name>
<first>Vinh</first>
<middle>Tran Ngoc</middle>
<last>Nguyen</last>
</name>
<numberid>0750</numberid>
<age>22</age>
</student>
Vớ d vi HTML tags
<table>
<tr>
<td>Vinh</td>
<td>Tran Ngoc</td>
<td>Nguyen</td>
</tr>

<tr>
<td>Number id : </td>
<td>0750</td>
</tr>
<tr>
<td>Age :</td>
<td>22</td>
</tr>
</table>
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
JSP Technology Căn Bản Về JSP
Vinh&An 04/05/2001 Trang
6
6
SQL Server
Database
Oracle
Database
Legacy ISAM /
VSAM Database
POET
Database
Files
Mô Hình Chuyển Đổi Dữ Liệu
Giữa Các CSDL

SQL Server
Database
Oracle
Database

Legacy ISAM /
VSAM Database
POET
Database
Files
Mô Hình Chuyển Đổi Dữ Liệu
Giữa CSDL Và XML
Common
XML
Format

2) XSLT.
Extensible Stylesheet Language Transformation (XSLT) là một
ngơn ngữ được tách ra từ ngơn ngữ XSL, “XSLT là một ngơn
ngữ dùng để chuyển đổi các XML document thành các XML
document khác”. Nó được viết bằng XML, điều này có nghĩa
rằng sự chuyển đổi trong XSLT được trình bày như một well-
formed XML document. XSLT đóng vai trò quan trọng trong
hướng phát triển “phát sinh ngơn ngữ markup hướng người
dùng”.
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
JSP Technology Căn Bản Về JSP
Vinh&An 04/05/2001 Trang
7
7
I
I
I
I
.

.


J
J
S
S
P
P


s
s
c
c
r
r
i
i
p
p
t
t
i
i
n
n
g
g



e
e
l
l
e
e
m
m
e
e
n
n
t
t
s
s
.
.


Các scripting elements trong JSP cho phép chúng ta chèn mã vào
servlet mà sẽ được phát sinh từ trang JSP. Có ba dạng sau:
- Biểu thức có dạng <%= expressions %>, được định giá trị và chèn
vào luồng xuất của servlet.
- Scriptlet có dạng <% code %>, được chèn vào phương thức
_jspService của servlet (được gọi là service).
- Khai báo có dạng <%! code %>, được chèn vào thân của lớp servlet,
như là các field của lớp thông thường.
T

T
e
e
m
m
p
p
l
l
a
a
t
t
e
e


t
t
e
e
x
x
t
t


Trong nhiều trường hợp, phần lớn các trang JSP chỉ bao gồm HTML
tĩnh, được biết như là template text. Có hai ngoại lệ phụ cho quy tắc
“template text được chuyển thẳng sang HTML tĩnh”. Đầu tiên, nếu

chúng ta muốn có <% trong luồng xuất thì chúng ta cần phải đặt <\%
trong template text. Thứ hai, nếu chúng ta muốn có chú thích trong
JSP mà không có trong tài liệu kết quả, dùng:
<%-- JSP comments --%>
Chú thích HTML có dạng:
<!-- HTML comments -->
thì được chuyển qua tài liệu HTML thông thường.
C
C
ú
ú


p
p
h
h
á
á
p
p


X
X
M
M
L
L



Trong JSP có rất nhiều element có cú pháp XML như jsp:useBean,
jsp:include, jsp:setProperty, ... Tuy nhiên scripting elements lại có
hai dạng cú pháp sau:

JSP Syntax XML Syntax
<% = Expressions %>
<jsp:expression>
Java code
</jsp:expression>
<% Scriptlets %>
<jsp:scriptlet>
Java code
</jsp:scriptlet>
<%! Declarations %>
<jsp:declaration>
Java code
</jsp:declaration>
THÖ VIEÄN ÑIEÄN TÖÛ TRÖÏC TUYEÁN
JSP Technology Căn Bản Về JSP
Vinh&An 04/05/2001 Trang
8
8
1
1
.
.


C

C
á
á
c
c


b
b
i
i
ế
ế
n
n


đ
đ
ư
ư


c
c


đ
đ



n
n
h
h


n
n
g
g
h
h
ĩ
ĩ
a
a


s
s


n
n


t
t
r

r
o
o
n
n
g
g


J
J
S
S
P
P


Để đơn giản hố mã trong các biểu thức hay scriptlets trong JSP,
người ta cung cấp cho chúng ta chín đối tượng đã được định nghĩa
trước, có người còn gọi là các đối tượng ngầm định. Do các khai báo
trong JSP nằm ngồi phương thức _jspService (được gọi bởi service)
nên các đối tượng này khơng cho phép các khai báo truy cập vào.
request
Biến này có kiểu là javax.servlet.http.HttpServletRequest, có
phạm vi trong một u cầu (request). Nó cho phép chúng ta
truy cập vào các tham số của request như loại request (GET,
POST, …) và các incoming HTTP header (cookies).
response
Có kiểu là javax.servlet.http.HttpServletResponse, có phạm vi
tồn trang (page). Chú ý rằng vì luồng xuất thì thường làm

vật đệm cho nên việc gán mã tình trạng của HTTP và
response header thì hợp lý trong JSP, mặc dù điều này thì
khơng được phép trong servlet một khi đã có luồng xuất nào
được gởi đến client.
out
Có kiểu javax.servlet.jsp.JspWriter và phạm vi trong một
trang (page). Dùng để gởi các thơng xuất đến client. Đối
tượng out được dùng thường xun trong scriptlets, các biểu
thức tự động được đưa vào luồng xuất nên hiếm khi cần tham
chiếu đến đối tượng này.
session
Có phạm vi trong một phiên truyền (session) và kiểu tương
ứng là javax.servlet.http.HttpSession. Gọi về các phiên truyền
được tạo tự động vì thế biến này vẫn còn kết nối ngay cả
chẳng có một tham chiếu incoming session nào. Một ngoại lệ
là nếu chúng ta sử dụng thuộc tính session của page directive
để tắc các phiên truyền, mà lại cố tham chiếu đến biến session
thì sẽ gây ra các lỗi vào lúc trang JSP được dịch thành servlet.
application
Biến này có kiểu là javax.servlet.ServletContext, có phạm vi
trong tồn ứng dụng (application). ServletContext lấy từ một
đối tượng cấu hình servlet là getServletConfig().getContext().
Các trang JSP có thể lưu trữ dữ liệu persistent trong đối
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
JSP Technology Căn Bản Về JSP
Vinh&An 04/05/2001 Trang
9
9
tượng ServletContext tốt hơn là trong các biến thể hiện.
ServletContext có các phương thức setAttribute và

setAttribute mà cho phép chúng ta lưu trữ dữ liệu
config
Biến này có phạm vi trang (page) và có kiểu tương ứng là
javax.servlet.ServletConfig.
pageContext
Biến này có kiểu là javax.servlet.jsp.PageContext và có phạm
vi là trang (page). pageContext cho phép một điểm truy cập
duy nhất tới nhiều thuộc tính của trang và cung cấp một nơi
thuận tiện để lưu trữ dữ liệu dùng chung. Biến pageContext
lưu trữ giá trị của javax.servlet.jsp.PageContext cùng với
trang hiện hành. Có thể xem chi tiết trong chương II về
JavaBeans.
page
Biến này đồng nghĩa với this và điều này thì không hữu ích
trong ngôn ngữ lập trình Java, có kiểu là java.lang.Object và
có phạm vi trang (page).
exception
Trong một trang lỗi, chúng ta có thể truy cập vào đối tượng
exception. Biến này có kiểu là java.lang.Throwable và phạm
vị là trang (page).
2
2
.
.


B
B
i
i



u
u


t
t
h
h


c
c


t
t
r
r
o
o
n
n
g
g


J
J

S
S
P
P


Biểu thức trong JSP được dùng để chèn các giá trị trực tiếp vào
luồng xuất. Nó có dạng sau:
<%= Java expressions %>
Biểu thức này được định trị, được chuyển thành chuổi, và được chèn
vào trong trang. Sự định trị diễn ra ở thời gian runtime (khi trang
được yêu cầu) và do đó có đầy đủ quyền truy cập các thông tin của
yêu cầu này. Ví dụ sau đây mô tả ngày/giờ mà trang được yêu cầu:
Current time: <%= new java.util.Date() %>
Trong Java mỗi câu lệnh đều có dấu ‘;’ kết thúc dòng. Tại sao biểu
thức trong JSP lại không có dấu ‘;’? Vì biểu thức này được đưa vào
luồng xuất chẳng hạn như PrintWriter. Với ví dụ trên có thể chuyển
vào servlet như sau:
PrintWriter out = response.getWriter();
THÖ VIEÄN ÑIEÄN TÖÛ TRÖÏC TUYEÁN
JSP Technology Cn Bn V JSP
Vinh&An 04/05/2001 Trang
1
1
0
0
out.println(Current time: + new java.util.Date());
1
1
)

)


B
B
i
i


u
u


t
t
h
h


c
c


n
n
h
h





l
l




g
g
i
i




t
t
r
r




t
t
r
r
o
o
n

n
g
g


e
e
l
l
e
e
m
m
e
e
n
n
t
t
s
s


k
k
h
h


c

c
.
.


Biu thc cú th c s dng trong cỏc thuc tớnh ca cỏc
elements khỏc. Giỏ tr t cỏc biu thc ny s c tớnh vo thi
gian yờu cu (request time). Cỏc elements cho phộp s dng biu
thc trong cỏc thuc tớnh ca chỳng l:

Tờn Element Tờn thuc tớnh
jsp:setProperty name v value
jsp:include page
jsp:forward page
jsp:param value
2
2
)
)


V
V




d
d





e
e
x
x
p
p
r
r
e
e
s
s
s
s
i
i
o
o
n
n
.
.
j
j
s
s
p

p
.
.


õy l mt vớ d hon chnh u tiờn ca JSP. Nú ch hin th
thi gian hin thi, tờn mỏy,.. khi file ny c truy cp.

Code 1: expression.jsp
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<!-- Example of JSP Expressions. -->
<html>
<head>
<title>JSP Expressions</title>
<meta name="author" content="Vinh&An" />
<meta name="keywords" content=
"JSP,expressions,JavaServer,Pages,servlets" />
<meta name="description" content=

Code 1: expression.jsp (tip theo)
"A quick example of JSP expressions." />
<link rel="stylesheet" href="JSP-Styles.css"
type="text/css" />
</head>
<body>
<h2>JSP Expressions</h2>
<ul>

<li>
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
JSP Technology Căn Bản Về JSP
Vinh&An 04/05/2001 Trang
1
1
1
1
Current time: <%= new java.util.Date() %>
</li>
<li>
Your hostname:<%=request.getRemoteHost()%>
</li>
<li>Your session ID: <%= session.getId() %></li>
<li>The <code>testParam</code> form parameter:
<%= request.getParameter("testParam") %>
</li>
</ul>
</body>
</html>
3
3
.
.


J
J
S
S

P
P


s
s
c
c
r
r
i
i
p
p
t
t
l
l
e
e
t
t
s
s


Scriptlets là những đoạn mã có chứa bất kỳ mã Java nào nằm giữa
“<%” và “%>”. Nếu chúng ta muốn thực hiện thứ gì đó phức tạp hơn
là chỉ chèn vào một biểu thức đơn giản thì JSP scriptlets cho phép
chúng ta thêm bất kỳ đoạn mã Java nào vào trang JSP. Các scriptlets

này được đưa vào phương thức _jspService (mà được gọi bởi
service) của servlet. Có cú pháp:
<% Java Code %>

Code 2: scriptlet.jsp
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<!-- Example of JSP Scriptlets. -->
<html>
Code 2: scriptlet.jsp (tiếp theo)
<head>
<title>JSP Scriptlets</title>
</head>
<%
String bgColor = request.getParameter("bgColor");
boolean hasExplicitColor;
if (bgColor != null) {
hasExplicitColor = true;
} else {
hasExplicitColor = false;
bgColor = "WHITE";
}
%>
<body bgcolor="<%= bgColor %>">
<h2 align="center">Color Testing</h2>
THÖ VIEÄN ÑIEÄN TÖÛ TRÖÏC TUYEÁN
JSP Technology Cn Bn V JSP
Vinh&An 04/05/2001 Trang
1

1
2
2
<%
if (hasExplicitColor) {
out.println("You supplied an explicit background color of " +
bgColor + ".");
} else {
out.println("Using default background color of WHITE. " +
"Supply the bgColor request attribute to try " +
"a standard color, an RRGGBB value, or to see " +
"if your browser supports X11 color names.");
}
%>
</body>
</html>
4
4
.
.


K
K
h
h
a
a
i
i



b
b


o
o


t
t
r
r
o
o
n
n
g
g


J
J
S
S
P
P



Mt khai bỏo trong JSP cho phộp chỳng ta nh ngha cỏc phng
thc hoc cỏc trng (bin) cú phm vi ton trang. Khai bỏo s c
chốn vo trong lp ca servlet (bờn ngoi phng thc _jspService
c gi bi service x lý mt yờu cu). Mt khai bỏo cú dng
sau:
<%! Java Code %>
Cỏc khai bỏo trong JSP thỡ khụng phỏt sinh ra bt k thụng xut no,
chỳng thng c dựng liờn kt vi cỏc biu thc hoc
scriptlets. Chng hn, õy l mt trang JSP m in ra s ln truy cp
vo trang.

Code 3: declaration.jsp
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<!-- Example of JSP Declarations. -->
<html>
<head>
<title>JSP Declarations </title>
<link rel="styleshhet" href="JSP-Styles.css" type="text/css" />
</head>
<body>
<h1>JSP Declarations</h1>
<%! private int accessCount = 0; %>
<h2>Accesses to page since server reboot:
<%= ++accessCount %></h2>
</body>
</html>
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
JSP Technology Cn Bn V JSP

Vinh&An 04/05/2001 Trang
1
1
3
3
I
I
I
I
I
I
.
.


J
J
S
S
P
P


d
d
i
i
r
r
e

e
c
c
t
t
i
i
v
v
e
e
s
s
.
.


Directives l cỏc lnh (ch th) n JSP container x lý trang JSP,
chỳng tỏc ng lờn ton b cu trỳc ca lp servlet. Chỳng cú dng sau:
<%@ directive {attr=value} %>
Cỳ phỏp ny thỡ d son tho, ngn gn, sỳc tớch nhng khụng tng
thớch vi XML (Cỳ phỏp XML di).
Directives thỡ khụng xut bt k th gỡ ra lung xut out. Ch cú ba
directives trong JSP: page, include v taglib.
Cỳ phỏp XML
Tng t nh scripting elements, cỏc directives cng cú hai dng cỳ
phỏp:


JSP Syntax XML Syntax

<%@ page attr_list %> :
attr_list s c mụ t phn sau
trong chng ny.
<jsp:directive.page attr_list />

<%@ include file=URL %> <jsp:directive.include file=URL />
<%@ taglib attr_list %> :
directive ny c trỡnh by
trong chng III Tag Libraries.
<jsp:root attr_list>
<!-- other elements-->
</jsp:root>
1
1
.
.


T
T
h
h
e
e


p
p
a
a

g
g
e
e


d
d
i
i
r
r
e
e
c
c
t
t
i
i
v
v
e
e


page directive cho phộp chỳng ta iu khin cu trỳc ca servlet
bng cỏch a vo cỏc lp, t MIME type, . Mt page directive
cú th c t bt c ni no trong trang JSP.
<%@ page import=java.util.*, com.vinhan.* %>

page directive nh ngha mt s thuc tớnh ph thuc vo trang v
giao tip gia cỏc thuc tớnh ny vi JSP container.
language
nh ngha ngụn ng kch bn c s dng trong scriptlets,
biu thc v khai bỏo. Trong JSP 1.2 l phiờn bn mi nht
ch cú h tr java cho thuc tớnh ny do ú java ny cng
l giỏ tr mt nh.
<%@ page language=java %>
extends
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
JSP Technology Căn Bản Về JSP
Vinh&An 04/05/2001 Trang
1
1
4
4
Thuộc tính này chỉ định lớp cha (superclass) của servlet sẽ
được phát sinh cho trang JSP, có dạng sau:
<%@ page extends=“package.class” %>
Chú ý rằng khi sử dụng thuộc tính này phải hết sức cẩn thận
vì tại server có thể đã dùng lớp cha mật định.
import
Thuộc tính này mơ tả các kiểu sẵn dùng trong mơi trường
kịch bản (theo java). Chúng ta có thể import vào từng lớp
hoặc cả một gói (package).
<%@ page import=“package.class | package.*” %>
Nếu import vào nhiều lớp hay packages thì cách nhau dấu “,”.
session
Thuộc tính session kiểm sốt liệu có hay khơng một trang
tham gia vào HTTP session. Có hai giá trị “true” và “false”.

Mật định là “true”, chỉ ra rằng biến ngầm định session nên
được nối kết với session hiện hành. Giá trị “false” có nghĩa
rằng chẳng có session nào được sử dụng tự động và nếu cố
truy cập vào biến session sẽ trả lỗi vào lúc trang được dịch
thành servlet.
buffer
Thộc tính này xác định kích thước của vùng đệm được sử
dụng bởi biến out. Có dạng sau:
<%@ page buffer=“none | sizekb” %>
Thuộc tính này có giá trị mật định là “8kb”, giá trị “none”
chẳng có vùng đệm nào được cấp và tất cả dữ liệu xuất sẽ
được ghi trực tiếp qua ServletResponse, PrintWriter.
autoFlush
Xác định liệu luồng xuất có vùng đệm được tự động flush
(giá trị “true” mật định) khi vùng đệm đầy hay sẽ tung ra một
ngoại lệ khi vùng đệm tràn (“false”).
Chú ý rằng sẽ khơng hợp lý nếu đặt autoFlush=“false” khi
buffer=“none”.
isThreadSafe
Xác định mức độ an tồn của tiểu trình (thread) được cài đặt
trong trang (với giao tiếp SingleThreadModel), “true” là giá
trị mật định.
info
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
JSP Technology Cn Bn V JSP
Vinh&An 04/05/2001 Trang
1
1
5
5

nh ngha mt chui cú th truy xut t servlet bng phng
thc getServletInfo().
<%@ page info=Some Message %>
errorPage
Thuc tớnh ny xỏc nh mt trang JSP nờn bt k cỏc ngoi
l no c tung ra nhng khụng bt ngoi l ny trong trang
hin hnh.
<%@ page errorPage=Ralative URL %>
Ngoi l tung ra s cú sn trong bin ngm nh exception.
isErrorPage
Xỏc nh trang JSP hin thi cú th hot ng nh mt trang
li cho mt trang JSP khỏc. Giỏ tr false l mt nh cho
thuc tớnh ny.
contentType
Thuc tớnh ny gỏn Content-Type cho response header, mụ t
kiu MIME ca ti liu c gi n client. Thuc tớnh
contentType cú mt trong hai dng sau:
<%@ page contentType=MIME-Type %>
<%@ page contentType=MIME-Type;
charset=Character-Set %>
Mt s kiu MIME-Type thng dựng: text/html,
text/xml, text/plain, image/gif, image/jpeg.
pageEncoding
nh ngha b mó hoỏ ký t cho trang JSP (character
encoding), thuc tớnh ny h tr cho b mó Unicode v Latin-
1, cú giỏ tr mt nh l ISO-8859-1

Code 4: pagedirective.jsp
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html

PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html>
<head>
<title>The page Directive</titlle>
<link rel="styleshhet" href="JSP-Styles.css"
type="text/css" />
</head>
<body>
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
JSP Technology Căn Bản Về JSP
Vinh&An 04/05/2001 Trang
1
1
6
6
<h2>The page Directive</h2>
Ví dụ 4: pagedirective.jsp (tiếp theo)
<%-- JSP page directive --%>
<%@ page import="java.util.*, com.vinhan.*"
contenType="text/html" %>
<%-- JSP Declaration (xem phần I.4) --%>
<%!
private String randomID() {
int num = (int)(Math.random()*10000000.0);
return("id" + num);
}
private final String NO_VALUE = "<i>No Value</i>";
%>
<%-- JSP Scriptlet (xem phần I.3) --%>

<%
Cookie[] cookies = request.getCookies();
String oldID = ServletUtilities.getCookieValue(cookies,
"userID", NO_VALUE);
String newID;
if (oldID.equals(NO_VALUE)) {
newID = randomID();
} else {
newID = oldID;
}
LongLivedCookiecookie = new LongLivedCookie ("userID" ,
newID);
response.addCookie(cookie);
%>
<%-- JSP Expressions (xem phần I.2) --%>
This page was accessed at <%= new Date() %> with a userID
cookie of <%= oldID %>.
</body>
</html>
2
2
.
.


T
T
h
h
e

e


i
i
n
n
c
c
l
l
u
u
d
d
e
e


d
d
i
i
r
r
e
e
c
c
t

t
i
i
v
v
e
e


Chúng ta sử dụng include directive để đưa một file vào tài liệu JSP
chính vào lúc tài liệu dịch thành servlet (mà thường vào lần đầu tiên
truy cập vào trang này). Có cú pháp như sau:
<%@ include=“Relative URL” %>
Thật sự JSP chia làm hai nhánh để include một file vào một tài liệu
chính. File được include thì được chèn vào trang vào lúc biên dịch,
Còn nhánh còn lại thì được chèn vào tại thời gian yêu cầu (request)
với element là jsp:include sẽ được trình bày trong mục III. Các
action chuẩn.
THÖ VIEÄN ÑIEÄN TÖÛ TRÖÏC TUYEÁN
JSP Technology Căn Bản Về JSP
Vinh&An 04/05/2001 Trang
1
1
7
7
File được include vào không những chứa HTML tĩnh mà còn chứa
được mã JSP động. Đặc tính này cho phép chúng ta tạo các thanh
định hướng, các phần thông tin cần tương tác, đếm số trang, ... riêng
trên một file khi chúng ta có nhiều trang sử dụng lại chúng.
Nếu file được include thay đổi thì tất cả JSP files sử dụng nó cần

phải được cập nhật lại.
Ví dụ về include directive
File đầu tiên là một đoạn của trang chứa các thông tin tương tác
cần thiết cho file thứ hai dùng lại bằng include directive.

Code 5: contact.jsp
<%@ page import="java.util.Date" %>
<%-- Các biến sau sẽ trở thành các fields trong servlet khi JSP file gọi
file này. --%>
<%! private int accessCount = 0;
private Date accessDate = new Date();
private String accessHost = "<i>No previous access</i>";
%>
<hr/>
This page &copy; 2000
<a href="http//www.vinhan.com/">my-company.com</a>.
This page has been accessed <%= ++accessCount %>
times since server reboot. It was last accessed from
<%= accessHost %> at <%= accessDate %>.
<% accessHost = request.getRemoteHost(); %>
<% accessDate = new Date(); %>

Code 6: includedirective.jsp
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
Code 6: includedirective.jsp
<!-- Example of including files at page translation time. -->
<html>

<head>
<title>The include Directive</title>
<link rel="styleshhet" href="JSP-Styles.css" type="text/css" />
</head>
<body>
<table boder=5 align="center">
<tr>
<th class="title">Some Random Page</th>
THÖ VIEÄN ÑIEÄN TÖÛ TRÖÏC TUYEÁN
JSP Technology Căn Bản Về JSP
Vinh&An 04/05/2001 Trang
1
1
8
8
</tr>
</ table >
<p>Information about our products and services.</p>
<p>Vinh, Vinh, Vinh.</p>
<p>An, An, An.</p>
<%@ include file="contact.jsp" %>
</body>
</html>
3
3
.
.


T

T
h
h
e
e


t
t
a
a
g
g
l
l
i
i
b
b


d
d
i
i
r
r
e
e
c

c
t
t
i
i
v
v
e
e


Directive này định nghĩa thư viện tag và tiếp đầu ngữ cho những
custom tag được sử dụng trong trang JSP. Có cú pháp sau:
<%@ taglib uri=“URIToTagLib” prefix=“tagPrefix”%>
taglib directive sẽ được trình bày chi tiết trong chương III.
I
I
V
V
.
.


C
C
á
á
c
c



a
a
c
c
t
t
i
i
o
o
n
n


c
c
h
h
u
u


n
n
.
.


Actions chẳng qua là elements được định nghĩa trong bản đặc tả JSP và

luôn luôn có sẵn trong các JSP file mà không cần import vào bất kỳ thứ
gì và chúng có cú pháp XML. Có chín actions chuẩn: jsp:include,
jsp:useBean, jsp:setProperty, jsp:getProperty, jsp:plugin, jsp:forward,
jsp:fallback, jsp:params, jsp:param sẽ được giới thiệu trong mục này.
1
1
.
.


A
A
c
c
t
t
i
i
o
o
n
n


c
c
h
h
è
è

n
n


v
v
à
à
o
o


f
f
i
i
l
l
e
e
s
s






t
t

h
h


i
i


g
g
i
i
a
a
n
n


r
r
e
e
q
q
u
u
e
e
s
s

t
t
.
.


Với include directive cho phép chúng ta thêm vào các tài liệu chứa
mã JSP vào nhiều trang khác nhau nhưng lại có vấn đề là đòi hỏi
chúng ta phải cập nhật lại ngày sữa đổi của trang khi file được
include thay đổi. Để loại bỏ vấn đề này đặt tả JSP cung cấp cho
chúng ta một action là <jsp:include> để include các file vào thời
gian yêu cầu (request). Mặc khác, do trang được biên dịch thành
servlet vào thời gian yêu cầu vì thế các file được include không thể
chứa mã JSP. Cú pháp của action này là:
<jsp:include page=“Relative URL” flush=“true”>
Ví dụ sau sử dụng jsp:include action để include bốn file html, ví dụ
này chỉ hiện thị các thông tin của các web sites nỗi tiếng.

Code 7: includerequest.jsp
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<!-- Example of including files at request time. -->
<html>
<head>
THÖ VIEÄN ÑIEÄN TÖÛ TRÖÏC TUYEÁN
JSP Technology Căn Bản Về JSP
Vinh&An 04/05/2001 Trang
1
1

9
9
<title>What’s New</title>
<link rel="stylesheet" href="JSP-Styles.css" type="text/css" />
</head>
<body>
<center>
<table boder="5">
<tr>
<th class="title">What's New at JspNews.com
</th>
</tr>
</table>
</center>
<p>Here is a summary of our four most recent news stories:</p>
<ol>
<li><jsp:include page="item1.html" flush="true" /></li>
<li><jsp:include page="item2.html" flush="true" /></li>
<li><jsp:include page="item3.html" flush="true" /></li>
<li><jsp:include page="item4.html" flush="true" /></li>
</ol>
</body>
</html>

Code 8: item1.html
<b>Bill Gates acts humble.</b> In a startling and unexpected
development, Microsoft big wig Bill Gates put on an open act of
humility yesterday.
<a href=" details...</a>


Code 9: item2.html
<b>Scott McNealy acts serious.</b> In an unexpected twist,
wisecracking Sun head Scott McNealy was sober and subdued at
yesterday's meeting.
<a href=" details...</a>

Code 10: item3.html
<b>Larry Ellison acts conciliatory.</b> Catching his competitors
off guard yesterday, Oracle prez Larry Ellison referred to his
rivals in friendly and respectful terms.
<b href=" details...</a>

Code 11: item4.html
<b>Sportscaster uses "literally" correctly.</b> In an apparent
slip of the tongue, a popular television commentator was
heard to use the word "literally" when he did <i>not</i>
THÖ VIEÄN ÑIEÄN TÖÛ TRÖÏC TUYEÁN

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×