Lời nói đầu
Trong những năm gần đây, cùng với sựphát triển của Công nghệ thông tin,
mạng máy tính đang đ-ợc phát triển rộng rãi, một trong những ứng dụng phổ biến
trên mạng máy tính là Internet và các dịchvụ trở nên không thể thiếu trong cuộc
sống hiện đại. Để phục vụ việc học tập nghiên cứu của sinh viên cao đẳng CNTT,
chúng tôi biên soạn giáo trình Thiết kế và lập trình Web. Giáo trình bao gồm 5
ch-ơng, mỗi ch-ơng đều có phần kiến thức lý thuyết và câu hỏi nghiên cứu cụ thể.
Ch-ơng 1: Giới thiệu chung
Giới thiệu các khái niệm cơ bản về mạngmáy tính, Internet, địa chỉ IP, giao
thức truyền thông và các khái niệm khác.
Ch-ơng 2: Thiết kế Web với ngôn ngữ đánh dấu siêu văn bản (HTML)
Trình bày khái niệm ngôn ngữ đánh dấu siêu văn bản, các thành phần cơ bản và
cấu trúc của một tập tin HTML. Giới thiệu các vấn đề liên quan đến việc sử dụng
cú pháp và hiệu ứng của ngôn ngữ đánh dấu siêu văn bản, để lập trình Web.
Ch-ơng 3: Ngôn ngữ kịch bản trong lập trình Web
Giới thiệu hai ngôn ngữ kịch bản phổ biến hiện nay là VBScript và JavaScript.
H-ớng dẫn các b-ớc tiến hành khai báo, lập trình và sử dụng ngôn ngữ kịch bản
trong HTML.
Ch-ơng 4: Lập trình Web động với công nghệ ASP
Giới thiệu lập trình Web động với côngnghệ ASP (Active Server Page). Các
khái niệm cơ bản, các đối t-ợng cơ bản trong ASP, ứng dụng vào lập trình một
trang Web động cụ thể.
Ch-ơng 5: Kết nối cơ sở dữ liệu trong lập trình Web động với ASP
Giới thiệu ADO (ActiveX Data Object), các đối t-ợng của ADO, cách thức kết
nối với cơ sở dữ liệu, xử lý lỗi trong khi lập trình các ứng dụng. H-ớng dẫn sử dụng
các lệnh SQL trong lập trình bằng ASP. ứng dụng tổng hợp toàn bộ kiến thức để
xây dựng một trang Web động hoàn chỉnh.
Nội dung trọng tâm đ-ợc trình bày trong ch-ơng hai, ch-ơng ba và ch-ơng bốn,
cuối mỗi ch-ơng này đều có bài tập h-ớng dẫn lập trình. Giáo trình Thiết kế và lập
trình Web h-ớng dẫn cách xây dựng một ứng dụng Web từ cơ bản đến nâng cao
bằng công nghệ HTML và ASP. Đ-ợc biên soạn với ph-ơng châm đảm bảo tính
logic, khoa học, thiết thực, dễ hiểu nhằm trang bị cho sinh viên những kiến thức cơ
bản, phục vụ cho nghiên cứu, thiết kế, lập trình một ứng dụng Web hoàn chỉnh.
Tài liệu này đ-ợc tham khảo từ một số tài liệu của các tác giả trong n-ớc, tổng
hợp và l-ợc dịch từ một số tài liệu chuyên ngành của n-ớc ngoài, nên một số thuật
ngữ Tin học không thể thay thế bằng tiếng Việt. Để tiện cho việc trình bày ý t-ởng
xuyên suốt của tài liệu, chúng tôi để nguyên bản thuật ngữ tiếng Anh và giải thích
bằng thuật ngữ tiếng Việt nếu có cụm từ t-ơng đ-ơng.
Tuy có nhiều cố gắng trong công tác biên soạn, nh-ng vẫn không tránh khỏi
thiếu sót. Trong phạm vi hạn hẹp của cuốn tài liệu này, không thể đề cập đ-ợc tất
cả những vấn đề nóng hổi trong lĩnh vực thiết kế và lập trình Web đòi hỏi.
Rất mong sự đóng góp phê bình từ bạn đọc, để tài liệu đ-ợc hoàn chỉnh hơn.
Mọi ý kiến góp ý, xin gửi về Tr-ờng Sĩ quan CH-KT Thông tin.
Tác giả
Ch-ơng 1
Giới thiệu chung
1.1 Mạng máy tính
1.1.1 Định nghĩa
Trong quá trình khai thác, sử dụng máy tính cá nhân (Personal ComputerPC), việc trao đổi, sử dụng thông tin của một xã hội phát triển có nhu cầu to lớn.
Khi các máy vi tính ch-a có sự liên kết với nhau, thì việc trao đổi thông tin mất rất
nhiều thời gian để sao chép, gây nhiều phiền phức. Để giải quyết vấn đề trên với đà
phát triển của nền công nghiệp máy tính, các thiết bị đặc biệt và mạng máy tính ra
đời là một tất yếu.
Vì vậy, mạng (network) là một tập hợp các hệ thống máy tính và các thiết bị
mạng, chia sẻ dữ liệu, ch-ơng trình, tài nguyên thông qua một đ-ờng truyền kết nối
truyền thông dùng chung, trên cơ sở một hệ điều hành mạng.
Hình 1.1. Một mạng máy tính điển hình
Đ-ờng truyền là một hệ thống các thiết bịtruyền dẫn vật lý để chuyển tải các
tín hiệu sóng điện từ.
Đ-ờng truyền vật lý có thể phân làm 2 loại:
- Hữu tuyến: cáp đồng trục, cáp đôi dây xoắn, cáp quang, cáp điện thoại,
và công nghệ mới nhất hiện nay là cáp điện năng thông th-ờng.
- Vô tuyến: sóng cực ngắn (viba), tia hồng ngoại...
1.1.2 Phân loại
Hiện nay, thông th-ờng mạng máy tính đ-ợc phân loại nh-sau:
a. Mạng cục bộ - LAN (Local Area Network)
Các máy tính cá nhân và các máy tính khác trong phạm vi một khu vực hạn
chế đ-ợc nối với nhau bằng các dây cáp chất l-ợng tốt, sao cho những ng-ời sử
dụng có thể trao đổi thông tin, dùng chung các thiết bị ngoại vi, và sử dụng các
ch-ơng trình cũng nh-các dữ liệu đã đ-ợc l-u trữ trong một máy tính dành riêng
gọi là máy dịch vụ tệp.
b. Mạng diện rộng - WAN (Wide Area Network)
Các mạng lớn hơn, gọi là mạng diện rộng (Wide Area Network), dùng các
đ-ờng dây điện thoại hoặc các ph-ơng tiện liên lạc khác để liên kết lạc khác để liên
kết các máy tính với nhau trong phạm vitừ vài chục đến vài ngàn dặm.
Sự khác nhau giữa LAN và WAN: khác nhiều về quy mô và mức độ phức
tạp, mạng cục bộ có thể chỉ liên kết vài ba máy tính cá nhân và một thiết bị ngoại vi
dùng chung đắt tiền, nh-máy in laser chẳng hạn. Các hệ thống phức tạp hơn thì có
các máy tính trung tâm (máy dịchvụ tệp) và cho phép những ng-ời dùng tiến hành
thông tin với nhau thông qua th-điện tử để phân phối các ch-ơng trình nhiều ng-ời
sử dụng, và để thâm nhập vào các cơ sở dữ liệu dùng chung.
c. Mạng đô thị - MAN (Metropolitan Area Network)
Là một mạng trải dài trên một không gian địa lý lớn hơn LAN nh-ng nhỏ
hơn WAN. MAN th-ờng đ-ợc sử dụng nh-một mạng của một thành phố, một khu
công nghiệp.
d. Mạng Intranet
Là một mạng sử dụng nội bộ nh-LAN hay WAN thực hiện đ-ợc các ứng
dụng, nói cách khác là các dịch vụ của INTERNET, chủ yếu làdịch vụ WEB với
giao thức truyền tệp siêu văn bản - HTTP.
e. Mạng Internet
Một hệ thống gồm các mạng máy tính đ-ợc liên kết với nhau trên phạm vi
toàn thế giới, tạo điều kiện thuận lợi cho các dịch vụ truyền thông dữ liệu, nh-đăng
nhập từ xa, truyền các tệp tin, th-tín điện tử, và các nhóm thông tin. Internet là một
ph-ơng pháp ghép nối các mạng máy tính hiệnhành, phát triển một cách rộng rãi
tầm hoạt động của từng hệ thống thành viên
1.2 Internet
Mạng Internet ngày nay là một mạng toàn cầu, bao gồm hàng chục triệu
ng-ời sử dụng, đ-ợc hình thành từ cuối thập kỷ 60 từ một thí nghiệm của Bộ quốc
phòng Mỹ. Tại thời điểm ban đầu đó làmạng ARPAnet của Ban quản lý dự án
nghiên cứu Quốc phòng. ARPAnet là một mạng thử nghiệm phục vụ các nghiên
cứu quốc phòng, một trong những mục đích của nó là xây dựng một mạng máy tính
có khả năng chịu đựng các sự cố (ví dụ một số nút mạng bị tấn công và phá huỷ nhng mạng vẫn tiếp tục hoạt động).
Mạng cho phép một máy tính bất kỳ trên mạng liên lạc với mọi máy tính
khác. Khả năng kết nối các hệ thống máy tính khác nhau đã hấp dẫn mọi ng-ời, vả
lại đây cũng là ph-ơng pháp thực tế duy nhất để kết nối các máy tính của các hãng
khác nhau.
Mạng Internet nguyên thuỷ đ-ợc thiết kế nhằm mục đích phục vụ việc cung
cấp thông tin cho giới khoa học, nên công nghệ của nó cho phép mọi hệ thống đều
có thể liên kết với nó thông qua một cổng điện tử. Theo cách đó, có hàng ngàn hệ
máy tính hợp tác, cũng nh-nhiều hệ thống dịch vụ th-điện tử có thu phí, nh-MCI
và Compuserve chẳng hạn, đã trở nên thành viên của Internet. Với hơn hai triệu
http://www.ebook.edu.vn 4
máy chủ phục vụ chừng 20 triệu ng-ời dùng, mạng Internet đang phát triển với tốc
độ bùng nổ, mỗi tháng có thêm khoảng một triệu ng-ời tham gia mới.
Ngày nay Internet cho phép hàng trăm triệu ng-ời trên khắp thế giới liên lạc
và trao đổi thông tin với nhau thông qua tập các giao thức gọi chung là bộ giao thức
TCP/IP (Transmission Control Protocol/Internet Protocol).
1.3 Các giao thức Internet
Ban đầu, bộ giao thức Internet (còn gọi là bộ giao thức TCP/IP) đ-ợc phát
triển bởi DoD (bộ quốc phòng Mỹ) và đ-ợc đ-a vào triển khai từ năm 1982 để cung
cấp dịch vụ tăng c-ờng tín hiệu trên các liên mạng lớn, kết hợp nhiều kiểu máy tính
khác nhau. TCP/IP cho phép các loại máy tính với các kích cỡ khác nhau liên kết
với Internet để giao tiếp với nhau. Hỗ trợ trên phần lớn các hệ thống, TCP/IP trở
thành giao thức chuẩn của Internet. PhầnTCP của giao thức này đảm bảo rằng rất
cả l-ợng thông tin gửi đi đều đ-ợc nhận đầy đủ và chính xác. Phần IP cung cấp kỹ
thuật truyền dẫn các gói thông tin tới địa chỉ nhận một cách có hiệu quả. Trong
những năm gần đây, các giao thức Internetngày càng phổ biến và hình thành các
giao thức mạng phổ dụng nhất hiện nay.
Có nhiều giao thức kết hợp với bộ giao thức Internet. D-ới đây là các mô tả
một số giao thức này.
1.3.1 Giao thức điều khiển phiên truyền
Giao thức điều khiển phiên truyền (Transmission Control Protocol-TCP) là
một giao thức Internet t-ơng ứng với tầng giao vận của OSI. TCP cung cấp khả
năng chuyển tải h-ớng kết nối, song công đầy đủ (full dupplex). Khi không cần
phần điều hành chung của một tiến trình chuyển tải h-ớng kết nối thì giao thức
gam dữ liệu ng-ời dùng (User Datagram Protocol-UDP) có thể đ-ợc thay thế cho
TCP ở cấp chuyển tải (giữa các máy chủ). TCP và UDP hoạt động tại cùng một
tầng. TCP t-ơng ứng với SPX trong môi tr-ờng Netware. TCP duy trì một tuyến kết
nối logic giữa các máy tính gửi và nhận. Theo cách này, tính nguyên vẹn của phiên
truyền đ-ợc duy trì, TCP nhanh chóng phát hiệnmọi sự cố trong phiên truyền để
chỉnh lý, nh-ng ng-ợc lại, TCP không chạy nhanh bằng UDP.
TCP còn cung cấp tính năng phân chia và tập hợp các thông điệp, đồng thời
có thể chấp nhận các thông điệp có kích th-ớc bất kỳ từ các giao thức tầng phía
trên. TCP phân chia các luồng thông điệp thành các phân đoạn mà IP có thể điều
khiển và quản lý. Khi sử dụng kết hợp với IP, TCP bổ sung dịch vụ h-ớng kết nối
và tiến hành đồng bộ hoá phân đoạn, bổ sung các số chuỗi tại mức byte.
Ngoài phân chia thông điệp, TCP còn có thể duy trì nhiều cuộc đối thoại
(conversations) với các giao thức tầng phía trên và có thể cải thiện việc sử dụng
băng thông mạng bằng cách tổ hợp nhiều thông điệp vào chung một phân đoạn.
Mỗi tuyến kết nối mạch ảo đ-ợc gán một ID kết nối có tên là cổng(port) để định
danh các gam dữ liệu kết hợp với các tuyến kết nối đó.
1.3.2 Giao thức Internet
Giao thức Internet (Internet Protocol-IP) là một giao thức phi kết nối
(connectionless) cung cấp dịch vụ gam dữ liệu và các gói tin IP th-ờng đ-ợc gọi là
gam dữ liệu IP (IP datagram). IP là một giao thức chuyển gói tin thực hiện tiến
trình định địa chỉ và chọn đ-ờng. Một phần đầu IP đ-ợc nối vào các gói tin, đ-ợc
các giao thức cấp thấp hơn truyền theo dạng các khung (frame).
http://www.ebook.edu.vn 5
IP định đ-ờng các gói tin thông qua các liên mạng bằng cách vận dụng các
bảng định tuyến động (dynamic routing table) đ-ợc tham chiếu tại mỗi b-ớc nhảy.
Các phần xác định tuyến đ-ờng đ-ợc tiến hành bằng cách tham khảo thông tin thiết
bị mạng vật lý và logic, mà giao thứcphân giải địa chỉ (Address Resolution
Protocol-ARP) cung cấp.
IP thực hiện tách rời và lắp ghép lại các gói tin theo yêu cầu giới hạn kích
th-ớc các gói tin, đ-ợc định nghĩa cho các tầng vật lý và liên kết dữ liệu thực thi. IP
cũng thực hiện tính năng kiểm tra lỗi trêndữ liệu phần đầu bằng cách tổng kiểm tra
(checksum), mặc dù dữ liệu của các tầng phía trên không đ-ợc kiểm tra lỗi.
1.3.3 Giao thức gam dữ liệu ng-ời dùng
Giao thức gam dữ liệu ng-ời dùng (User Datagram Protocol-UDP) là một
giao thức tầng giao vận phi kết nối (giữa các máy chủ). UDP không cung cấp các
tín hiệu báo nhận thông điệp, thay vào đó, đơn giản là nó chỉ làm công việc chuyển
tải các gam dữ liệu.
Cũng nh-TCP, UDP vận dụng các địa chỉ cổng để bàn giao các gam dữ liệu.
Tuy nhiên, các địa chỉ cổng này không kết hợp với các mạch ảo mà chỉ đơn thuần
là định danh các tiến trình xửlý của máy chủ cục bộ.
UDP đ-ợc sử dụng nhiều hơn TCP khi khả năng bàn giao đáng tin cậy không
quan trọng bằng khả năng thực hiện cao hoặc phải giữ phần điều hành chung của
mạng ở mức thấp. Do UDP không cần thiết lập,bảo trì và kết thúc các kết nối hoặc
điều khiển luồng dữ liệu nên nóichung nó chạy nhanh hơn TCP.
UDP là giao thức tầng giao vận, đ-ợc sử dụng với giao thức quản trị mạng
đơn giản (Simple Network Management Protocol-SNMP), là giao thức quản trị
mạng chuẩn, đ-ợc dùng với các mạng TCP/IP. UDP cho phép SNMP cung cấp tính
năng quản trị mạng với phần điều hành chung ở mức tối thiểu.
1.3.4 Giao thức phân giải địa chỉ
Ba kiểu thông tin địa chỉ d-ới đây đ-ợc sử dụng trên các mạng TCP/IP:
- Địa chỉ vật lý: đ-ợc tầng vật lý và tầng liên kết dữ liệu sử dụng.
- Các địa chỉ IP: Cung cấp các ID máy chủ và mạng logic. Các địa chỉ IP
bao gồm bốn con số đ-ợc biểu diễn d-ới dạng thập phân có chấm. Ví dụ,
192.123.1.1 là một địa chỉ IP.
- Các tên nút logic: Định danh các máy chủ cụ thể bằng các ID ký tự-số.
Chúng giúp ta dễ nhớ hơn so với các địa chỉ ID toàn số. Ví dụ,
tsqtt.edu.vn là một tên nút logic (logical node name).
Căn cứ vào tên nút (node) logic mà giao thức phân giải địa chỉ (Address
Resolution Protocol-ARP) có thể xác định địa chỉ IP kết hợp với tên đó. ARP duy trì
các bảng dữ liệu phân giải địa chỉ và có thể quảng bá các gói tin đểphát hiện các địa
chỉ trên liên mạng. Các địa chỉ IP do ARP phát hiện có thể đ-ợc cung cấp cho các
giao thức tầng liên kết dữ liệu.
1.3.5 Giao thức hệ thống tên miền
Giao thức hệ thống tên miền (Domain Name System-DNS) cung cấp tính
năng phân giải tên/địa chỉ nh-một dịch vụ cho các ứng dụng trên máy khách
(client). Các hệ phục vụ DNS cho phép con ng-ời dùng tên các nút logic để truy
cập các tài nguyên trên mạng.
1.3.6 Giao thức chuyển th-đơn giản
Giao thức chuyển th-đơn giản (Simple Mail Transfer Protocol-SMTP) và
giao thức th-tín phiên bản 3 (Post Office Protocol version 3-POP3) là một giao
thức để định đ-ờng th-tín thông qua các mạng. Nó sử dụng giao thức TCP/IP.
SMTP không cung cấp một hệ giao tiếp th-cho ng-ời dùng. Quy chuẩn,
quản lý và trao đổi các thông điệp cho ng-ời dùng cuối (End user), tất cả đều phải
tiến hành bởi một phần mềm trao đổi th-tín điện tử (nh-Outlook, Eudora,...).
1.3.7 Giao thức truyền tập tin
Giao thức truyền tập tin (File TransferProtocol-FTP) là một giao thức để
dùng chung các tập tin giữa các máy chủ nối mạng. FTP cho phép ng-ời dùng đăng
nhập các máy chủ ở xa. Những ng-ời dùng đã đăng nhập có thể xem xét các th-
mục, thao tác với các tập tin, thực thi các lệnh và chạy các ch-ơng trình trên máy
chủ. FTP cũng có khả năng trao đổi các tập tin giữa các máy chủ không đồng bộ
bằng cách hỗ trợ một cấu trúc yêu cầu tập tinđộc lập với các hệ điều hành cụ thể.
1.3.8 HTTP - HyperText Transfer Protocol
Cách thức để trình duyệt WEB của ng-ời dùng nói chuyện với ch-ơng trình
Web server khi ng-ời dùng sử dung WWW. Hypertext: cách thức liên kết tham
chiếu đến những mẫu thông tin khác nhau.
1.4 Địa chỉ IP
Địa chỉ IP giúp chúng ta có thể nhận diện đ-ợc các máy mà không cần quan
tâm đến công nghệ mạng cơ sở. Ưu điểm của nó là có thể đơn giản hóa việc định
đ-ờng đi trên mạng. Ngoài ra, địa chỉ IPcòn mang tính toàn cục, nếu mạng cục bộ
nào đó đ-ợc nối vào Internet, thì toàn bộ các máy trong mạng đó sẽ đ-ợc toàn
Internet biết đến thông qua địa chỉ IP.
Địa chỉ IP đang đ-ợc sử dụng hiện tại (IPv4) có32 bit chia thành 4 octet
(mỗi octet có 8 bit, t-ơng đ-ơng 1 byte ), cách đếm đều từtrái qua phải bit 0 cho
đến bit 31, các octet tách biệt nhau bởi dấu chấm (.). Mỗi octet có thể biểu diễn
bằng các số thập phân, nhị phân hoặc thập lục phân. Đia chỉ IP bao gồm có 3 thành
phần chính :
- Bit nhận dạng lớp (Class bit)
- Định danh của mạng (Network Identifier – NET ID)
- Định danh máy chủ (Host Identifier – HOST ID)
Do tổ chức và độ lớn của các mạng cục bộ trong liên mạng khác nhau, để
thuận tiện cho việc quản lý cấp phát địa chỉ IP ng-ời ta chia địa chỉ mạng thành 5
lớp. Ký hiệu là A, B, C, D, E
Hình 1.2. Cấu trúc các lớp địa chỉ lớp IP
1 0 NET ID (14 bits) HOST ID (16 bits)
1 1 0 NET ID (21 bits) HOST ID(8 bits)
1 1 1 0 Multicast (18 bits)
1 1 1 1 0 Multicast (17 bits)
0 NET ID (7 bits) HOST ID (24 bits)
- Lớp A: Sử dụng 7 bit định danh mạng và 24 bit để định danh các trạm.
Lớp A cho phép sử dụng 27-2 mạng và 224 -2 trạm trong mỗi mạng. Lớp
này thích hợp cho các mạng có số trạm cực lớn. Tổng số khoảng hơn 2 tỉ
địa chỉ. Vùng địa chỉ lớp A có thể sử dụng gồm từ 1.0.0.1 đến
126.255.255.254.
- Lớp B: Sử dụng 14 bit định danh mạng và 16 bit để định danh các trạm.
Lớp B cho phép sử dụng 214-2 mạng và 216 -2 trạm trong mỗi mạng.
Tổng số khoảng hơn 1 tỉ địa chỉ. Vùngđịa chỉ lớp B có thể sử dụng từ
128.0.0.1 đến 191.254.255.254.
- Lớp C: Sử dụng 21 bit định danh mạng và 8 bit để định danh các trạm.
Lớp C cho phép sử dụng 221-2 mạng và 28 -2 trạm trong mỗi mạng. Lớp
này thích hợp cho các mạng nhỏ, cósố trạm trong mỗi mạng không quá
254. Tổng số khoảng hơn nửa tỉ địa chỉ. Vùng địa chỉ lớp B có thể sử
dụng từ 192.0.0.1 đến 223.255.254.254.
- Lớp D: địa chỉ lớp này đ-ợc sử dụng cho việc quảng bá (dùng để gửi IP
datagram tới một nhóm trên mạng sử dụng cùng kiểu địa chỉ).
- Lớp E: địa chỉ dự phòng trong t-ơng lai.
1.5 Các khái niệm khác
1.5.1 URL
URL (Uniform Resource Locator) là cách gọi khác của địa chỉ web. URL
bao gồm tên của giao thức (th-ờng là HTTP hoặc FTP), tiếp đến là dấu hai chấm
(:), hai dấu gạch chéo (//), sau đó là tên miền muốn kết nối đến. Ví dụ về một URL
là “http://www.vnn.vn/cntt” sẽ h-ớng dẫn trình duyệt web của chúng ta sử dụng
giao thức giao thức http để kết nốiđến máy tính www.vnn.vn, mở tệp web ngầm
định có tên là default.htm (hay index.htm) trong th-mục cntt. Tên tệp tin ngầm
định không cần gõ vào URL. Khi gõ URL cũng có thể bỏ qua tên giao thức http vì
trình duyệt lấy giao thức http làm giao thức ngầm định.
URL có một cú pháp đặc biệt. Tất cả các URL phải chính xác, thậm chí có
một ký tự sai hay thiếu một dấu chấm cũng không đ-ợc Web Server chấp nhận,
nhập sai một ký tự trong địa chỉ URL có thể dẫn chúng ta đến một Web site có nội
dung khác hoặc nhận đ-ợc thông báo Web site đó không tồn tại.
1.5.2 Hyperlink (siêu liên kết)
Hyperlink (siêu liên kết) là một thành phần cơ bản và rất cần thiết đối với
một siêu văn bản World Wide Web. Siêu liên kết giúp chúng tadễ dàng tìm kiếm
các thông tin khác nhau về một chủ đề. Một siêu liên kết là một phần văn bản (hay
hình ảnh) của trang Web, mà khi kích vào đó sẽ tự động thực hiện một trong các
thao tác sau đây:
- Đ-a đến phần khác của trang
- Đ-a đến một trang web khác trong cùng một Web site
- Đ-a đến một trang web khác trong Web site khác
- Cho phép download một file
- Chạy một ứng dụng, trình diễn một đoạn video hoặc âm thanh
Hình ảnh minh hoạ d-ới đây là một phần của trang web. Những từ gạch d-ới
thể hiện các liên kết, chỉ cần nhấn chuột vào siêu liên kết, nội dung tài liệu mà nó
trỏ tới sẽ đ-ợc hiển thị.
Hình 1.3. Minh họa một Hyperlink (siêu liên kết)
1.5.3 Web Browser (trình duyệt web)
Web Browser là một công cụ hay ch-ơng trình cho phép truy xuất và xem
thông tin trên Web. Có nhiều Web Browser để truy xuất Web, mỗi trình duyệt có
những đặc điểm khác nhau và chúng hiển thị những trang Web không hoàn toàn
giống nhau.
Các trình duyệt web bao gồm có Internet Explorer, Netscape Navigator
Communicator, Opera, Mozilla Firefox, ... Tất cả các loại trình duyệt này đều có
các phiên bản khác nhau, vàcác phiên bản mới nhất sẽcó nhiều tính năng hơn các
phiên bản tr-ớc đó. Ngoài việc truy xuất Web, các trình duyệt còn cho phép chúng
ta thực hiện các công việc khác nh-: gửi nhận email, tải các tập tin từ Web Server
về, … thông qua các Add-on và Plugin của trình duyệt.
1.5.4 Web Server (máy chủ Web)
Web Server là máy chủ trong đó chứa thông tin d-ới dạng trang Web (trang
HTML có thể chứa âm thanh, hình ảnh, video, văn bản, …). Các Web Server đ-ợc
kết nối với nhau thông qua mạng Internet, mỗi Server có địa chỉ duy nhất trên
Internet.
Thành phần chủ chốt của Web Serverlà phần mềm. Mỗi phần mềm Web
Server chạy trên một nền tảng phần cứngvà một hệ điều hành cụ thể. Một Web
Server phải có cấu hình đủ mạnh để cung cấpcác dịch vụ cho các client, đáp ứng
đồng thời nhiều yêu cầu từ client và có khả năng l-u trữ lớn cho tài nguyên Web.
Nói về chức năng và hiệunăng, các Web Server phân thành 4 nhóm chính:
- Các máy chủ truyền thông thông th-ờng.
- Máy chủ th-ơng mại.
- Máy chủ mhóm làm việc.
- Máy chủ dùng cho mục đích đặc biệt.
Các tiêu chuẩn đánh giá một Web Server:
- Hiệu năng: nền tảng hệ điều hành và xử lý đa luồng.
- Bảo mật: Thông qua địa chỉ IP, tên máy chủ của mạng con, th-mục ...
Web Oracle cung cấp ph-ơng án bảo mật thông tin theo tên ng-ời sử
dụng và khoá mã đ-ợc mã hoá hoàn toàn trong quá trình truyền thông
trên mạng.
- Truy nhập và tích hợp CSDL: Hầu hết các Web Server đều sử dụng giao
diện CGI, một số khác thì dùng giao diện lập trình ứng dụng (API) hoặc
ngôn ngữ hỏi đáp có cấu trúc SQL.
- Quản lý và quản trị Web Server: Đặc tính quan trọng của tiêu chuẩn này
là khả năng quản trị từ xa, giao diệnđồ họa và điều khiển cấu hình của
máy chủ.
1.5.5 Web Site
Web Site là một tập hợp các trang Web liên quan đến một công ty, một tập
đoàn, một tổ chức, một cá nhân hay đơn giản chỉ là một chủ đề mà nhiều ng-ời
cùng quan tâm. Ví dụ Web Site của Chính phủ (www.chinhphu.org.vn), của một cơ
quan (Bộ GD&ĐT-www.moet.edu.vn), báo chí (www.thanhnien.com.vn), của một
chủ đề (www.thuvientinhoc.vn)...
1.5.6 World Wide Web
World Wide Web (Web) là một dịch vụhay còn gọi là một công cụ trên
Internet ra đời gần đây nhất nh-ng phát triển nhanh nhất hiện nay. Nó cung cấp
một giao diện vô cùng thân thiện với ng-ời dùng, dễ sử dụng, thuận lợi và đơn giản
để tìm kiếm thông tin.
Thực chất Web không phải là một hệ thống cụ thể với tên gọi nh-trên mà là
một tập hợp các công cụ tiện ích và siêu giao diện (meta-Interface) giúp ng-ời sử
dụng có thể tự tạo ra các "siêu văn bản" và cung cấp cho những ng-ời dùng khác
trên Internet.
1.5.7 Phân biệt Inetrnet và WWW
WWW chỉ là một phần nhỏ của Internet. Internet bao hàm tất cả phần cứng
và phần mềm, bao gồm HTTP, FTP (File Transfer Protocol, sẽ đề cập đến sau),
Emails và Newgroups. WWW chủ yếu xây dựng trên các ký tự và hình ảnh mà
chúng ta có thể xem bằng các trình duyệt Web.
1.5.8 Web page
Web page là trang Web, là một loại tập tin đặc biệt đ-ợc viết bằng ngôn ngữ
siêu văn bản HTML. Web page có thể hiểncác thông tin văn bản, âm thanh, hình
ảnh, video, … Trang Web này đ-ợc đặt trên một máy chủ Web sao cho các máy
khách có thể truy cập đ-ợc nó, tập hợp nhiều trang Web có liên quan, ràng buộc
đến nhau cho chúng ta một Web Site.
1.6 Cách thức tổ chức và xây dựng một Web Site
Việc xây dựng một trang Web để đ-ợc nhiều ng-ời quan tâm là một công
việc không đơn giản. Việc thiết kế không chỉ l-u ý đến vấn đề là mọi ng-ời có truy
cập vào trang Web của mình hơn một lần hay không mà thông tin trên đó phải phụ
thuộc hoàn toàn vào mục đích của việc tạo chúng.
Để tạo đ-ợc một site hữu hiệu, ta phảichú ý đến những vấn đề sau:
- Có một mục đích rõ ràng: Đây là điểm quan trọng trong việc bắt đầu thiết
kế Web.
- Luôn luôn nghĩ đến những client-ng-ời sẽ truy cập vào site: Chúng ta
phải xét đến một số đặc điểm của ng-ời truy cập nh-là: lứa tuổi, nghề
nghiệp, sở thích, thời gian rảnh rỗi ...
- Sử dụng những mục có khả năng dowload về thật nhanh. Một trong
những lý do khiến những ng-ời truy cập vào trang Web của chúng ta cảm
thấy chán nản là phải đợi lâu cho việc lấy tin và đó chính là lúc ng-ời ta
sẽ nhấn vào nút Stop.
- Cố gắng làm cho Web Site của mình xuất hiện một cách trực quan:
không nên cho quá nhiều màu sắc hoặc không có màu sắc trong trang.
- Đừng có cố gắng cho mọi thứ vào trong một trang: Một trang Web bừa
bộn sẽ gây ra cảm giác chán nản và nhức mắt.
- Tổ chức nội dung một cách thông minh: Nên nhớ rằng site của mình tạo
ra không chỉ có "độ sâu" một bậc, dovậy chỉ có những thông tin thật cần
thiết mới cho vào trang chủ. Ví dụ: giới thiệu tên công ty, mục đích, một
số sản phẩm ...
- Kiểm tra, chạy thử site vừa thiết kế một cách kỹ tr-ớc khi đ-a lên Web
Server: Thử kiểm tra site bởi các trình duyệt Web, trên các hệ điều hành
khác nhau hay là các chế độ kích th-ớc cửa sổ khác nhau để đảm bảo
rằng site của chúng ta thông suốt.
1.7 Phân loại Web
Dựa vào đặc tr-ng, kết nối dữ liệu và công cụ phát triển ng-ời ta có thể chia
ra làm 3 loại Web sau đây:
1.7.1 Static pages (Web tĩnh ):
Tính chất của các trang Web này là chỉ bao gồm các nội dung hiển thị cho
ng-ời dùng xem. Ví dụ: hiển thị các trang dạng text, hình ảnh đơn giản chẳng hạn
nh-một cốc cà phê đang bốc khói ...
1.7.2 Form pages (Mẫu biểu):
Ngoài nội dung nh-ở trang Web tĩnh, nó còn chứa các mẫu biểu (form) cho
phép nhập các yêu cầu từ phía ng-ời sử dụng. Khi ng-ời dùng điền xong các form,
ấn nút "Submit" và tất cảc các thông tin (yêu cầu) sẽ đ-a đến đầu vào của một
ch-ơng trình CGI (Common Gateway Interface) chạy trên Server. (th-ờng thì các
CGI xử lý và cất giữ thông tin vào các file dữ liệu trên Server rồi thông báo trả lại
cho khách hàng).
Loại Web này th-ờng đ-ợc dùng để làm các phiếu điều tra, tr-ng cầu ý kiến,
mua hàng ..v..v..
1.7.3 Dynamic Web (Web động)
Nội dung của trang Web động nh-trong 1 trang Web tĩnh, ngoài ra còn có
nhúng các đoạn mã lệnh cho phép truy nhập cơ sở dữ liệu trên mạng.
Tuỳ theo nhu cầu, ứng dụng có thể cung cấp khả năng truy cập dữ liệu, tìm
kiếm thông tin, …
1.8 Câu hỏi và bài tập ch-ơng 1
Câu 1: Phân biệt mạng Intranet và mạng Internet.
Câu 2: Mạng Internet sử dụng những giaothức nào? Chứcnăng của chúng?
Câu 3: Cấu trúc các lớp của địa chỉ IP.
Câu 4: Các khái niệm URL, hyperlinks, web page, web browser, web server.
Câu 5: Phân biệt Internet và World Wide Web.
Câu 6: Cách thức xây dựng một website.
Câu 7: Phân biệt các loại web
http://www.ebook.edu.vn 11
Ch-ơng 2
Lập trình Web với ngôn ngữ đánh dấu siêu văn bản (HTML)
2.1 Khái niệm ngôn ngữ HTML
HTML viết tắt của HyperText Mark-up Language (ngôn ngữ đánh dấu siêu
văn bản). Có thể định nghĩa HTML:
Là một tập hợp các quy tắc và các thẻ (tag) đ-ợc sử dụng để quy định các
thức trình bày, hiển thị nội dung của các trang Web, tập hợp các quy tắc và thẻ này
phải tuân theo một chuẩn quốc tế, đảm bảo cho các trình duyệt Web khác nhau,trên
các nền phần cứng và hệ điều hành khác nhau đều hiểu đ-ợc và hiển thị đúng nội
dung của các trang Web.
HTML không phải là một ngôn ngữ lập trình, nó là một ngôn ngữ đánh dấu.
HTML dễ hiểu hơn nhiều so với hầu hết các ngôn ngữ lập trình.
Một tài liệu HTML là một tệp tin văn bản trong đó có sử dụng các thẻ
HTML để quy định cách thức hiển thị văn bản khi nó đ-ợc mở bởi một trình duyệt
Web.
Cơ bản các thẻ định dạng trong HTML th-ờng có từng cặp gồm: thẻ mở
<tag> và thẻ đóng </tag>.
Các văn bản nằm giữa hai thẻ này sẽ đ-ợc chịu tác động định dạng bởi thẻ.
Ví dụ, thẻ <B> dùng để định dạng chữ in đậm, khi đó văn bản "<B>Hello</B>" sẽ
đ-ợc hiển thị là "Hello".
2.2 Lập trình web với ngôn ngữ HTML
2.2.1 Các thẻ định dạng cấu trúc của HTML
Các thẻ xác định cấu trúc tài liệu là bắt buộc phải có trong một tài liệu
HTML. Sau đây chúng ta sẽ lần l-ợt học cách sử dụng các thẻ định dạng cấu trúc
của một tài liệu HTML cơ bản.
a. HTML
Cặp thẻ này đ-ợc sử dụng để xác nhận một tài liệu là tài liệu HTML, tức là
nó có sử dụng các thẻ HTML để trình bày. Toàn bộ nội dung của tài liệu đ-ợc đặt
giữa cặp thẻ này. Tất cả các tập tin HTML đều bắt đầu bằng thẻ <HTML>, thẻ này
thông báo cho trình duyệt Web biết rằng nó đang đọc một tài liệu có chứa các mã
HTML và cuối các tập tin HTML sẽ là thẻ đóng t-ơng ứng </HTML> thông báo
kết thúc một tài liệu HTML.
Cú pháp:
Trình duyệt sẽ xem các tài liệu không sử dụng thẻ <HTML> nh-những tệp
văn bản bình th-ờng.
b. HEAD
Một tài liệu HTML gồm có 2 phần: phầnmở đầu và phần nội dung chính.
Phần mở đầu giống nh-phần giới thiệu, các trình duyệt Web sử dụng phần mở đầu
này để thu nhặt các thông tin khác nhau về tài liệu HTML này, chẳng hạn nh-tiêu
<HTML>
... Toàn bộ nội dung của tài liệu đ-ợc đặt ở đây
</HTML>
<HTML>
... Phần mở đầu (header) của tài liệu đ-ợc đặt ở đây
</HTML>
<TITLE>Tiêu đề của tài liệu đ-ợc đặt ở đây</TITLE>
<BODY>
.... phần nội dung của tài liệu đ-ợc đặt ở đây
</BODY>
<HTML>
<HEAD>
<TITLE>Tiêu đề của tài liệu</TITLE>
</HEAD>
<BODY>
... Nội dung của tài liệu
</BODY>
</HTML>
đề của tài liệu, các quan hệ đ-ợc thiết lập giữa tài liệu và các th-mục. Thẻ
<HEAD> đ-ợc dùng để xác định phần mở đầu cho tài liệu.
Cú pháp:
c. TITLE
Chúng ta có thể đặt tiêu đề cho tài liệu HTML của mình. Tiêu đề này sẽ đ-ợc
hiển thị trên thanh tiêu đề của trình duyệt. Cặp thẻ này chỉ có thể sử dụng trong
phần mở đầu của tài liệu, tức là nó phải nằm trong thẻ phạm vi giới hạn bởi cặp thẻ
<HEAD>.
Cú pháp:
d. BODY
Thẻ này đ-ợc sử dụng để xác định phần nội dung chính của tài liệu. Cũng có
thể sử dụng các tham số của thẻ để đặt ảnh nền cho tài liệu, màu nền, màu văn bản
siêu liên kết, đặt lề cho trang tài liệu… Những thông tin này đ-ợc đặt ở phần tham
số của thẻ.
Cú pháp:
Trên đây là cú pháp cơ bản của thẻ <BODY>, tuy nhiên bắt đầu từ phiên
bản HTML 3.2 thì có nhiều thuộc tính đ-ợc sử dụng trong thẻ <BODY>.
Nh-vậy một tài liệu HTML cơ bản có cấu trúc nh-sau:
Sau đây là các thuộc tính chính:
BACKGROUND= Đặt một ảnh nào đó làm ảnh nền (background) cho văn
bản. Giá trị của tham số này (phần sau dấu bằng) là URL
của file ảnh. Nếu kích th-ớc ảnh nhỏ hơn cửa sổ trình
duyệt thì toàn bộ màn hình cửa sổ trình duyệt sẽ đ-ợc lát
kín bằng nhiều ảnh.
http://www.ebook.edu.vn 13
<!-- Các chú thích đ-ợc đặt ở đây -->
BGCOLOR= Đặt mầu nền cho trang khi hiển thị. Nếu cả hai tham số
BACKGROUNDvà BGCOLORcùng có giá trị thì trình
duyệt sẽ hiển thị mầu nền tr-ớc, sau đó mới tải ảnh lên
phía trên.
TEXT= Xác định màu chữ của văn bản, kể cả các đề mục.
ALINK=
VLINK=
LINK=
Xác định màu sắc cho các siêuliên kết trong văn bản.
T-ơng ứng, alink (active link) là liên kết đang đ-ợc kích
hoạt - tức là khi đã đ-ợc kích chuột lên; vlink (visited
link) chỉ liên kết đã từng đ-ợc kích hoạt;
e. Chú thích
Cặp thẻ này cho phép ng-ời biên soạn tài liệu HTML có thể thêm vào trong
các tài liệu HTML những chú thích cần thiết, hoặc có thể sử dụng cặp thẻ này để
thông báo cho trình duyệt bỏ qua một đoạn mã lệnh HTML. Các văn bản đ-ợc đặt
giữa hai thẻ này sẽ không đ-ợc trình duyệt hiển thị.
Cú pháp:
2.2.2 Các thẻ định dạng khối
a. Thẻ <P>
Thẻ <P> đ-ợc sử dụng để định dạng một đoạn văn bản.
Cú pháp:
b. Các thẻ định dạng đề mục H1/H2/H3/H4/H5/H6
HTML hỗ trợ 6 mức đề mục. Chú ý rằng đề mục chỉ là các chỉ dẫn định dạng
về mặt logic, tức là mỗi trình duyệt sẽ thể hiện đề mục d-ới một khuôn dạng thích
hợp. Có thể ở trình duyệt này là font chữ 14 point nh-ng sang trình duyệt khác là
font chữ 20 point. Đề mục cấp 1 là cao nhất và giảm dần đến cấp 6. Thông th-ờng
văn bản ở đề mục cấp 5 hay cấp 6 th-ờng có kích th-ớc nhỏ hơn văn bản thông
th-ờng.
D-ới đây là các thẻ dùng để định dạng văn bản ở dạng đề mục:
<H1> ... </H1> Định dạng đề mục cấp 1
<H2> ... </H2> Định dạng đề mục cấp 2
<H3> ... </H3> Định dạng đề mục cấp 3
<H4> ... </H4> Định dạng đề mục cấp 4
<H5> ... </H5> Định dạng đề mục cấp 5
<H6> ... </H6> Định dạng đề mục cấp 6
<P>Nội dung đoạn văn bản</P>
http://www.ebook.edu.vn 14
<PRE>Văn bản đã đ-ợc định dạng</PRE>
<UL>
<LI> Mục thứ nhất
<LI> Mục thứ hai
</UL>
c. Thẻ xuống dòng <BR>
Thẻ này không có thẻ kết thúc t-ơng ứng (</BR>), nó có tác dụng chuyển
sang dòng mới. L-u ý, nội dung văn bản trong tài liệu HTML sẽ đ-ợc trình duyệt
Web thể hiện liên tục, các khoảng trắng liềnnhau, các ký tự tab, ký tự xuống dòng
đều đ-ợc coi nh-một khoảng trắng. Để xuống dòng, ta phải sử dụng thẻ <BR>.
d. 2.4 Thẻ <PRE>
Để giới hạn đoạn văn bản đã đ-ợc định dạng sẵn ta có thể sử dụng thẻ
<PRE>. Văn bản ở giữa hai thẻ này sẽ đ-ợc thể hiện giống hệt nh-khi chúng đ-ợc
đánh vào, ví dụ dấu xuống dòng trong đoạn văn bản giới hạn bởi thẻ <PRE> sẽ có
ý nghĩa chuyển sang dòng mới (trình duyệt sẽ không coi chúng nh-dấu cách).
Cú pháp:
2.2.3 Các thẻ định dạng danh sách
Cú pháp:
Có 4 kiểu danh sách:
• Danh sách không sắp xếp ( hay không đánh số) <UL>
• Danh sách có sắp xếp (hay có đánh số) <OL>, mỗi mục trong danh
sách đ-ợc sắp xếp thứ tự.
• Danh sách thực đơn <MENU>
• Danh sách phân cấp <DIR>
Với nhiều trình duyệt, danh sách phân cấp và danh sách thực đơn giống danh
sách không đánh số, có thể dùng lẫn với nhau.Với thẻ OL ta có cú pháp sau:
Trong đó: TYPE =1 Các mục đ-ợc sắp xếp theo thứ tự 1, 2, 3...
=a Các mục đ-ợc sắp xếp theo thứ tự a, b, c...
=A Các mục đ-ợc sắp xếp theo thứ tự A, B, C...
=i Các mục đ-ợc sắp xếp theo thứ tự i, ii, iii...
=I Các mục đ-ợc sắp xếp theo thứ tự I, II, III...
Ngoài ra còn thuộc tính START= xác định giá trị khởi đầu cho danh sách.
Thẻ <LI> có thuộc tính TYPE=xác định ký hiệu đầu dòng (bullet) đứng
tr-ớc mỗi mục trong danh sách. Thuộc tính này có thể nhận các giá trị : disc(chấm
tròn đậm); circle(vòng tròn); square(hình vuông).
<OLTYPE=1/a/A/i/I>
<LI>Muc thu nhat
<LI>Muc thu hai
<LI>Muc thu ba
</OL>
2.2.4 Các thẻ định dạng ký tự
a. Các thẻ định dạng in ký tự
Sau đây là các thẻ đ-ợc sử dụng để quy định các thuộc tính nh-in nghiêng,
in đậm, gạch chân... cho các ký tự, văn bản khi đ-ợc thể hiện trên trình duyệt.
Thẻ Thuộc tính
<B> ... </B>
<STRONG> ... </STRONG>
In chữ đậm
<I> ... </I>
<EM> ... </EM>
In chữ nghiêng
<U> ... </U> In chữ gạch chân
<DFN> Đánh dấu đoạn văn bản giữahai thẻ này là định
nghĩa của một từ. Chúng th-ờng đ-ợc in
nghiêng hoặc thể hiện qua một kiểu đặc biệt nào
đó.
<S> ... </S>
<STRIKE> ... </STRIKE>
In chữ bị gạch ngang.
<BIG> ... </BIG> In chữ lớn hơn bình th-ờng bằng cách tăng kích
th-ớc font hiện thời lên một. Việc sử dụng các
thẻ <BIG> lồng nhau tạo ra hiệu ứng chữ tăng
dần. Tuy nhiên đối với mỗi trình duyệt có giới
hạn về kích th-ớc đối với mỗi font chữ, v-ợt quá
giới hạn này, các thẻ <BIG> sẽ không có ý
nghĩa.
<SMALL> ... </SMALL> In chữ nhỏ hơn bình th-ờng bằng cách giảm
kích th-ớc font hiện thời đi một. Việc sử dụng
các thẻ <SMALL>lồng nhau tạo ra hiệu ứng
chữ giảm dần. Tuy nhiên đối với mỗi trình
duyệt có giới hạn về kích th-ớc đối với mỗi font
chữ, v-ợt quá giới hạn này, các thẻ <SMALL>
sẽ không có ý nghĩa.
<SUP> ... </SUP> Định dạng chỉ số trên (SuperScript)
<SUB> ... </SUB> Định dạng chỉ số d-ới (SubScript)
<BASEFONT> Định nghĩa kích th-ớc font chữ đ-ợc sử dụng
cho đến hết văn bản. Thẻ này chỉ có một tham
số size= xác định cỡ chữ. Thẻ <BASEFONT>
không có thẻ kết thúc.
<FONT> ... </FONT> Chọn kiểu chữ hiển thị. Trong thẻ này có thể đặt
hai tham số size= hoặc color= xác định cỡ chữ
và màu sắc đoạn văn bản nằm giữa hai thẻ. Kích
th-ớc có thể là tuyệt đối (nhận giá trị từ 1 đến 7)
hoặc t-ơng đối (+2,-4...) so với font chữ hiện
tại.
http://www.ebook.edu.vn 16
<CENTER>Văn bản sẽ đ-ợc căn giữa trang</CENTER>
b. Căn lề văn bản trong trang Web
Trong trình bày trang Web của mình chúng ta luôn phải chú ý đến việc căn
lề các văn bản để trang Web có đ-ợc một bố cục đẹp. Một số các thẻ định dạng nh-
<P>, <Hn>, <IMG>... đều có tham số ALIGNcho phép căn lề các văn bản nằm
trong phạm vi giới hạn bởi của các thẻ đó.
Các giá trị cho tham số ALIGN:
LEFT Căn lề trái
CENTER Căn giữa trang
RIGHT Căn lề phải
Ngoài ra, chúng ta có thể sử dụng thẻ CENTERđể căn giữa trang một khối
văn bản.
Cú pháp:
c. Các ký tự đặc biệt
Ký tự & đ-ợc sử dụng để chỉ chuỗi ký tự đi sau đ-ợc xem là một thực thể
duy nhất. Ký tự ; đ-ợc sử dụng để tách các ký tự trong một từ.
Ký tự Mã ASCII Tên chuỗi
< < <
> > >
& & &
d. Sử dụng màu sắc trong thiết kế các trang Web
Một màu đ-ợc tổng hợp từ ba thành phần màu chính, đó là: Đỏ (Red), Xanh
lá cây (Green), Xanh n-ớc biển (Blue). Trong HTML một giá trị màu là một số
nguyên dạng hexa (hệ đếm cơ số 16) có định dạng nh-sau:
#RRGGBB
Trong đó:
RR - là giá trị màu Đỏ. GG - là giá trị màu Xanh lá cây. BB - là giá trị màu Xanh n-ớc biển.
Màu sắc có thể đ-ợc xác định qua thuộc tính bgcolor= hay color=. Sau dấu
bằng có thể là giá trị RGB hay tên tiếng Anh của màu. Với tên tiếng Anh, ta chỉ có
thể chỉ ra 16 màu trong khi với giá trị RGB ta có thể chỉ tới 256 màu.
Sau đây là một số giá trị màu cơ bản:
Màu sắc Giá trị Tên tiếng Anh
Đỏ
Đỏ sẫm
Xanh lá cây
Xanh nhạt
Xanh n-ớc biển
Vàng
Vàng nhạt
Trắng
#FF0000
#8B0000
#00FF00
#90EE90
#0000FF
#FFFF00
#FFFFE0
#FFFFFF
RED
DARKRED
GREEN
LIGHTGREEN
BLUE
YELLOW
LIGHTYELLOW
WHITE
Đen
Xám
Nâu
Tím
Tím nhạt
Hồng
Da cam
Màu đồng phục hải
quân
#000000
#808080
#A52A2A
#FF00FF
#EE82EE
#FFC0CB
#FFA500
#000080
#4169E1
#7FFFD4
BLACK
GRAY
BROWN
MAGENTA
VIOLET
PINK
ORANGE
NAVY
ROYALBLUE
AQUAMARINE
Cú pháp:
<BODY
LINK = color
ALINK = color
VLINK = color
BACKGROUND= url()
BGCOLOR = color
TEXT = color
TOPMARGIN = pixels
RIGHTMARGIN = pixels
LEFTMARGIN = pixels
>
.... phần nội dung của tài liệu đ-ợc đặt ở đây
</BODY>
Sau đây là ý nghĩa các tham số của thẻ <BODY>:
Các tham số ýnghĩa
LINK Chỉ định màu của văn bản siêu liên kết
ALINK Chỉ định màu của văn bản siêuliên kết đang đang chọn
VLINK Chỉ định màu của văn bản siêu liên kết đã từng mở
BACKGROUND Chỉ định địa chỉ của ảnh dùng làm nền
BGCOLOR Chỉ định màu nền
TEXT Chỉ định màu của văn bản trong tài liệu
SCROLL YES/NO - Xác định cóhay không thanh cuộn
TOPMARGIN Lề trên
RIGHTMARGIN Lề phải
LEFTMARGIN Lề trái
http://www.ebook.edu.vn 18
e. Chọn kiểu chữ cho văn bản
Cú pháp:
<FONT
FACE = font-name
COLOR= color
SIZE = n>
... nội dung đoạn văn bản
</FONT>
f. Khái niệm văn bản siêu liên kết
Văn bản siêu liên kết hay còn gọi là siêuvăn bản là một từ, một cụm từ hay một
câu trên trang Web đ-ợc dùng để liên kết tới một trang Web khác. Siêu văn bản là
môi tr-ờng trong đó chứa các liên kết (link) của các thông tin. Do WWW cấu thành
từ nhiều hệ thống khác nhau,cần phải có một quy tắc đặt tên thống nhất cho tất cả
các văn bản trên Web. Quy tắc đặt tên đó là URL (Universal Resource Locator).
Hình 2.1 Các thành phần của URL đ-ợc minh hoạ ở hình trên.
• Dịch vụ: Là thành phần bắt buộc của URL. Nó xác định cách thức
trình duyệt của máy khách liên lạc với máy phục vụ nh-thế nào để
nhận dữ liệu. Có nhiều dịch vụ nh- http, wais, ftp, gopher, telnet.
• Tên hệ thống: Là thành phần bắt buộccủa URL. Có thể là tên miền
đầy đủ của máy phục vụ hoặc chỉ là một phần tên đầy đủ – tr-ờng hợp
này xảy ra khi văn bản đ-ợc yêu cầu vẫn nằm trênmiền của site. Tuy
nhiên nên sử dụng đ-ờng dẫn đầy đủ.
• Cổng: Không là thành phần bắt buộc của URL. Cổng là địa chỉ socket
của mạng dành cho một giao thức cụ thể. Giao thức http ngầm định
nối với cổng 8080.
• Đ-ờng dẫn th-mục: Là thành phần bắt buộc của URL. Phải chỉ ra
đ-ờng dẫn tới file yêu cầu khi kết nốivới bất kỳ hệ thống nào. Có thể
đ-ờng dẫn trong URL khác với đ-ờng dẫn thực sự trong hệ thống máy
phục vụ. Tuy nhiên có thể rút gọn đ-ờng dẫn bằng cách đặt biệt danh
(alias). Các th-mục trong đ-ờng dẫn cách nhau bởi dấu gạch chéo (/).
• Tên file: Không là thành phầnbắt buộc của URL. Thông th-ờng máy
phục vụ đ-ợc cấu hình sao cho nếu không chỉ ra tên file thì sẽ trả về
file ngầm định trên th-mục đ-ợc yêu cầu. File này th-ờng có tên là
http://www.tsqtt.edu.vn:8080/~dir1/dir2/dir3/index.html#chapter001
Dịch vụ
Tên hệ thống
Cổng
Đ-ờng dẫn
Tên file
Các tham số, biến,
truy vấn
http://www.ebook.edu.vn 19
index.html, index.htm, default.htmlhay default.htm(với các Web site
động thì file mặc định có thể có phầnmở rộng là asp, aspx, jsp hay
php…). Nếu cũng không cócác file này thì th-ờng kết quả trả về là
danh sách liệt kê các file hay th-mục con trong th-mục đ-ợc yêu cầu
• Các tham số: Không là thành phầnbắt buộc của URL. Nếu URL là
yêu cầu tìm kiếm trên một cơ sở dữ liệu thì truy vấn sẽ gắn vào URL,
đó chính là đoạn mã đằng sau dấu chấm hỏi (?).URL cũng có thể trả
lại thông tin đ-ợc thu thập từ form. Trong tr-ờng hợp dấu thăng (#)
xuất hiện đoạn mã đăng sau là tên của một vị trí (location) trong file
đ-ợc chỉ ra.
Để tạo ra một siêu văn bản chúng ta sử dụng thẻ <A>.
Cú pháp:
<A
HREF = url
NAME = name
TABINDEX = n
TITLE = title
TARGET = _blank/ _self
>
... siêu văn bản
</A>
ýnghĩa các tham số:
Các tham số ýnghĩa
HREF Địa chỉ của trang Web đ-ợc liên kết, là một URL nào đó.
NAME Đặt tên cho vị trí đặt thẻ.
TABLEINDEX Thứ tự di chuyển khi ấn phím Tab
TITLE Văn bản hiển thị khi di chuột trên siêu liên kết.
TARGET Mở trang Web đ-ợc liên trong một cửa sổ mới (_blank) hoặc
trong cửa sổ hiện tại (_self), trong một frame (tên frame).
g. Địa chỉ t-ơng đối
URL đ-ợc trình bày ở trên là URL tuyệt đối. Ngoài ra còn có URL t-ơng đối
hay còn gọi là URL không đầy đủ. Địa chỉ t-ơng đối sử dụng sự khác biệt t-ơng
đối giữa văn bản hiện thời và văn bản cầntham chiếu tới. Các thành phần trong
URL đ-ợc ngăn cách bằng ký tự ngăn cách (ký tự gạch chéo /). Để tạo ra URL
t-ơng đối, đầu tiên phải sử dụng ký tự ngăn cách. URL đầy đủ hiện tại sẽ đ-ợc sử
dụng để tạo nên URL đầy đủ mới. Nguyên tắc là các thành phần bên trái dấu ngăn
cách của URL hiện tại đ-ợc giữ nguyên, các thành phần bên phải đ-ợc thay thế
bằng thành phần URL t-ơng đối. Chú ý rằng trình duyệt không gửi URL t-ơng đối,
nó bổ sung vào URL cơ sở đã xác định tr-ớc thành phần URL t-ơng đối xác định
sau thuộc tính href=. Ký tự đầu tiên sau dấu bằng sẽxác định các thành phần nào
của URL hiện tại sẽ tham gia để tạo nên URL mới.
Ví dụ, với địa chỉ URL: http://dit.tsqtt.edu.vn/HTML/ thì:
• Dấu hai chấm (:) chỉ dịch vụ giữ nguyên nh-ng thay đổi phần còn lại.
• Dấu gạch chéo (/) chỉ dịch vụ và máy phục vụ giữ nguyên nh-ng toàn
bộ đ-ờng dẫn thay đổi. Ví dụ /JavaScript/index.htm sẽ tải file
index.htm của th-mục JavaScript trên máy phục vụ dit.tsqtt.edu.vn.
• Không có dấu phân cách chỉ có tên file là thay đổi. Ví dụ index.htm sẽ
tải file index.htm ở trong th-mục HTML của máy phục vụ
dit.tsqtt.edu.vn.
• Dấu thăng (#): chỉ dịch vụ, máy phuc vụ, đ-ờng dẫn và cả tên file giữ
nguyên, chỉ thay đổi vị trí trong file.
Do đ-ờng dẫn đ-ợc xem là đơn vị độc lập nên có thể sử dụng ph-ơng pháp
đ-ờng dẫn t-ơng đối nh-trong UNIX hay MS-DOS (tức là dấu chấm (.)chỉ th-
mục hiện tại còn hai dấu chấm (..)chỉ th-mục cha của th-mục hiện tại).
URL cơ sở có thể đ-ợc xác định bằng thẻ <BASE>.
h. Kết nối mailto
Nếu đặt thuộc tính href=của thẻ <A> giá trị mailto:address@domain thì khi
kích hoạt kết nối sẽ kích hoạt chức năng th-điện tử của trình duyệt.
<ADDRESS>
Trang WEB này đ-ợc
<Ahref=”mailto:[email protected]” >WEBMASTER
<\A> bảo trì
<\ADDRESS>
i. Vẽ một đ-ờng thẳng nằm ngang
Cú pháp:
<HR
ALIGN = LEFT / CENTER / RIGHT
COLOR = color
NOSHADE
SIZE = n
WIDTH = width
>
ýnghĩa các tham số:
Các tham số ýnghĩa
ALIGN Căn lề (căn trái, căn phải, căn giữa)
COLOR Đặt màu cho đ-ờng thẳng
NOSHADE Không có bóng
SIZE Độ dày của đ-ờng thẳng
WIDTH Chiều dài (tính theo pixel hoặc % của bề rộng cửa sổ trình duyệt).
Thẻ này giống nh-thẻ <BR>, nó cũng không có thẻ kết thúc t-ơng ứng.
2.2.5 Các thẻ chèn âm thanh, hình ảnh
a. Giới thiệu
Liên kết với file đa ph-ơng tiện cũng t-ơng tự nh-liên kết bình th-ờng. Tuy
vậy phải đặt tên đúng cho file đa ph-ơng tiện. Phần mở rộng của file phải cho biết
kiểu của file
Kiểu Mở rộng Mô tả
Image/GIF .gif
Viết tắt của Graphics Interchange Format. Khuôn
dạng này xuất hiện khi mọi ng-ời có nhu cầu trao
đổi ảnh trên nhiều hệ thống khác nhau. Nó đ-ợc sử
dụng trên tất cả các hệ thống hỗ trợ giao diện đồ
hoạ. Định dạng GIF là định dạng chuẩn cho mọi
trình duyệt WEB. Nh-ợc điểm của nó là chỉ thể
hiện đ-ợc 256 màu.
Image/JPEG .jpeg Viết tắt của Joint Photographic Expert Group. Là
khuôn dạng ảnh khác nh-ng có thêm khả năng
nén.Ưu điểm nổi bật của khuôn dạng này là l-u trữ
đ-ợc hàng triệu màu và độ nén cao nên kích th-ớc
file ảnh nhỏ hơn và thời gian download nhanh hơn.
Nó là cơ sở cho khuôn dạng MPEG. Tất cả các trình
duyệt đều có khả năng xem ảnh JPEG.
Image/TIFF .tiff Viết tắt của Tagged Image File Format. Đ-ợc
Microsoft thiết kế để quét ảnh từ máy quét cũng
nh-tạo các ấn phẩm.
Text/HTML .html,
.htm
PostScript .eps, .ps Đ-ợc tạo ra để hiển thị vàin các văn bản có chất
l-ợng cao.
Adobe
Acrobat
.pdf Viết tắt của Portable Document Format. Acrobat
cũng sử dụng các siêu liên kết ngay trong văn bản
cũng giống nh-HTML. Từ phiên bản 2.0, các sản
phẩm của Acrobat cho phép liên kết giữa nhiều văn
bản. Ưu điểm lớn nhất của nó là khả năng
WYSISYG.
Video/MPEG .mpeg Viết tắt của Motion Picture Expert Group, là định
dạng dành cho các loại phim (video). Đây là khuôn
dạng thông dụng nhất dành cho phim trên WEB.
Video/AVI .avi Là khuôn dnạg phim do Microsoft đ-a ra.
Video/Quick
Time
.mov Do Apple Computer đ-a ra, chuẩn video này đ-ợc
cho là có nhiều -u điểm hơn MPEG và AVI. Mặc
dù đã đ-ợc tích hợp vào nhiều trình duyệt nh-ng
vẫn ch-a phổ biến bằng hai loại định dạng trên.
Sound/AU .au
http://www.ebook.edu.vn 22
Sound/MIDI .mid Là khuôn dạng dành cho âm nhạc điện tử hết sức
thông dụng đ-ợc nhiều trình duyệt trên các hệ thống
khác nhau hỗ trợ. File Midi đ-ợc tổng hợp số hoá
trực tiếp từ máy tính.
Sound/Real
Audio
.ram Định dạng audio theo dòng. Một bất tiện khi sử
dụng các định dạng khác là file âm thanh th-ờng có
kích th-ớc lớn - do vậy thời gian tải xuống lâu, Trái
lại audio dòng bắt đầu chơi ngay khi tải đ-ợc một
phần file trong khi vẫn tải về các phần khác. Mặc dù
file theo định dạng này không nhỏ hơn so với các
định dạng khác song chính khảnăng dòng đã khiến
định dạng này phù hợp với khả năng chơi ngay lập
tức.
VRML .vrml Viết tắt của Virtual Reality Modeling Language.
Các file theo định dạng này cũng giống nh-HTML.
Tuy nhiên do trình duyệt có thể hiển thị đ-ợc cửa sổ
3 chiều nên ng-ời xem có thể cảm nhận đ-ợc cảm
giác ba chiều.
b. Đ-a âm thanh vào một tài liệu HTML
Cú pháp:
<BGSOUND
SRC= url
LOOP= n
>
Thẻ này không có thẻ kết thúc t-ơng ứng (</BGSOUND>). Để chơi lặp lại
vô hạn cần chỉ định LOOP= -1hoặc LOOP= INFINITE. Thẻ <BGSOUND> phải
đ-ợc đặt trong phần mở đầu (tức là nằm trong cặp thẻ <HEAD>).
c. Chèn một hình ảnh, một đoạn video vào tài liệu HTML
Để chèn một file ảnh (.jpg, .gif, .bmp) hoặc video (.mpg, .avi) vào tài liệu
HTML, ta có thể sử dụng thẻ IMG.
Cú pháp:
<IMG
ALIGN = TOP/MIDDLE/BOTTOM
ALT = text
BORDER= n
SRC = url
WIDTH = width
HEIGHT = height
HSPACE = vspace
VSPACE = hspace
TITLE = title
DYNSRC= url
START=
FILEOPEN/MOUSEOVER
LOOP= n>
Trong đó:
Các tham số ýnghĩa
ALIGN= TOP/ MIDDLE/
BOTTOM/ LEFT/ RIGHT
Căn hàng văn bản bao quanh ảnh
ALT= text Chỉ định văn bản sẽ đ-ợc hiển thị nếu chức năng
show picture của browser bị tắt đi hay hiển thị thay
thế cho ảnh trên những trình duyệt không có khả
năng hiển thị đồ hoạ.Văn bản này còn đ-ợc gọi là
nhãn của ảnh. Đối với trình duyệt có khả năng hỗ
trợ đồ hoạ, dòng văn bản này sẽ hiện lên khi di
chuột qua ảnh hay đ-ợc hiển thị trong vùng của
ảnh nếu ảnh ch-a đ-ợc tải về hết. Chú ý phải đặt
văn bản trong hai dấu nháy kép nếu triong văn bản
chứa dấu cách hay các ký tự đặc biệt - trong tr-ờng
hợp ng-ợc lại có thể bỏ dấu nháy kép.
BORDER= n Đặt kích th-ớc đ-ờng viền đ-ợc vẽ quanh ảnh (tính
theo pixel).
SRC= url Địa chỉ của file ảnh cầnchèn vào tài liệu.
WIDTH/HEIGHT Chỉ định kích th-ớc của ảnh đ-ợc hiển thị.
HSPACE/VSPACE Chỉ định khoảng trống xung quanh hình ảnh (tính
theo pixel) theo bốn phía trên, d-ới, trái, phải.
TITLE= title Văn bản sẽ hiển thị khi con chuột trỏ trên ảnh
DYNSRC= url Địa chỉ của file video.
START=
FILEOPEN/MOUSEOVER
Chỉ định file video sẽ đ-ợc chơi khi tài liệu đ-ợc
mở hay khi trỏ con chuột vào nó. Có thể kết hợp cả
hai giá trị này nh-ng phải phân cách chúng bởi dấu
phẩy.
LOOP= n/INFINITE Chỉ định số lần chơi. Nếu LOOP = INFINITE thì
file video sẽ đ-ợc chơi vô hạn lần.
d. Image map
Image map cho phép click chuột lên một vùng nào đó trên một hình ảnh để
mở một trang Web khác. Sử dụng thẻ MAP vàAREA để thiết lập các thông tin cho
một image map.
Cú pháp:
<MAP>
<AREA SHAPE = RECT/CIRC/POLY
http://www.ebook.edu.vn 24
COORDS = coords
HREF = url
TITLE = text TARGET = _blank / _self >
<AREA ... >
<AREA ... >
...
</MAP>
Chèn ảnh:
<IMG>
Ví dụ minh họa:
<HTML>
<HEAD>
<TITLE>Image map</TITLE>
</HEAD>
<BODY>
<MAP>
<AREA
HREF="http:\\www.cse.com.vn"MsoNormal">trang chủ của CSE">
<AREA>
<AREA>
<AREA>
</MAP>
<IMG BORDER=0>
</BODY>
</HTML>
Hình 2.1 Minh họa sửdụng Images map
http://www.ebook.edu.vn 25
2.2.6 Chèn bảng
Sau đây là các thẻ chính sử dụngđể chèn bảng vào tài liệu HTML:
Thẻ Thuộc tính
<TABLE> ... </TABLE> Định nghĩa một bảng
<TR> ...</TR> Định nghĩa một hàng trong bảng
<TD> ...</TD> Định nghĩa một ô trong hàng
<TH> ...</TH> Định nghĩa ô chứa tiêu đề của cột
<CAPTION> ... </CAPTION> Tiêu đề của bảng
Cú pháp:
<TABLE
ALIGN = LEFT / CENTER / RIGHT
BORDER= n
BORDERCOLOR= color
BORDERCOLORDARK = color
BORDERCOLORLIGHT = color
BACKGROUND= url
BGCOLOR= color
CELLSPACING= spacing
CELLPADDING= pading>
<CAPTION>Tiêu đề của bảng biểu</CAPTION>
...Định nghĩa các dòng
<TR
ALIGN= LEFT/CENTER/RIGHT
VALIGN= TOP/MIDDLE/BOTTOM>
... Định nghĩa các ô trong dòng
<TD
ALIGN = LEFT / CENTER / RIGHT
VALIGN = TOP / MIDDLE / BOTTOM
BORDERCOLOR = color BORDERCOLORDARK= color
BORDERCOLORLIGHT= color
BACKBROUND = url BGCOLOR= color
COLSPAN= n
ROWSPAN= n>
... Nội dung của ô
</TD>
</TR>
</TABLE>
http://www.ebook.edu.vn 26
ýnghĩa các tham số:
Các tham số ýnghĩa
ALIGN / VALIGN Căn lề cho bảng và nộidung trong mỗi ô.
BORDER Kích th-ớc đ-ờng kẻ chia ô trong bảng, đ-ợc đo theo
pixel. Giá trị 0 có nghĩa là không xác định lề, giữa
các ô trong bảng chỉ có một khoảng trắng nhỏ để
phân biệt. Nếu chỉ để border thì ngầm định
border=1. Với những bảng có cấu trúc phức tạp, nên
đặt lề để ng-ời xem có thể phân biệt rõ các dòng và
cột.
BORDERCOLOR Màu đ-ờng kẻ
BORDERCOLORDARK
BORDERCOLORLIGHT
Màu phía tối và phía sáng cho đ-ờng kẻ nổi.
BACKGROUND Địa chỉ tới tệp ảnh dùng làm nền cho bảng
BGCOLOR Màu nền
CELLSPACING Khoảng cách giữa các ô trong bảng
CELLPADDING Khoảng cách giữa nội dung và đ-ờng kẻ trong mỗi ô
của bảng.
COLSPAN Chỉ định ô sẽ kéo dài trong bao nhiêu cột
ROWSPAN Chỉ định ô sẽ kéo dài trong bao nhiêu hàng
2.2.7 Sử dụng Khung – Frame
Các framecho phép bạn tổ chức cấu trúcnội dung các trang Web của mình
bằng cách phức hợp nhiều tài liệu HTML để có thể xem chúng trong cùng một cửa
sổ chính của trình duyệt Web. Để tạo một trang Web phức hợp bạn sử dụng các thẻ
FRAMESETvà FRAMEđể chia cửa sổ chính thành các khung chữ nhật (frame).
Sau đó trong mỗi khung hìnhchữ nhật đó bạn chỉ định một tài liệu sẽ đ-ợc hiển thị
trong khung đó. Chú ý thẻ FRAMESETsẽ thay thế cho thẻ BODYtrong một tài
liệu HTML, điều đó có nghĩa là trong một tài liệu sử dụng thẻ FRAMESETsẽ
không có thẻ BODYmà thay vào đó phần nội dung chính của tài liệu sẽ đ-ợc định
nghĩa bởi thẻ FRAMESET.
a. Thẻ FRAMESET
Cú pháp:
<FRAMESET
COLS = col-widths
ROWS = row-heights
BORDER = pixels
BORDERCOLOR = color
FRAMEBORDER = 1/0 >
...
<FRAME ... >
http://www.ebook.edu.vn 27
<FRAME ... >
...
</FRAMESET>
Trong đó:
Các tham số ýnghĩa
COLS Chia dọc cửa sổ thành các phần với kích th-ớc chỉ định (theo
pixel, % hoặc *).
ROWS Chia ngang cửa sổ thành các phần với kích th-ớc chỉ định
(theo pixel, % hoặc *).
BORDER Kích th-ớc của đ-ờng kẻ viền khung
BORDERCOLOR Chỉ định màu cho đ-ờng viền khung
FRAMEBORDER Chỉ định có/không (1/0) hiển thị khung của các frame.
b. Thẻ FRAME
Cú pháp:
<FRAME
BORDERCOLOR = color
FRAMEBORDER = 0/1
MARGINHEIGHT = height
MARGINWIDTH = width
NAME = name
NORESIZE
SCROLLING = YES/NO
SRC = address
Target = Window_Name>
Trong đó:
Các tham số ýnghĩa
BORDERCOLOR Màu đ-ờng viền khung.
FRAMEBORDER = 0 / 1 Chỉ định có/không viền khung.
MARGINHEIGHT Khoảng cách giữa nội dung trong khung và đ-ờng
viền ngang.
MARGINWIDTH Khoảng cách giữa nội dung trong khung và đ-ờng
viền dọc.
NAME Đặt tên cho khung.
NORESIZE Chỉ định không đ-ợc thay đổi kích th-ớc của khung.
SCROLLING = YES / NO Chỉ định có hay không có thanh cuộn cho khung.
SRC Địa chỉ của tài liệu sẽ đ-ợc hiển thị trong khung.
Target Chỉ ra cửa sổ nơi mà tài liệu đ-ợc hiển thị
http://www.ebook.edu.vn 28
Ví dụ minh họa:
<HTML>
<HEAD><TITLE>Frames</TITLE></HEAD>
<FRAMESET
COLS = "30%, *">
<FRAME SRC = "vd45.htm">
<FRAME SRC = "vd48.htm">
</FRAMESET>
</HTML>
Hình 2.2 Sử dụng thẻ Frame
c. Thẻ IFRAME
Sử dụng thẻ IFRAMEđể đặt một frame vào trong một tài liệu HTML.
Cú pháp:
<IFRAME
ALIGN = LEFT / CENTER /RIGHT / TOP / BOTTOM
BORDER = pixels
BORDERCOLOR = color
FRAMEBORDER = 0/1
NORESIZE
SCROLLING = YES/NO
NAME = name
SRC = url
MARGINWIDTH = pixels
MARGINHEIGHT = pixels
WIDTH = n HEIGHT = n >
</IFRAME>
http://www.ebook.edu.vn 29
Trong đó:
Các tham số ýnghĩa
ALIGN Căn lề cho khung
BORDER Kích th-ớc đ-ờng viền của khung
BORDERCOLOR Màu đ-ờng viền của khung
FRAMEBORDER = 0 / 1 Khung có đ-ờng viền hay không
NORESIZE Không đ-ợc phép thay đổi kích th-ớc của khung.
SCROLLING = YES / NO Chỉ định khung có thanh cuộn hay không
NAME Đặt tên cho khung
SRC Địa chỉ tài liệu đ-ợc hiển thị trong khung
MARGINWIDTH Khoảng cách giữa văn bản nội dung của khung và
các đ-ờng viền dọc.
MARGINHEIGHT Khoảng cách giữa văn bản nội dung của khung và
các đ-ờng viền ngang.
WIDTH Đặt chiều rộng của khung
HEIGHT Đặt chiều cao của khung
Ví dụ minh họa:
<BODY>
Đây làkhung cửa sổ tạo bởi thẻ IFRAME:
<IFRAME
SRC = "vd43.htm"
WIDTH = 500>
</IFRAME>
</BODY>
Hình 2.3 Ví dụ về IFRAME
http://www.ebook.edu.vn 30
2.2.8 FORMS
Form là thành phần giao tiếp cơ bản giữa ng-ời duyệt Web với ng-ời tạo
Web. Dữ liệu đ-ợc nhập vào Form thông qua các hộp điều khiển (control).
a. HTML Forms
Ng-ời biên soạn HTML có thể tạo ra các HTML Form để t-ơng tác với
những ng-ời đọc tài liệu của họ chẳng hạn nh-cho phép ng-ời đọc nhập vào dữ
liệu để chạy một ch-ơng trình CGI, ghi vào các nhận xét về trang Web đó. Các
HTML Form có thể chứa các hộp văn bản (textbox),hộp danh sách lựa chọn
(checkbox), nút bấm (push button), nút chọn (radio button)...
b. Tạo Form
Để tạo ra một form trong tài liệu HTML, chúng ta sử dụng thẻ FORM với cú
pháp nh-sau:
Cú pháp:
<FORM
ACTION= ulr
METHOD = GET | POST
NAME = name
TARGET = frame_name | _blank | _self
>
<!-- Các phần tử điều khiển của form -->
<INPUT...>
<INPUT...>
</FORM>
Trong đó
Các tham số ýnghĩa
ACTION Địa chỉ sẽ gửi dữ liệu tới khi form đ-ợc submit (có thể là
địa chỉ tới một ch-ơng trình CGI, một trang ASP...).
METHOD Ph-ơng thức gửi dữ liệu.
NAME Tên của form.
TARGET Chỉ định cửa sổ sẽ hiển thị kết quả sau khi gửi dữ liệu từ
form đến server.
Đặt các đối t-ợng điểu khiển (nh-hộp văn bản, ô kiểm tra, nút bấm...) vào
trang Web
c. Thẻ INPUT
Cú pháp thẻ INPUT:
<INPUT
ALIGN= LEFT | CENTER | RIGHT
TYPE= BUTTON | CHECKBOX| FILE | IMAGE |
PASSWORD | RADIO | RESET | SUBMIT | TEXT
VALUE= value
>
Ví dụ minh họa:
<HTML>
<HEAD>
<TITLE>HTML Forms</TITLE>
<BODY>
<FORM
ACTION="http://www.cse.com.vn/scripts/auth.asp">
<P>
Tên NSD<INPUT><BR>
Mật khẩu<INPUT>
</P>
<INPUT>
</FORM>
</BODY>
</HTML>
Hình 2.4 Ví dụ về thẻ INPUT trong FORM
d. Tạo một danh sách lựa chọn bằng thẻ SELECT và OPTION
Cú pháp:
<SELECT>
<OPTION VALUE=value1 SELECTED> Tên mục chọn
thứ nhất
<OPTION VALUE=value2> Tên mục chọn thứ hai
<!-- Danh sách các mục chọn -->
</SELECT>
http://www.ebook.edu.vn 32
Ví dụ minh họa:
<HTML>
<HEAD>
<TITLE>Danh sách lựa chọn</TITLE>
</HEAD>
<BODY>
<P>Thông tin:</P>
<SELECT>
<OPTION SELECTED>Thời tiết
<OPTION>Truyền hình
<OPTION>Thị truờng
<OPTION>Thời sự QT
</SELECT>
</BODY>
</HTML>
Hình 2.5 Ví dụ tạo một danh sách lựa chọn
e. Tạo hộp soạn thảo văn bản bằng thẻ TEXTAREA
Cú pháp:
<TEXTAREA
COLS=số cột
ROWS=số hàng
NAME=tên
>
Văn bản ban đầu
</TEXTAREA>
http://www.ebook.edu.vn 33
Ví dụ minh họa:
<HTML>
<HEAD>
<TITLE>Hộp soạn thảo</TITLE>
</HEAD>
<BODY>
<P >Nhận xét:</P>
<TEXTAREA>
</TEXTAREA>
</BODY>
</HTML>
Hình 2.6 Tạo hộp soạnthảo văn bản
2.3 DHTML (Dynamic HTML)
2.3.1 Định nghĩa:
Ngôn ngữ đánh dấu siêu văn bản động (Dynamic Hypertext Markup
Language) là phiên bản mởrộng của HTML và JavaScript, ngôn ngữ này đ-ợc
dùng để tạo trang thông tin trên World Wide Web. Dynamic HTML có vị trí văn
bản và đồ họa rất chính xác vì nó cho phép nội dung của trang Web thay đổi mỗi
khi ng-ời dùng nhấn, kéo hay trỏ vào nút, hình ảnh hay các thành phần khác trên
trang này.
2.3.2 Đặc điểm
Ngôn ngữ đánh dấu siêu văn bản động mang lại cho các nhà phát triển khả
năng tạo những trang Web có hình thức và tính năng nh-một ứng dụng thực sự.
HTML động cho phép ng-ời dùng định vị chính xác văn bản và hình ảnh
trên trang Web. Cả hai trình duyệt của Netscape và Microsoft và mới nhất là của
Mozilla đều hỗ trợ hệ CSS đểkiểm soát vẻ ngoài của trang Web. Ví dụ, các nhà
phát triển có thể thay đổi kiểu chữ và kíchcỡ của từng dòng tiêu đề trên Web site
một cách đơn giản bằng cách thay đổi đặc tả trong trang đơn xác định hình thức
http://www.ebook.edu.vn 34
(Cascading Style Sheet) t-ơng ứng. HTML động có cả khảnăng liên kết cơ sở dữ
liệu với trang Web để sửa đổi nộidung ngay trong khi thực thi. Tr-ớc khi trang
HTML động đ-ợc duyệt, trình duyệt phải bổ sung mã ch-ơng trình chạy ngoài
trình duyệt nh-Java hay thành phần ActiveX.
2.3.3 Một số hiệu ứng DHTML
a. Tạo chuỗi ký tự chuyển động
Cú pháp:
<MARQUEE
BEHAVIOR =type
DIRECTION =LEFT | RIGHT
LOOP =n
VSCROLLAMOUNT=n
SCOLLDELAY =n
>
Chuỗi ký tự muốn chuyển động
</MARQUEE>
Các thuộc tính:
Các tham số ýnghĩa
BEHAVIOR Xác định cách thức chuyển động, với type=scroll thì
chuỗi ký tự bắt đầu xuất hiệntại 1 cạnh của cửa sổ màn
hình và biến mất ở cạnh bên kia, với type=slide thì chuỗi
bắt đầu chuyển động từ 1 cạnh và dừng lại ở cạnh bên
kia khi chuỗi chạm vào cạnh kia, với type=alternate thì
chuỗi xuất hiện từ bên này sang bên kia và chuyển động
ng-ợc lại.
DIRECTION Định h-ớng chuyển động cho chuỗi ký tự.
LOOP Xác định số lần chuyển động của chuỗi. Nếu
loop=infinite thì chuỗi sẽ xuất hiện liên tục.
VSCROLLAMOUNT Xác định tốc độ chuyển động của chuỗi, tính bằng số
pixel/giây.
SCOLLDELAY Thời gian ngừng sau 1 lần chuyển động.
Nếu không có các thuộc tính trên thì chuyển động lặp đi lặp lại từ phải sang
trái với tốc độ 6 pixel/1 giây và thời gian ngừng giữa các lần chạy là 90 giây.
Ví dụ minh họa:
<HTML>
<HEAD>
<TITLE>Chuỗi ký tự chuyển động</TITLE>
</HEAD>
<BODY>
<P><font color=“red” face=“tahoma” size=“4”></font></P>
<MARQUEE BEHAVIOR=scroll DIRECTION=LEFT
http://www.ebook.edu.vn 35
LOOP=infinite SCROLLAMOUNT=60SCOLLDELAY=5
>Ví dụ chuỗi ký tự chuyển động trong DHTML
</MARQUEE>
</BODY>
</HTML>
b. Thay đổi hình dạng chuột khi qua một vị trí
Cú pháp:
<TD STYLE= “cursor:thuộc tính của cursor>
Các thuộc tính và hình dạng t-ơng ứng:
Auto Hand Move Text Wait Help Default Crosshair
Ví dụ minh họa:
<HTML>
<HEAD>
<TITLE>Ví dụ về Cursor</TITLE>
</HEAD>
<BODY>
<TABLE BORDER=“1”>
<TR>
<TD STYLE=“cursor:auto”>auto</TD>
<TD STYLE=“cursor:hand”>hand</TD>
<TD STYLE=“cursor:move”>move</TD>
<TD STYLE=“cursor:text”>text</TD>
<TD STYLE=“cursor:wait”>wait</TD>
<TD STYLE=“cursor:help”>help</TD>
<TD STYLE=“cursor:default”>default</TD>
<TD STYLE=“cursor:crosshair”>crosshair</TD>
</TR>
</TABLE>
</BODY>
</HTML>
2.4 Câu hỏi và bài tập ch-ơng 2
Câu 1: Khái niệm ngôn ngữ HTML?
Câu 2: Nêu các thẻ xác định cấu trúc tài liệu HTML và ý nghĩa của chúng.
Câu 3: Ngôn ngữ đánh dấu siêu văn bản động (DHTML): khái niệm, đặc
điểm.
Bài 1: Thiết kế website ch-ơng trình đào tạo cử nhân CNTT hệ cao đẳng
tr-ờng Sĩ quan CH-KT Thông tin, trang gồm 3 frame nh-hình sau, toàn bộ website
sử dụng font Time New Roman, yêu cầu:
• Top frame gồm có logo bên trái, chính giữa là banner của site, dòng
slogan chạy bên d-ới.
• Left frame là menu chính gồm các mục chính: tin tức, đào tạo, tổ
chức, tài liệu, liên kết.
• Main frame dùng thể thể hiện nội dung các mục chọn trong main
menu.
• Bottom frame (footer) là thông tin liêm hệ và bản quyền.
Logo Banner
Tin tức Slogan chuyển động
Đào tạo
Tổ chức
Tài liệu
Liên kết
Contents
Footer
Bài 2: Thiết kế website quản lýsinh viên của Hệ Dân sự d-ới dạng bảng
(table), nh-sau:
Logo Banner
Date-Time Slogan chuyển động
Tin tức-Sự kiện
Thông báo-H-ớng dẫn
Tuyển sinh-Đào tạo
Quảng cáo
Kết quả-Học bổng
Diễn đàn sinh viên
Tài liệu học tập
Liên kết website
Contents Quảng cáo
Bài 3: Thiết kế một website theo chủ đề:
• Giới thiệu danh lam thắng cảnh của quê h-ơng.
• Giới thiệu các món ẩm thực đặc sản của địa ph-ơng.
• Giới thiệu chức năng, lĩnh vực kinh doanh của một công ty.
• Giới thiệu các ấn phẩmcủa một nhà sách nhỏ.
• Giới thiệu sản phẩm may mặc của một công ty may xuất khẩu.
• Giới thiệu sản phẩm, hàng hóacho một shop bán hàng.
http://www.ebook.edu.vn 37
Ch-ơng 3
Ngôn ngữ kịch bản trong lập trình Web
3.1 JavaScript
3.1.1 Tổng quan
Với HTML và Microsoft FrontPage chúng tađã biết cách tạo ra trang Web -
tuy nhiên chỉ mới ở mức biểu diễn thông tin chứ ch-a phải là các trang Web động
có khả năng đáp ứng các sự kiện từ phía ng-ời dùng. Hãng Netscape đã đ-a ra
ngôn ngữ kịch bản có tên là LiveScript để thực hiện chức năng này. Sau đó ngôn
ngữ này đ-ợc đổi tên thành JavaScript để tận dụng tính đại chúng của ngôn ngữ lập
trình Java. Mặc dù có những điểm t-ơng đồng giữa Java và JavaScript, nh-ng
chúng vẫn là hai ngôn ngữ riêng biệt.
JavaScript là ngôn ngữ d-ới dạng script có thể gắn với các file HTML. Nó
không đ-ợc biên dịch mà đ-ợc trình duyệt diễn dịch. Không giống Java phải
chuyển thành các mã dễ biên dịch, trình duyệt đọc JavaScript d-ới dạng mã nguồn.
Chính vì vậy chúng ta có thể dễ dàng học JavaScript qua ví dụ bởi vì ta có thể thấy
cách sử dụng JavaScript trên các trang Web.
a. Đặc tính của ngôn ngữ JavaScript
JavaScript là một ngôn ngữ thông dịch (interpreter), ch-ơng trình nguồn của
nó đ-ợc nhúng (embedded) hoặc tích hợp (integated) vào tập tin HTML chuẩn. Khi
file đ-ợc load trong Browser (có support cho JavaScript), Browser sẽ thông dịch các
Script và thực hiện các công việc xác định. Ch-ơng trình nguồn JavaScript đ-ợc
thông dịch trong trang HTMLsau khi toàn bộ trang đ-ợc load nh-ng tr-ớc khi
trang đ-ợc hiển thị.
JavaScript là một ngôn ngữ có đặc tính:
• Đơn giản.
• Động (Dynamic).
• H-ớng đối t-ợng (Object Oriented).
b. Đối t-ợng trong JavaScript
Một trong những đặc tính quan trọng của ngôn ngữ JavaScriptlà khả năng
tạo và sử dụng các đối t-ợng (Object). Các Object này cho phép ng-ời lập trình sử
dụng để phát triển ứng dụng.
Trong JavaScript, các Object đ-ợc nhìn theo 2 khía cạnh:
• Các Object đã tồn tại.
• Các Object do ng-ời lập trình xây dựng.
Trong các Object đã tồn tại đ-ợc chia thành 2 kiểu:
• Các Object của chính JavaScript(JavaScript Built-in Object):
JavaScript cung cấp 1 bộ các Built-in Object để cung cấp các thông tin
về sự hiện hành của các đối t-ợng đ-ợc load trong trang Web và nội
dung của nó.Các đối t-ợng này bao gồm các ph-ơng pháp (Method)
làm việc với các thuộc tính (Properties) của nó.
• Các đối t-ợng có sẵn đ-ợc cung cấp bởi môi tr-ờng Netscape:
Netscape Navigator cung cấp các đối t-ợng cho phép JavaScript t-ơng
tác với file HTML, các đối t-ợng này cho phép chúng ta điều khiển
việc hiển thị thông tin và đáp ứng các sự kiện trong môi tr-ờng
Navigator.
c. Các đối t-ợng do ng-ời lập trình xây dựng
• Định nghĩa thuộc tính của đối t-ợng: (Object Properties)
Cú pháp
Object-name.Property-name (tên đối t-ợng.tên đặc tính)
Ví dụ: Một đối t-ợng airplane có các thuộc tính nh-sau:
Airplane.model Airplane.price
Airplane.seating Airplane.maxspeed
Airplane.fuel
• Thêm các ph-ơng pháp cho đối t-ợng: ( Method to Object)
Sau khi đã có các thông tin về airplane ta tiếp tục xây dựng ph-ơng pháp để
sử dụng thông tin này.Ví dụ muốn in ra mô tả của airplane hoặc tính toán khoảng
cách tối đa của cuộc hành trình với nhiên liệu đã có:
Airplane.description()
Airplane.distance()
• Tạo một instance (thể hiện) của đối t-ợng:
Tr-ớc khi thao tác với một đối t-ợng của JavaScript ta phải tạo một instance
cho đối t-ợng đó.
d. Nhúng JavaScript vào trong tập tin HTML
Đoạn mã JavaScript có thể đ-ợc nhúng vào một file HTML theo một trong
các cách sau đây:
• Sử dụng các câu lệnh và các hàm trong cặp thẻ <SCRIPT>
• Sử dụng các file nguồn JavaScript.
• Sử dụng một biểu thức JavaScriptlàm giá trị của một thuộc tính
HTML.
• Sử dụng thẻ sự kiện (event handlers) trong một thẻ HTML nào đó.
Trong đó, sử dụng cặp thẻ <SCRIPT>...</SCRIPT> và nhúng một file
nguồn JavaScript là đ-ợc sử dụng phổ biến nhất.
Sử dụng cặp thẻ <SCRIPT>...</SCRIPT>:
Cú pháp:
<SCRIPT LANGUAGE=”JavaScript”>
JavaScript Program
</SCRIPT>
Sử dụng tập tin JavaScript bên ngoài:
<SCRIPT LANGUAGE=”JavaScript”
SRC=”http://www.tsqtt.edu.vn/scroll.js”>
<!- - Dòng ẩn mã Script đối với các Browser không hỗ trợ
(support)
JavaScript Program
//Chú thích, tất cả những gì thuộc dòng này đều bị trình
http://www.ebook.edu.vn 39
biên dịch bỏ qua. Chúng ta cũng có thể sử dụng cặp dấu
/* */ để chú thích cho một đoạn. Dòng kết thúc việc ẩn
mã Script - - >
</SCRIPT>
Thuộc tính của thẻ SCRIPT:
• LANGUAGE: Chỉ định ngôn ngữ đ-ợc sử dụng trong Script và các
phiên bản sử dụng (ví dụ nh-: JavaScript, JavaScript.1.2).
• SRC: Địa chỉ URL chỉ đến tập tin ch-ơng trình JavaScript (*.js)
Chú ý: Các file JavaScript bên ngoài không đ-ợc chứa bất kỳ thẻ HTML nào.
Chúng chỉ đ-ợc chứa các câu lệnh JavaScript và định nghĩa hàm. Tên file của các
hàm JavaScript bên ngoài cần có đuôi .js, và server sẽ phải ánh xạ đuôi .jsđó tới
kiểu MIME application/x-javascript.
Thêm ch-ơng trình vào tập tin HTML:
<HTML>
<HEAD>
<TITLE>Listing</TITLE>
</HEAD>
<BODY>
Here is result:
<SCRIPT LANGUAGE=“Javascript”>
<!--
document.writeln(“It work<BR>”);
-->
</SCRIPT>
</BODY>
</HTML>
3.1.2 Sử dụng JavaScript
a. Cú pháp cơ bản của lệnh :
JavaScript xây dựng các hàm,các phát biểu,các toán tử và các biểu thức trên
cùng một dòng và kết thúc bằng dấu chấm phẩy (;).
Ví dụ: document.writeln("It work<BR>");
b. Các khối lệnh:
Nhiều dòng lệnh có thể đ-ợc liên kết với nhau và đ-ợc bao bởi cặp dấu
ngoặc nhọn: {}
Ví dụ:
{
document.writeln("Does It work");
document.writeln("It work!");
}
c. Xuất dữ liệu ra cửa sổ trình duyệt:
Dùng 2 ph-ơng pháp document.write() và document.writeln()
Ví dụ:
document.write(“Test”);
document.writeln(“Test”);
Lệnh document.writeln(“Test”); cho phép xuất từ “Test” ra màn hình và sau
đó đ-a con trỏ xuống đầu dòng tiếp theo.
d. Xuất các thẻ HTML từ JavaScript
Ví dụ 1:
<HTML>
<HEAD>
<TITLE>Outputting Text</TITLE>
</HEAD>
<BODY>
This is text plain <BR>
<B>
<SCRIPT LANGUAGE==“Javascript”>
<!- -
document.write(“This is text bold </B>”);
- ->
</SCRIPT>
</BODY>
</HTML>
Ví dụ 2:
<HTML>
<HEAD>
<TITLE>Example</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE=“Javascript”>
<!- -
document.write(“<IMG SRC= ‘welcome.gif’>”);
document.write(“<BR><H1>WELCOME TO WEB
DESIGN</H1>”);
- ->
</SCRIPT>
</BODY>
</HTML>
e. Sử dụng ph-ơng pháp writeln() với thẻ PRE:
<HTML>
<HEAD>
<TITLE>Outputting Text</TITLE>
</HEAD>
<BODY>
http://www.ebook.edu.vn 41
<PRE>
<SCRIPT>
<!- -
document.writeln("One,");
document.writeln("Two,");
document.write("Three");
document.write("...");
- ->
</SCRIPT>
</PRE>
</BODY>
</HTML>
f. Các ký tự đặc biệt trong chuỗi:
: New line
\t : Tab
\r : carriage return
\f : form feed
\b: backspace
Ví dụ:
document.writeln("It work!
");
g. Làm việc với các hộp hội thoại (dialog boxes):
Sử dụng hàm alert() để hiển thị thông báo trong một hộp.
Ví dụ:
<HTML>
<HEAD>
<TITLE>Example</TITLE>
</HEAD>
<BODY>
<SCRIPT>
<!- -
alert("Welcome to Web Design");
document.write('<IMG
SRC="welcome.gif">');
- ->
</SCRIPT>
</BODY>
</HTML>
h. T-ơng tác với ng-ời sử dụng:
Sử dụng ph-ơng pháp promt() để t-ơng tác với ng-ời sử dụng.
Ví dụ 1:
<HTML>
http://www.ebook.edu.vn 42
<HEAD>
<TITLE>Listing</TITLE>
</HEAD>
<BODY>
<SCRIPT>
<!- -
document.write("Your favorite color is:");
document.writeln(prompt("enter your favorite
color:","Blue"));
- ->
</SCRIPT>
</BODY>
</HTML>
Ví dụ 2:
<HTML>
<HEAD>
<TITLE>Listing</TITLE>
</HEAD>
<BODY>
<SCRIPT>
<!- -
document.write('<IMG>');
document.write("<H1>Greeting ,");
document.writeln(prompt("enteryour name:","name"));
document.write("Welcome tonetscape navigator 2.01
</H1>");
- ->
</SCRIPT>
</BODY>
</HTML>
Sử dụng toán tử + để cộng 2 chuỗi đơn lại:
Ví dụ 3:
<HTML>
<HEAD>
<TITLE>Listing</TITLE>
</HEAD>
<BODY>
<SCRIPT>
<!- -
document.write('<IMG
SRC="welcome.gif">');
http://www.ebook.edu.vn 43
document.write("<H1>Greeting," + prompt("enter your
name:","name") + "Welcome to Web Design </H1>");
- ->
</SCRIPT>
</BODY>
</HTML>
3.1.3 Các kiểu dữ liệu trong JavaScript:
a. Dữ liệu kiểu số:
• Số nguyên: ví dụ: 720
• Số Octal: ví dụ: 056
• Số Hexa: ví dụ: 0x5F
• Số thập phân: ví dụ: 7.24, -34.2, 2E3
b. Dữ liệu kiểu chuổi:
Ví dụ: “Hello”
‘245’
“”
c. Dữ liệu kiểu Boolean:
Kết quả trả về là true hoặc false.
d. Dữ liệu kiểu null:
Trả về giá trị rỗng.
e. Dữ liệu kiểu văn bản (giống nh-kiểu chuỗi)
3.1.4 Tạo biến trong JavaScript:
Var example;
Var example=”Hello”;
Ta có thể dùng document.write(example);để xuất nội dung của một biến.
Ví dụ 1: Dùng từ khóa var để khai báo biến
<HTML>
<HEAD>
<TITLE>Listing</TITLE>
</HEAD>
<BODY>
<SCRIPT>
<!- -
var name=prompt("enter your name:","name");
- ->
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT>
<!--
http://www.ebook.edu.vn 44
document.write('<IMG>');
document.write("<H1>Greeting ," + name + " Welcome to
Web Design </H1>");
- ->
</SCRIPT>
</BODY>
</HTML>
Ví du 2: Tạo lại một giá trị mới cho biến
<HTML>
<HEAD>
<TITLE>Example</TITLE>
</HEAD>
<BODY>
<SCRIPT>
var name=prompt("enter your name:","name");
alert ("greeting " + name + " , ");
name=prompt("enter your friend's name:","friend's name");
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT>
<!--
document.write('<IMG>');
document.write("<H1>Greeting ," + name + " Welcome to
Web Design </H1>");
- ->
</SCRIPT>
</BODY>
</HTML>
3.1.5 Làm việc với biến và biểu thức:
a. Thiết lập biểu thức:
Cú pháp: <biến> <toán tử > <biểu thức>
Toán tử:
= Gán giá trị bên phải cho biến bên trái
Ví dụ: x=5
+= Cộng trái và phải, sau đó gán kết quả cho biến bên trái phép toán
Ví dụ: cho x=10, y=5
x+=y => x=15
-= Trừ bên trái cho bên phải, gán kết quả lại cho biến bên trái
x-=y => x=5
*= Nhân bên trái cho bên phải, gán kết quả cho biến bên trái
x*=y => x=50
/= Chia bên trái cho phải, gán kết quả lại cho biến bên trái
x/=y => x=2
%= Chia bên trái cho bên phải và lấy số d-gán lại cho biến bên trái
x%=y => x=0
Các toán tử khác:
Ví dụ:
x+=15+3 => x=18
8+5
32.5 * 72.3
12 % 5
Dấu ++ và dấu - - và dấu - :
Ví dụ:
x=5;
y=++x; (=> y=6 vì x tăng lên 6 sau đó gán cho y)
z=x++; (=> z=6 vì giá trị x=6 đ-ợc gán cho z)
sau đó x tăng 1 => x=7
Do đó ta có kết quả cuối cùng là:
x=7; y=6; z=6;
Ví dụ: x=5;
x=-x => x=-5
b. Phép toán Logic
&&: và
||: hoặc
! not
Ví dụ:
x=5, y=2, c=3
(x>y) && (y>c) => false
(x>y) || (c<x) => true
!x
c. Toán tử so sánh trong JavaScript:
==: bằng
!=: khác
>: lớn hơn
<: nhỏ hơn
>=: lớn hơn hoặc bằng
<=: nhỏ hơn hoặc bằng
Ví dụ:
1==1 => true
3<1 => false
5 >=4 => true
“the” != “he” => true
4==“4” => true
d. Toán tử điều kiện:
Cú pháp: (điều kiện ) ? giá trị 1 : giá trị 2
http://www.ebook.edu.vn 46
• Nếu điều kiện đúng thì trả về giá trị 1
• Nếu điều kiện sai thì trả về giá trị 2
Ví dụ:
(day=“Saturday”) ? “Weekend” : “Not Saturday”
e. Toán tử chuỗi:
“ Welcome to “ + “ Web Design”
Ví dụ:
Var welcome=”Welcome to”
welcome += “ Web Design”
=> welcome = “Welcome to Web Design”
Ví dụ : Sử dụng toán tử điều kiện để kiểm tra đầu vào
<HTML>
<HEAD>
<TITLE>Example</TITLE>
</HEAD>
<BODY>
<SCRIPT>
var;
var answer=20;
var correct='<IMG>';
var incorrect='<IMG>';
var response=prompt(question,"0");
var output = (response==answer) ? correct:incorrect;
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT>
<!--
document.write(output);
- ->
</SCRIPT>
</BODY>
</HTML>
3.1.6 Cấu trúc điều kiện if – else
Cú pháp:
if điều kiện
lệnh ;
hoặc
if điều kiện {
Mã JavaScript
}
http://www.ebook.edu.vn 47
Ví dụ:
If (day==“Saturday”) {
document.writeln(“It‘s the weekend”);
}
If (day!=“Saturday”) {
document.writeln(“It‘s not Saturday”);
}
Sử dụng cấu trúc else – ifcho ví dụ ở trên
If (day==“Saturday”) {
document.writeln(“It‘s the weekend”);
}
else {
document.writeln(“It‘s not Saturday”);
}
Cấu trúc kết hợp các lệnh iflồng nhau:
if điều kiện 1 {
Các lệnh JavaScript
if điều kiện 2 {
Các lệnh JavaScript
} else {
Các lệnh khác
}
Các lệnh JavaScript
} else {
Các lệnh khác
}
Ví dụ 1 : Sử dụng ph-ơng pháp confirm()với phát biểu if
<HTML>
<HEAD>
<TITLE>Example</TITLE>
<SCRIPT>
var;
var answer=20;
var correct='<IMG>';
var incorrect='<IMG>';
var response=prompt(question,"0");
if (response != answer) {
if (confirm("Wrong ! press OK for a second change"))
response=prompt(question,"0");
}
http://www.ebook.edu.vn 48
var output = (response ==answer ) ? correct:incorrect ;
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT>
<!--
document.write(output);
-->
</SCRIPT>
</BODY>
</HTML>
Ví dụ 2 : Sử dụng ph-ơng pháp confirm()với phát biểu if - else
<HTML>
<HEAD>
<TITLE>Example</TITLE>
<SCRIPT>
var;
var answer=20;
var correct='<IMG>';
var incorrect='<IMG>';
var response=prompt(question,"0");
if (response != answer) {
if (confirm("Wrong ! press OK for a second change"))
response=prompt(question,"0");
}else {
if (confirm("Correct ! press OK for a second question"))
{
question="What is 10*10";
answer=100;
response=prompt(question,"0");
}
}
var output = (response ==answer ) ? correct:incorrect ;
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT>
<!--
document.write(output);
-->
</SCRIPT>
http://www.ebook.edu.vn 49
</BODY>
</HTML>
3.1.7 Hàm và dối t-ợng
Trong kỹ thuật lập trình các lập trình viên th-ờng sử dụng hàm để thực hiện
một đoạn ch-ơng trình thể hiện cho một module nào đó để thực hiện một công việc
nào đó.
Trong Javascript có các hàm đ-ợc xây dựng sẵn để giúp chúng ta thực hiện
một chức năng nào đó ví dụ nh-hàm alert(), document.write(), parseInt() và ta
cũng có thể định nghĩa ra các hàm khác của mình để thực hiện một công việc nào
đó của mình, để định nghĩa hàm chúng ta theo cú pháp sau:
function function_name(parameters, arguments)
{
command block;
}
a. Truyền tham số:
function printName(name) {
document.write(“<HR>Your Name is <B><I>”);
document.write(name);
document.write(“</B></I><HR>”);
}
Ví dụ:
Gọi hàm printName() với lệnh sau printName(“Bob”);
Khi hàm printName() đ-ợc thi hành giá trị của name là "Bob", nếu gọi hàm
printName() với đối số là một biến
var user = “John”;
printName(user);
Khi đó name là “John”. Nếu muốn thay đổi giá trị của name ta có thể làm
nh-sau : name = “Mr. “ + name;
b. Phạm vi của biến:
Biến toàn cục (Global variable): có giá trị ảnh h-ởng trong toàn bộ ch-ơng
trình.
Biến cục bộ (Local variable): chỉ có giá trị ảnh h-ởng trong phạm vi hàm,
đoạn mã chứa nó.
c. Trả về các giá trị:
Ví dụ: Dùng return để trả về giá trị của biến.
function cube(number) {
var cube = number * number * number;
return cube;
}
Ví dụ:
<HTML>
http://www.ebook.edu.vn 50
<HEAD>
<TITLE>Example</TITLE>
<SCRIPT LANGUAGE=”JavaScript”>
<!-- HIDE FROM OTHER BROWSERS
//DEFINE FUNCTION testQuestion()
function testQuestion(question) {
//DEFINE LOCAL VARIABLES FOR THE FUNCTION
var answer=eval(question);
var output= “What is ” + question + “?”;
var correct=‘<IMG SRC=“correct.gif”>’;
var incorrect=‘<IMG SRC=“incorrect.gif”>’;
//ASK THE QUESTION
var response=prompt(output,“0”);
//CHECK THE RESULT
return (response == answer) ? correct : incorrect;
}
// STOP HIDING FROM OTHER BROWSERS -->
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE= “JavaScript”>
<!-- HIDE FROM OTHER BROWSERS
//ASK QUESTION AND OUTPUT RESULTS
var result=testQuestion(“10 + 10”);
document.write(result);
//STOP HIDING FROM OTHER BROWSERS -->
</SCRIPT>
</BODY>
</HTML>
Hàm eval dùng chuyển đổi giá trị chuỗi số thành giá trị số.
Ví dụ: eval(“10*10”) trả về giá trị là 100.
d. Hàm đệ qui
Ví dụ:
<HTML>
<HEAD>
<TITLE>Example</TITLE>
<SCRIPT LANGUAGE= “JavaScript”>
<!-- HIDE FROM OTHER BROWSERS
//DEFINE FUNCTION testQuestion()
function testQuestion(question) {
//DEFINE LOCAL VARIABLES FOR THE FUNCTION
http://www.ebook.edu.vn 51
var answer=eval(question);
var output= “What is ” + question + “?”;
var correct= ‘<IMG SRC=“correct.gif”>’;
var incorrect= ‘<IMG SRC=“incorrect.gif”>’;
//ASK THE QUESTION
var response=prompt(output,”0");
//CHECK THE RESULT
return (response == answer) ? correct : testQuestion(question);
}
// STOP HIDING FROM OTHER BROWSERS -->
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE= “JavaScript”>
<!-- HIDE FROM OTHER BROWSERS
//ASK QUESTION AND OUTPUT RESULTS
var result=testQuestion(“10 + 10”);
document.write(result);
//STOP HIDING FROM OTHER BROWSERS -->
</SCRIPT>
</BODY>
</HTML>
Ví dụ 2:
<HTML>
<HEAD>
<TITLE>Example</TITLE>
<SCRIPT LANGUAGE= “JavaScript”>
<!-- HIDE FROM OTHER BROWSERS
//DEFINE FUNCTION testQuestion()
function testQuestion(question,chances) {
//DEFINE LOCAL VARIABLES FOR THE FUNCTION
var answer=eval(question);
var output= “What is ” + question + “?”;
var correct= ‘<IMG SRC=“correct.gif”>’;
var incorrect= ‘<IMG SRC=“incorrect.gif”>’;
//ASK THE QUESTION
var response=prompt(output,“0”);
//CHECK THE RESULT
if (chances > 1) {
return (response == answer) ? correct : testQuestion(question,chances-1);
} else {
http://www.ebook.edu.vn 52
return (response == answer) ? correct : incorrect;
}
}
// STOP HIDING FROM OTHER BROWSERS -->
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE=“JavaScript”>
<!-- HIDE FROM OTHER BROWSERS
//ASK QUESTION AND OUTPUT RESULTS
var result=testQuestion(“10 + 10”,3);
document.write(result);
//STOP HIDING FROM OTHER BROWSERS -->
</SCRIPT>
</BODY>
</HTML>
3.1.8 Tạo đối t-ợng trong JavaScript
a. Định nghĩa thuộc tính của đối t-ợng:
function student(name,age, grade) {
this.name = name;
this.age = age;
this.grade = grade;
}
Để tạo một Object ta sử dụng phát biểu new.
Ví dụ để tạo đối t-ợng student1, ta sử dụng khai báo:
student1 = new student(“Bob”,10,75);
Ba thuộc tính của đối t-ợng student1là :
student1.name, student1.age, student1.grade
Ví dụ để tạo đối t-ợng student2:
student2 = new student(“Jane”,9,82);
Để thêm thuộc tính cho student1, ta có thể làm nh-sau:
student1.mother = “Susan”;
Hoặc chúng ta có thể định nghĩa lại hàm student
function student(name,age, grade,mother) {
this.name = name;
this.age = age;
this.grade = grade;
this.mother = mother;
}
b. Đối t-ợng là thuộc tính của đối t-ợng khác
Ví dụ:
function grade (math, english, science) {
this.math = math;
this.english = english;
this.science = science;
}
bobGrade = new grade(75,80,77);
janeGrade = new grade(82,88,75);
student1 = new student(“Bob”,10,bobGrade);
student2 = new student(“Jane”,9,janeGrade);
student1.grade.math: dùng để lấy điểm Toán của student1
student2.grade.science: dùng lấy điểm môn Khoa học của student2
c. Thêm ph-ơng thức cho đối t-ợng:
function displayProfile() {
document.write(“Name: “ + this.name + “<BR>”);
document.write(“Age: “ + this.age + “<BR>”);
document.write(“Mother’s Name: “ + this.mother + “<BR>”);
document.write(“Math Grade: “ + this.grade.math + “<BR>”);
document.write(“English Grade: “ + this.grade.english + “<BR>”);
document.write(“Science Grade: “ + this.grade.science + “<BR>”);
}
function student(name,age, mother,grade) {
this.name = name;
this.age = age;
this.grade = grade;
this.mother = mother;
this.displayProfile = displayProfile;
}
student1.displayProfile();
Ví dụ:
<HTML>
<HEAD>
<TITLE>Example</TITLE>
<SCRIPT LANGUAGE=”JavaScript”>
<!-- HIDE FROM OTHER BROWSERS
//DEFINE METHOD
function displayInfo() {
document.write(“<H1>Employee Profile: ” + this.name +
“</H1><HR><PRE>”);
document.writeln(“Employee Number: ” + this.number);
document.writeln(“Social SecurityNumber: ” + this.socsec);
document.writeln(“Annual Salary: ” + this.salary);
document.write(“</PRE>”);
}
//DEFINE OBJECT
function employee() {
this.name=prompt(“Enter Employee’s Name”,”Name”);
this.number=prompt(“Enter Employee Number for “ +
this.name,”000-000");
this.socsec=prompt(“Enter SocialSecurity Number for “ +
this.name,”000-00-0000");
this.salary=prompt(“Enter Annual Salary for “ +
this.name,”$00,000");
this.displayInfo=displayInfo;
}
newEmployee=new employee();
// STOP HIDING FROM OTHER BROWSERS -->
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE=”JavaScript”>
<!-- HIDE FROM OTHER BROWSERS
newEmployee.displayInfo();
// STOP HIDING FROM OTHER BROWSERS -->
</SCRIPT>
</BODY>
</HTML>
Hình 3.1 Form nhập tên nhân viên
Hình 3.2 Form nhập mức l-ơng
http://www.ebook.edu.vn 55
Hình 3.3 Form hiển thị kết quả
Ví dụ:
<HTML>
<HEAD>
<TITLE>Example</TITLE>
<script>
<!-- Begin
var;
var;
var;
var;
var;
var;
mydate = new Date();
myday = mydate.getDay();
mymonth = mydate.getMonth();
myweekday= mydate.getDate();
weekday= myweekday;
myyear= mydate.getYear();
year = myyear;
myhours = mydate.getHours();
ampmhour = (myhours > 12) ? myhours - 12 : myhours;
ampm = (myhours >= 12) ? 'Buổ i Chiề u ' : ' Buổ i Sá ng ';
mytime = mydate.getMinutes();
myminutes = ((mytime < 10) ? ':0' : ':') + mytime;
if(myday == 0)
day = " Chủ Nhật , ";
else if(myday == 1)
day = " Thứ hai, ";
http://www.ebook.edu.vn 56
else if(myday == 2)
day = " Thứ ba, ";
else if(myday == 3)
day = " Thứ t-, ";
else if(myday == 4)
day = " Thứ năm, ";
else if(myday == 5)
day = " Thứ sáu , ";
else if(myday == 6)
day = " Thứ bảy , ";
if(mymonth == 0) {
month = "tháng một ";}
else if(mymonth ==1)
month = "tháng hai ";
else if(mymonth ==2)
month = "tháng ba ";
else if(mymonth ==3)
month = "tháng t-";
else if(mymonth ==4)
month = "tháng năm, ";
else if(mymonth ==5)
month = "tháng sáu ";
else if(mymonth ==6)
month = "tháng bảy ";
else if(mymonth ==7)
month = "tháng tám ";
else if(mymonth ==8)
month = "tháng chín ";
else if(mymonth ==9)
month = "tháng m-ời ";
else if(mymonth ==10)
month = "tháng m-ời một ";
else if(mymonth ==11)
month = "tháng m-ời hai ";
// End -->
</script>
</HEAD>
<!--Trong phan co the xuat ra nhu sau: -->
<BODY>
<SCRIPT>
<!-- HIDE FROM OTHER BROWSERS
http://www.ebook.edu.vn 57
document.write("<b><font color=#0000ff face=”tahoma,
helvetica, arial'>" + ampmhour+ "" + myminutes + ampm)
document.write(" - " + day + " ngày " + myweekday +" ");
document.write( month + " , năm " + year + "</font>");
// STOP HIDING FROM OTHER BROWSERS -->
</SCRIPT>
</BODY>
</HTML>
Sau khi duyệt sẽcho kết quả nh-sau:
Hình 3.4 Kết quả của đoạn scripthiển thị ngày giờ hệ thống
3.1.9 Sự kiện trong JavaScript
Các sự kiện cung cấp các t-ơng tác với cửa sổ trình duyệt và tài liệu hiện
hành đang đ-ợc load trong trang web, các hành động của user khi nhập dữ liệu vào
form và khi click vào các button trong form.
Khi sử dụng bộ quản lý sự kiện bạn có thể viết các hàm để biểu diễn cho các
hành động dựa vào các sự kiện đựoc chọn.
a. Bảng sự kiện trong Javascript
Tên sự kiện Mô tả
Blur Xảy ra khi điểm tập trung của đầu vào đ-ợc di chuyển
ra khỏi một thành phần của Form (Khi click ra ngoài
một tr-ờng)
Click Khi user Click vào 1 link hoặc thành phần của Form.
Change Xảy ra khi giá trị của Form Field bị thay đổi bởi user.
Focus Xảy ra khi ngõ vào tập trung vào thành phần của Form
Load Xảy ra khi một trang đ-ợc Load vào trong bộ duyệt.
Mouseover Xảy ra khi User di chuyển mouse qua một Hyperlink.
Select Xảy ra khi User chọn 1 tr-ờng của thành phần Form.
Submit Xảy ra khi User xác nhận đã nhập xong dữ liệu.
Unload Xảy ra khi User rời khỏi trang Web.
http://www.ebook.edu.vn 58
b. Bộ quản lý sự kiện (Event Handler)
Để quản lý các sự kiện trong javascript ta dùng các bộ quản lý sự kiện.
Cú pháp của một bộ quản lý sự kiện:
<HTML_TAG OTHER_ATTRIBUTES eventHandler=”JavaScript Program”>
Ví dụ:
<INPUT TYPE=”text” onChange=”checkField(this)”>
Ví dụ:
<INPUT TYPE=”text” onChange=“if (parseInt(this.value) <= 5)
{
alert(‘Please enter a number greater than 5.’);
}
“>
Ví dụ:
<INPUT TYPE=”text” onChange=“
alert(‘Thanks for the entry.’);
confirm(‘Do you want to continue?’);
“>
Từ khóa this: quy cho đối t-ợng hiện hành, trong Javascript, Form là một
đối t-ợng. Các thành phần của Form bao gồm text fields, checkboxes, radio
buttons, buttons, và selection lists.
c. Các bộ quản lý sự kiện trong Javascript
Đối t-ợng Bộ quản lý sự kiện t-ơng ứng.
Selection list onBlur, onChange, onFocus
Text element onBlur, onChange, onFocus, onSelect
Textarea element onBlur, onChange, onFocus, onSelect
Button element onClick
Checkbox onClick
Radio button onClick
Hypertext link onClick, onMouseOver
Reset button onClick
Submit button onClick
Document onLoad, onUnload
Window onLoad, onUnload
Form onSubmit
d. Cách dùng bộ quản lý sự kiện onLoad & onUnload
<HTML>
<HEAD>
<TITLE>Example 5.1</TITLE>
</HEAD>
<BODY onLoad=”alert(‘Welcome to my page!’);”
onUnload=”alert(‘Goodbye! Sorry to see you go!’);”>
<IMG SRC=”title.gif”>
http://www.ebook.edu.vn 59
</BODY>
</HTML>
Ví dụ 1:
<HTML>
<HEAD>
<TITLE>Example</TITLE>
<SCRIPT LANGUAGE=”JavaScript”>
<!-- HIDE FROM OTHER BROWSERS
var name = “”;
// STOP HIDING FROM OTHER BROWSERS -->
</SCRIPT>
</HEAD>
<BODY onLoad=”
name = prompt(‘Enter Your Name:’,’Name’);
alert(‘Greetings ‘ + name + ‘,welcome to my page!’);”
onUnload=” alert(Goodbye ‘ + name + ‘, sorry to see you go!’);”>
<IMG SRC=”title.gif”>
</BODY>
</HTML>
Ví dụ 2:
<HTML>
<HEAD>
<TITLE>Example</TITLE>
<SCRIPT LANGUAGE=”JavaScript”>
<!-- HIDE FROM OTHER BROWSERS
// DEFINE GLOBAL VARIABLE
var name = “”;
function hello() {
name = prompt(‘Enter Your Name:’,’Name’);
alert(‘Greetings ‘ + name + ‘, welcome to my page!’);
}
function goodbye() {
alert(Goodbye ‘ + name + ‘, sorry to see you go!’);
}
// STOP HIDING FROM OTHER BROWSERS -->
</SCRIPT>
</HEAD>
<BODY onLoad=”hello();” onUnload=”goodbye();”>
<IMG SRC=”title.gif”>
</BODY>
</HTML>
http://www.ebook.edu.vn 60
e. Các sự kiện và Form
Các sự kiện đ-ợc sử dụng để truy xuất Form nh-: onClick, onSubmit,
onFocus, onBlur, và onChange.
Ví dụ 1:
<INPUT TYPE=text NAME=”test” VALUE=”test”
onBlur=”alert(‘Thank You!’);”
onChange=”check(this);”>
Khi giá trị thay đổi function check()sẽ đ-ợc gọi. Ta dùng từ khóa thisđể
chuyển đối t-ợng của tr-ờng hiện hành đến hàm check(). Chúng ta cũng có thể dựa
vào các ph-ơng pháp và các thuộc tính của đối t-ợng bằng phát biểu sau:
this.methodName() & this.propertyName.
Ví dụ 2:
<HTML>
<HEAD>
<TITLE>Example</TITLE>
<SCRIPT LANGUAGE=”JavaScript”>
<!-- HIDE FROM OTHER BROWSERS
function calculate(form) {
form.results.value = eval(form.entry.value);
}
function getExpression(form) {
form.entry.blur();
form.entry.value = prompt(“Please enter a JavaScript
mathematical expression”,””);
calculate(form);
}
//STOP HIDING FROM OTHER BROWSERS -->
</SCRIPT>
</HEAD>
<BODY>
<FORM METHOD=POST>
Enter a JavaScript mathematical expression:
<INPUT TYPE=text NAME=”entry” VALUE=””
onFocus=”getExpression(this.form);”>
<BR>
The result of this expression is:
<INPUT TYPE=text NAME=”results” VALUE=””
onFocus=”this.blur();”>
</FORM>
</BODY>
</HTML>
http://www.ebook.edu.vn 61
Hình 3.5 Các sự kiện trên form
formObjectName.fieldname: Dùng để chỉ tên tr-ờng của hiện hành trong form.
formObjectName.fieldname.value: Dùng lấy giá trị của tr-ờng form hiện hành.
3.1.10 Sử dụng vòng lặp trong JavaScript
a. Vòng lặp for :
Cú pháp :
for ( init value ; condition ; update expression )
Ví dụ 1:
for (i = 0 ; i < 5 ; i++)
{
lệnh ;
}
Ví dụ 2:
<HTML>
<HEAD>
<TITLE> for loop Examle </TITLE>
</HEAD>
<BODY>
<SCRIPT>
<!- -
var name=prompt("What is your name?" ,"name");
var query= " " ;
document.write("<H1>" + name + " 's 10 favorite foods </H1> ");
for (var i=1 ;i<=10;i++)
{
document.write(i + " " + prompt('Enter food number ' + i,
'food' ) + '<BR>');
}
http://www.ebook.edu.vn 62
- ->
</SCRIPT>
</BODY>
</HTML>
b. Vòng lặp while :
Cú pháp:
While ( điều kiện)
{
lệnh JavaScript ;
}
Ví dụ 1:
var num=1;
while(num<=10)
{
document.writeln(num);
num++;
}
Ví dụ 2:
var answer=” “ ;
var correc=100;
var question=” what is 10*10 ?” ;
while(answer!=correct)
{
answer=prompt(question,”0”);
}
c. Tạo mảng với vòng lặp for:
function createArray(num)
{
this.length=num;
for ( var j=0 ; j<num; j++)
this[j]=0;
}
Hàm sẽ tạo một mảng có giá trị index bắt đầu là 0 và gán tất cả các giá trị
của mảng về 0 .
Để sử dụng đối t-ợng mảng ta có thể làm nh-sau:
newArray= new createArray(4);
Sẽ tạo ra một mảng gồm4 thành phần newArray[0] … newArray[3]
3.1.11 Sử dụng đối t-ợng Windows
Window là đối t-ợng của môi tr-ờng Navigator, ngoài các thuộc tính
Window đối t-ợng window còn giữ các đối t-ợng khác mà có thể đ-ợc xem nh-là
các thành phần (member) của window, các đối t-ợng đó là:
• Các frame đã đ-ợc tạo
• Các đối t-ợng location và histtory
• Đối t-ợng document
Đối t-ợng document chứa (encompasses) tất cả các thành phần trong trang
HTML. Đây là một đối t-ợng hoàn hảo có các đối t-ợng khác của JavaScript gán
(attached) vào nó (nh-là anchor, form, history, link). Hầu nh-mọi ch-ơng trình
JavaScript đều cósử dụng đối t-ợng này để tham khảo đến các thành phần trong
trang HTML.
a. Các thuộc tính (properties) của đối t-ợng document
• alink
• anchor
• bgColor
• cookies
• fgColor
• form
• lastModified
• linkColor
• links
• location
• referrer
• title
• vlinkColor
b. Các hành vi (Methods) của đối t-ợng document
• clear()
• close()
• open()
• write()
• writeln()
c. Các thuộc tính của đối t-ợng Window
• defaultStatus : Giá trị mặt nhiên đ-ợc hiển thị ở thanh trạng thái.
• frames: Mảng các đối t-ợng chứa đựng một mục cho mỗi frame con
trong một frame tài liệu.
• parent: Đ-ợc sử dụng trong FRAMSET
• self: Cửa sổ hiện hành , dùng để phânbiệt giữa các cửa sổ hiện hành
và các forms có cùng tên.
• status: Giá trị của chuỗi văn bản đ-ợc hiển thị tại thanh status bar.
Dùng để hiển thi các thông báo cho ng-ời sử dụng.
• top: Đỉnh cao nhất của cửa sổ cha.
• window
d. Các hành vi (Methods) của đối t-ợng window
• alert(): Hiện 1 thông báo trong hộp thoại với OK button.
http://www.ebook.edu.vn 64
• close(): Đóng cửa sổ hiện hành.
• open(): Mở một cửa sổ mới với 1 tài liệu đ-ợc chỉ ra hoặc mở một tài
liệu trong một tên cửa sổ đ-ợc chỉ định.
• prompt(): Hiện một hộp thông báo.
• setTimeout():
• clearTimeout(): Hành vi này cung cấp cách gọi phát biểu JavaScript
sau một khoảng thời gian trôi qua. Ngoài ra đối t-ợng window có thể
thực hiện event handler: onLoad=statement.
3.1.12 Làm việc với status bar
Khi user di chuyển qua một hyperlink tacó thể hiện ra một thông báo tại
thanh status bar của browser dựa vào event handler onMouseOver và bằng cách đặt
self.status là một chuỗi (hoặc window.status).
Ví dụ:
<HTML>
<HEAD>
<TITLE>Status Example</TITLE>
<BODY>
<A HREF=”plc.htm” onMouseOver=”self.status=’Chuyen de PLC’;
return true ; “ >
Lop chuyen dề PLC </A>
<A HREF=”tkweb.htm” onMouseOver=”self.status=’Thiet Ke
Trang Web’ ;
return true ; “ >
Thiet Ke Web</A>
</BODY>
</HTML>
3.1.13 Mở và đóng các cửa sổ
Sử dụng ph-ơng thức open()và close()ta có thể điều khiển việc mở và đóng
cửa sổ chứa tài liệu:
open (“URL” , “WindowName” , “featureList”) ;
Các đặc điểm trong ph-ơng pháp open() gồm có:
• toolbar: tạo một toolbar chuẩn
• location: tạo một vùng location
• directories: tạo các button th-mục chuẩn
• status: tạo thanh trạng thái.
• menubar: tạo thanh menu tại đỉnh của cửa sổ
• scrollbars: tạo thanh scroll bar
• resizable: cho phép user thay đổi kích th-ớc cửa sổ
• width: chỉ định chiều rộng cửa sổ theo đơn vị pixel
• height: chỉ định chiều cao cửa sổ theo đơn vị pixel
Ví dụ 1:
window.open( “plc.htm”, ”newWindow”, ”toolbar=yes, location=1,
directories=yes, status=yes, menubar=1, scroolbar=yes,
resizable=0, copyhistory=1, width=200, height=200”);
Ví dụ 2:
<HTML>
<HEAD>
<TITLE>WINDOWS</TITLE>
<SCRIPT>
<!--
function openWindow(url,name) {
popupWin = window.open(url, name, "scrollbars=yes,width=800,
heigth=200 ");
}
-->
</SCRIPT>
</HEAD>
<BODY>
<a
href="javascript:openWindow('../chuyende/plc.htm','Win')">PLC</a>,
<a
href="javascript:openWindow('../chuyende/suachuaw.htm','stoogeWin
')">Sua chua</a>,
<a
href="javascript:openWindow('../chuyende/tkweb.htm','stoogeWin')">
Thiet ke web</a>
</BODY>
</HTML>
Để đóng cửa sổ ta có thể dùng ph-ơng thức close()
Ví dụ:
<HTML>
<HEAD>
<TITLE>Close Example</TITLE>
</HEAD>
<BODY >
<A>
<IMG
BORDER="0"></A>
<A>Close This
Sample</A>
</BODY >
</HTML>
http://www.ebook.edu.vn 66
3.1.14 Sử dụng đối t-ợng string
String là một đối t-ợng của JavaScript, khi dùng đối t-ợng string chúng ta
không cần các phát biểu để tạo một instance (thể hiện) của đối t-ợng, bất kỳ lúc
nào ta đặt text giữahai dấu ngoặc kép và gán nó đến một biến hoặc một thuộc tính
thì ta đã tạo một đối t-ợng string.
a. Các thuộc tính của đối t-ợng string
Thuộc tính lengthtrả về số ký tự (chiều dài) của string.
b. Các ph-ơng thức (Methods) của đối t-ợng string
• anchor (nameAttribute)
• big()
• blink()
• bold()
• charAt(index)
• fixed()
• fontcolor(color)
• fontsize(size)
• indexOf(character,[fromIndex])
• italics()
• lastIndexOf(character,[fromIndex])
• link(URL)
• small()
• strike()
• sub()
• substring(startIndex,endIndex)
• sup()
• toLowerCase()
• toUpperCase()
3.2 VBScript
VBScript là một công nghệ của Microsoft yêu cầu phải có Microsoft Internet
Explorer. Tr-ớc khi bắt đầu học viết VBScript, chúng ta cần phải biết các khái niệm
cơ bản về: WWW, HTML và các kiến thức căn bản để xây dựng một trang web.
3.2.1 VBScript là gì?
VBScript là một ngôn ngữ kịch bản. Một ngôn ngữ script là một ngôn ngữ
lập trình nhẹ. VBScript là phiên bản nhẹ của ngôn ngữ lập trình Vusual Basic.
Khi VBScript đ-ợc chèn vào trong văn bản HTML, trình duyệt Internet sẽ
đọc văn bản HTML đó và dịch các đoạn mã VBScript. Các đoạn mã này đ-ợc thực
hiện hoặc là ngay lúc đó hoặc trong các sự kiện sau này.
3.2.2 Biến và phạm vi biến
Biến là một vùng chứa thông tin cần l-u trữ. Giá trị của biến có thể đ-ợc thay
đổi trong quá trình lập trình. Ta có thể làm việc với một biến thông qua tên của nó,
cũng nh-có thể thay đổi giá trị của biến đó.Trong VBScript, tất cả các biến đều
có kiểu là variant, và nó có thể l-u trữ bất kỳ dạng dữ liệu nào.
http://www.ebook.edu.vn 67
Quy tắc đặt tên biến: Bắt đầu bằng một chữ cái, không chứa dấu (.) và độ dài
không quá 255 ký tự. Chúng ta có thể khai báo biến với các từ khoá Dim, Public
hoặc Private.
Ví dụ d-ới đây khai báo một biến tên name và gán cho nó một giá trị:
dim name
name = giá trị
Ta cũng có thể khai báo biến bằng cáchsử dụng nó trong script của mình.
Ví dụ:
name = giá trị
Tuy vậy, cách khai báo này không đ-ợc t-ờng minh và không tốt cho ứng
dụng của chúng ta, vì sau đó trong ứng dụng của mình, chúng ta có thể vô tình viết
sai tên biến và có thể nhận đ-ợc kết quả không chính xác khi chạy ch-ơng trình.
Điều đó xảy ra là vì giả sử ta có một tên biến tên “name”, sau đó ta gọi tới biến đó
bằng một tên “nime” chẳng hạn, ch-ơng trình sẽ tự động sinh ra thêm 1 biến tên
“nime”. Để tránh xảy ra điều nhầm lẫn này, chúng ta nên sử dụng câu lệnh Option
Explicit. Khi sử dụng câu lênh này, tất cả các biến đều phải khai báo tr-ớc khi sử
dụng bởi các câu lệnh với từ khoá Dim, Public hoặc Private. Đặt câu lệnh Option
Explicit trên đầu của ch-ơng trình, nh-ví dụ sau:
Option Explicit
dim name
name = giá trị
Cách gán giá trị cho biến:
Ta có thể gán giá trị cho cho một biến nh-sau:
name = “Nguyễn Minh Ph-ợng”
i = 200 là thời gian sống của biến (Khoảng thời gian biến đó tồn tại đ-ợc gọi
là thời gian sống của nó). Khi khai báo một biến trong một thủ tục, biến đó chỉ
đ-ợc truy xuất tới trong phạm vi thủ tục đó. Khi thủ tục đó kết thúc, các biến đó
cũng bị huỷ. Những biến này đ-ợc gọi là biến cục bộ. Chúng ta có thể đặt các biến
cục bộ trùng tên nhau trong các thủ tục khác nhau, bởi vì mỗi biến chỉ đ-ợc nhận
biết bởi chính thủ tục trong đó chúng đ-ợc khai báo.
Nếu khai báo một biến bên ngoài một thủ tục, tất cả các thủ tục nằm trong
cùng trang đó đều có thể truy nhập tới biến đó. Thời gian sống của biến này bắt đầu
từ lúc nó đ-ợc khai báo và kết thúc khi trang web đ-ợc đóng lại.
Biến Array (mảng): Có những khi chúng ta muốn gán nhiều hơn 1 giá trị cho
một biến, khi đó ta khai báo một biến cóthể chứa một dãy dữ liệu. Biến này đ-ợc
gọi là biến mảng (array). Để khai báo một biến là biến array, chúng ta đặt dấu
ngoặc đơn ngay sau tên biến.
Ví dụ sau chúng ta khai báo một biến array gồm có 3 giá trị:
dim names(2)
Giá trị số trong dấu ngoặc là 2. Chỉ sốcủa biến array bắt đầu bởi 0 cho nên
biến này sẽ bao gồm 3 giá trị. Đây là một array có độ dài cố định. Ta gán giá trị
cho từng phần tử của array bằng cách sau:
names(0) = “Nguyễn Thanh Bình”
names(1)=”Nguyễn Minh Ph-ợng”
names(2)=”Hoàng Khánh H-ng”
http://www.ebook.edu.vn 68
T-ơng tự nh-vậy chúng ta có thể lấy giá trị của bất kỳ phần tử nào trong
array mà ta cần bằng cách sử dụng chỉ số t-ơng ứng của phần tử:
eng = names(0)
Chúng ta chỉ có thể khai báo nhiều nhấttới 60 chiều cho một array. Các
chiều đ-ợc khai báo cách nhau bởi dấu phẩy. Ví dụ sau khai báo một array bao
gồm 5 dòng và 7 cột:
dim table(4,6)
3.2.3 Các kiểu dữ liệu
a. Kiểu dữ liệu trong VBScript là gì?
VBScript chỉ có một kiểu dữ liệu tên làvariant. Kiểu variant là một kiểu dữ
liệu đặc biệt có thể chứa các loại thông tin khác nhau phụ thuộc vào cách sử dụng
chúng. Cũng vì nó là kiểu dữ liệu duy nhất trong VBScript cho nên tất cả các hàm
của VBScript đều trả về kiểu dữ liệu này.
Nói một cách đơn giản nhất, một biến variant có thể chứa thông tin là một số
hoặc một xâu. Biến variant này xử sự nh-một số khi nó đ-ợc sử dụng trong ngữ
cảnh số và nh-một xâu khi sử dụng nó trong ngữ cảnh xâu. Điều đó có nghĩa là
nếu ta làm việc với một dữ liệu trông giống kiểu số, VBScript sẽ cho rằng đó là một
số và thực hiện tất cả các công việc phù hợp nhất với một số. T-ơng tự nh-vậy, nếu
ta làm việc với dữ liệu là một xâu, VBScript coi đó là một xâu. Tất nhiên chúng ta
hoàn toàn có thể coi dữ liệu số là một xâu bằng cách đặt số đó trong cặp ngoặc kép
(“”).
b. Kiểu dữ liệu con của Variant – variant subtypes
Ngoài việc đơn giản là phân biệt số vàxâu, một variant có thể phân biệt đ-ợc
thông tin số theo cách khác. Chảng hạn chúng ta có thể có một dữ liệu số đại diện
cho Date/Time. Khi sử dụngnó cùng với một dữ liệu kiểu Date/Time khác thì kết
quả trả về luôn đ-ợc biểu diễn d-ới dạng Date/Time. Tất nhiênta có thể còn có một
loạt các dữ liệu dạng số với kích th-ớc khác nhau từ kiểu Boolean cho tới kiểu
floating – point. Các dạng thông tin khác nhau đó có thể đ-ợc l-u trong biến
variant gọi là các kiểu con (subtype). Phần lớn thời gian, chúng ta chỉ cần gán dữ
liệu của mình vào biến variant và biến này sẽ hoạt động theo cách xử lý dữ liệu
giống nh-chính dữ liệu mà nó chứa.
Bảng d-ới đây mô tả các kiểu dữ liệu con của variant:
Subtype Mô tả
Empty Variant ch-a đ-ợc gán giá trị ban đầu. Có giá trị 0 đối với các
biến kiểu số và xâu rỗng (“”) đối với biến xâu.
Null Variant không chứa dữ liệu
Boolean Có giá trị là True hoặc False
Byte Chứa số nguyên từ 0 tới 255.
Integer Chứa số nguyên từ-32,768 tới 32,767.
Currency -922,337,203,685,477.5808 tới 922,337,203,685,477.5807.
Long Chứa số nguyên từ -2,147,483,648 tới 2,147,483,647.
Single Chứa số single-precision, floating-point từ -1.402823E38 tới
-1.401298E-45 đối với giá trị âm, từ 1.401298E-45 tới
3.402823E38 đối với giá trị d-ơng.
http://www.ebook.edu.vn 69
Double Chứa số double-precision, floating-point -1.79769313486232E308 to -4.94065645841247E-324 đối với
giá trị âm, từ 4.94065645841247E-324 tới
1.79769313486232E308 đối với giá trị d-ơng.
Date (Time) Chứa một giá trị số đại diện cho ngày tính từ January 1, 100 tới
December 31, 9999.
String Chứa một xâu có độ dài bất kỳ dài nhất khoảng 2 tỷ ký tự
Object Chứa một Object
Error Chứa mã số lỗi
Chúng ta có thể dùng các hàm chuyển đổi kiểu dữ liệu để chuyển dữ liệu
giữa các kiểu dữ liệu con với nhau. Thêm vào đó, hàm VarType cho ta biết thông
tin về cách l-u trữ dữ liệu của mình trong biến Variant.
c. Các hàm trong VBScript:
D-ới đây liệt kê các hàm có sẵn trong VBScript. Các hàm này đ-ợc chia ra
thành các loại sau:
• Các hàm về thời gian
• Các hàm chuyển đổi kiểu dữ liệu
• Các hàm định dạng dữ liệu
• Các hàm toán học
• Các hàm về dãy
• Các hàm về xâu
• Các hàm khác
Các hàm về thời gian (Date/Time Functions)
Tên hàm Mô tả
Cdate Chuyển biểu thức có dạng date and time chuẩn sang dạng
Date
Date Trả về ngày giờ hệ thống
DateAdd Trả về ngày đ-ợc cộng thêm một khoảng thời gian
DateDiff Trả về giá trị số là khoảng thời gian giữa hai giá trị ngày.
DatePart Trả về phần xác định của ngày.
Day Trả về ngày hiện tại. Giá trị từ 1 tới 31.
FormatDateTime Trả về biểu thức đã đ-ợc định dạng theo kiểu date or time
Hour Trả về giá trị là một số chỉ giờ hiện hành trong ngày, có
giá trị từ 0 tới 23.
IsDate Trả về giá trị Boolean cho biết biểu thức có thể chuyển
sang dạng ngày tháng hay không.
Minute Trả về giá trị số là phút của giờ (có giá trị từ 0 tới 59)
Month Cho biết tháng hiện hành (Có giá trị từ 1 tới 12)
MonthName Trả về tên tháng
Now Cho biết ngày giờ hiện hành của hệ thống
Second Trả về số đại diện cho giây (Có giá trị từ 0 tới 59)
Time Trả về giờ hệ thống
Timer Trả về giá trị số giây tính từ 12:00 AM
Weekday Trả về số đại diện cho ngày trong tuần (Có giá trị từ 1tới 7)
http://www.ebook.edu.vn 70
WeekdayName Trả về tên ngày trong tuần
Year Trả về năm hiện hành
Các hàm chuyển kiểu dữ liệu (Conversion Functions)
Tên hàm Mô tả
Asc Chuyển ký tự đầu tiên của xâu sang mã ANSI.
CBool Chuyển dữ liệu kiểu variant sang kiểu subtype Boolean
CByte Chuyển dữ liệu từ kiểu variant sang kiểu subtype Byte
CCur Chuyển dữ liệu từ kiểu variant sang kiểu subtype Currency
CDate Chuyển dữ liệu từ biểu thứcdạng date/time sang kiểu subtype
Date/Time
CDbl Chuyển biểu thức từ kiểu variant sang kiểu subtype Double
Chr Chuyển mã ANSI sang ký tự
CInt Chuyển dữ liệu kiểu variant sang kiểu subtype Integer
CLng Chuyển dữ liệu kiểu variant sang kiểu subtype Long
CSng Chuyển dữ liệu kiểu variant sang kiểu subtype Single
CStr Chuyển dữ liệu kiểu variant sang kiểu subtype String
Các hàm định dạng dữ liệu (Format Functions)
Tên hàm Mô tả
FormatCurrency Trả về biểu thức đ-ợc định dạng kiểu nh-currency
FormatDateTime Trả về biểu thức đ-ợc định dạng kiểu date or time
FormatNumber Trả về biểu thức đ-ợc định dạng kiểu số.
FormatPercent Trả về biểu thức đ-ợc định dạng kiểu percentage
Các hàm toán học (Math Functions)
Tên hàm Mô tả
Abs Giá trị tuyệt đối của một số
Atn Trả về cotan của một số
Cos Giá trị cosine của một số (Góc)
Hex Cho giá trị hexadecimal của một số
Int Trả về phần nguyên của một số
Fix Trả về phần nguyên của một số
Log Logarit tự nhiên của một số
Oct Cho giá trị octal của một số
Rnd Cho một số ngẫu nhiên nhỏ hơn 1 và lớn hơn hoặc bằng 0
Sgn Trả về một số đại diện cho dấu của số
Sin Giá trị Sin của một số (Góc)
Sqr Bình ph-ơng của một số
Tan Giá trị Tang của một số (Góc)
Các hàm về array (Array Functions)
Tên hàm Mô tả
Array Trả về một variant chứa một array
IsArray Trả về giá trị Boolean cho biết biến đó có phải là một array hay
không.
Join Trả về một xâu chứa số các xâu con trong dãy
LBound Trả về cận d-ới của chiếu đ-ợc chỉ định của một array
http://www.ebook.edu.vn 71
Split Trả về một array 1 chiều chứa một số l-ợng phần tử đ-ợc chỉ định.
UBound Trả về cận trên của chiều đ-ợc chỉ định của array
Các hàm về xâu (String Functions)
Tên hàm Mô tả
InStr Trả về vị trí đầu tiên mà một xâu xuất hiện trong một xâu khác.
Tìm kiếm đ-ợc bắt đầu từ ký tự đầu tiên của xâu
InStrRev Trả về vị trí đầu tiên mà một xâu xuất hiện trong một xâu khác.
Tìm kiếm đ-ợc bắt đầu từ ký tự cuối cùng của xâu
LCase Chuyển tất cả các ký tự của một xâu thành chữ th-ờng
Left Trả về một xâu có độ dài đ-ợc chỉ định tính từ ký tự đầu tiên
Len Trả về độ dài của xâu
LTrim Xoá các ký tự trắng bên trái của xâu
RTrim Xoá các ký tự trắng bên phải của xâu
Trim Xoá các ký tự trắng ở cả hai phía của xâu
Mid Trả về một xâu có độ dài đ-ợc chỉ định và bắt đầu từ một vị trí
đ-ợc chỉ định của xâu nguồn
Replace Thay một phần của xâu bởimột xâu khác. Số các lần thay đ-ợc
chỉ định tr-ớc.
Right Trả về một xâu có độ dài đ-ợc chỉ định tính từ ký tự cuối cùng
Space Trả về một xâu chỉ gồm toàn dấu cách. Số l-ợng dấu cách đ-ợc
chỉ định
StrComp So sánh hai xâu vàtrả về một giá trị là kết quả của phép so sánh
String Trả về một xâu có đọ dài đ-ợc chỉ định và đ-ợc tạo ra bằng cách
lặp đi lặp lại một ký tự nào đó
StrReverse Trả về một xâu bằng cách quay ng-ợc một xâu có sẵn
UCase Chuyển tất cả các ký tự của 1 xâu thành chữ hoa
Các hàm khác (Other Functions)
Tên hàm Mô tả
CreateObject Tạo một Object có kiểu đ-ợc chỉ định
Eval Đánh giá một biểu thức và trả về một giá trị là kết quả của sự
đánh giá đó
InputBox Hiển thị một hộp thoại cho phép ng-ời sử dụng có thể điền
thông tin vào
IsEmpty Trả về một giá trị Boolean cho biết một biến đã đ-ợc gán giá
trị hay ch-a
IsNull Kiểm tra xem một biến có là Null (Không chứa dữ liệu)
không. Kết quả là một giá trị Boolean
IsNumeric Trả về một giá trị Boolean cho biết biểu thức đó có thể chuyển
thành dạng số không
MsgBox Hiển thị một hộp tin nhắn và chờ ng-ời sử dụng click vào một
nút lệnh, và trả về giá trị cho biết ng-ời sử dụng đã click nào
nút lệnh nào
Round Làm tròn một số
ScriptEngine Trả về tên của script đang dùng
http://www.ebook.edu.vn 72
TypeName Trả về tên kiểu dữ liệu con của biến
VarType Trả về giá trị của kiểu dữ liệu con của biến
d. Các toán tử và biểu thức
VBScript có một tập hợp lớn các loại toán tử, chia ra thành ba loại là các toán
tử số học, các toán tử so sánh và ghép nối (concatenation), và các toán tử logic.
Thứ tự -u tiên của các toán tử
Khi có nhiều toán tử cùng xuất hiện trong một biểu thức, từng phần của biểu
thức đ-ợc đánh giá và xử lý theo một trình tự gọi là thứ tự -u tiên. Ta có thể dùng
dấu ngoặc đơn để thay đổi thứ tự -u tiên và bắt một phần nào đó của biểu thức phải
đ-ợc thực hiện tr-ớc các phần khác. Các biểu thức bên trong dấu ngoặc đơn luôn
đ-ợc xử lý tr-ớc những biểu thức bên ngoài. Tất nhiên, nếu biểu thức trong ngoặc
chứa nhiều toán tử thì chúng cũng phải tuân theo thứ tự -u tiên chuẩn.
Khi các biểu thức chứa nhiều loại toántử khác nhau, các toán tử số học đ-ợc
xử lý tr-ớc, sau đó đến các toán tử so sánh rồi cuối cùng là các toán tử logic. Các
toán tử so sánh tất cả có cùng thứ tự -u tiên, tức là chúng sẽ đ-ợc xủa lý từ trái qua
phải theo thứ tự xuất hiện. Các toán tử số học và logic đ-ợc xử lý theo thứ tự sau:
Số học So sánh Logic
Mô tả Ký hiệu Mô tả Ký hiệu Mô tả Ký hiệu
Mũ hoá ^ So sánh bằng = Phủ nhận logic Not
Phép nhân * So sánh khác
nhau
<> Và And
Phép chia / Nhỏ hơn < Hoặc Or
Chia lấy phần
nguyên
\ Lớn hơn > Loại trừ Xor
Chia lấy số d- Mod Nhỏ hơn hoặc
bằng
<= So sánh bằng Eqv
Phép cộng + Lớn hơn hoặc
bằng >=
Phép trừ - So sánh Object
t-ơng đ-ơng Is
Ghép xâu &
Khi phép nhân và chia cùng xuất hiện trong một biểu thức, chúng đ-ợc xử lý
từ phải qua trái theo thứ tự xuất hiện. T-ơng tự nh-vậy đối với phép cộng và trừ.
Phép ghép xâu không thuộc nhóm toán tử số học nh-ng về thứ tự -u tiên nó
đứng sau các toán tử số học và tr-ớc các toán tử so sánh. Toán tử Is là một toán tử
so sánh việc tham chiếu Object. Nó không dùng để so sánh object hay giá trị của
chúng, nó chỉ cho biết xem hai tham chiếu object (object references) có loại hay
không.
e. Các cấu trúc điều khiển
Khi viết ch-ơng trình, nhiều khi cần thực hiện một hành động nào đó tuỳ
thuộc vào một số điều kiện, ta có thể dùng cấu trúc điều kiển để thực hiện điều này.
Trong VBScript có 3 dạng cấu trúc điều khiển:
Câu lệnh if ... then ... else:Sử dụng câu lệnh này khi cần lựa chọn một trong
điều kiện để thực hiện một trong hai tập hợp lệnh. Dùng câu lệnh này ta có thể:
• Thực hiện một tập hợp lệnh nào đó nếu điều kiên thoả mãn.
if i = 10 then msgbox “Hello”
Nếu muốn thực hiện nhiều hơn một câu lệnh khi điều kiện đ-ợc thoả mãn,
chúng ta cần viết từng câu lệnh trên một dòng lệnh khác nhau và kết thúc bởi từ
khoá “End If”.
if i = 10 then
msgbox “Hello”
i = i + 1
End if
• Lựa chọn một trong hai tập hợp lệnh đểthực hiện: Nếu muốn thực hiện
một tập hợp lệnh nào đó khi điều kiện đ-ợc thoả mãn và thực hiện một
tập hợp lệnh khác nếu điều kiện không thoả mãn, ta dùng nh-sau:
if i = 10 then
msgbox “Hello”
else
msgbox “Goodbye”
End if
Câu lệnh if ... then....elseif:Sử dụng câu lệnh này khi muốn lựa chọn một
trong nhiều tập hợp lệnh để thực hiện.
if then
msgbox "You are going to pay cash!"
elseif then
msgbox "You are going to pay with visa."
elseif then
msgbox "You are going topay with American Express."
else
msgbox "Unknown method of payment."
end If
Câu lệnh Select case:Sử dụng câu lệnh này khi muốn lựa chọn một trong
nhiều tập hợp lệnh để thực hiện.
select case payment
case "Cash"
msgbox "You are going to pay cash"
case "Visa"
msgbox "You are going to pay with visa"
case "AmEx"
msgbox "You are going topay with American Express"
case Else
msgbox "Unknown method of payment"
end select
Câu lệnh này làm việc nh-sau: Đầu tiên chúng ta có một biểu thức, th-ờng
http://www.ebook.edu.vn 74
là một biến, cần đ-ợc đánh giá giá trị. Giá trị của biểu thức này đ-ợc so sánh với
từng giá trị trong cấu trúc Case. Nếu chúng bằng nhau, tập hợp các lệnh t-ơng ứng
với giá trị Case đó đ-ợc thực hiện.
f. Các cấu trúc lặp
Câu lệnh For...Next: Lặp lại việc thực hiện một tập hợp các câu lệnh một số
xác định lần. ta có thể sử dụng một biến đếm tăng dần hoặc giảm dần sau mỗi lần
thực hiện vòng lặp.
Cú pháp:
For i = 1 to 10 step 2
Các lệnh ở đây
Next
Từ khoá step chỉ b-ớc nhảy sau mỗi lần thực hiện các câu lệnh trong vòng
lặp. Nếu dùng vòng lặp giảm dần thì giá trị của step cần đặt là số âm.
Giá trị ngầm định là 1.
Từ khoá Exit For dùng để nhảy ra khỏi vòng lặp.
Vòng lặp với For Each... Next: Vòng lặp này thực hiện một tập hợp lệnh
đối với mỗi phần tử trong tập hợp, hoặc với mỗi phần tử trong một dãy. Câu lệnh
này thực hiện không khác nguyên tắc của vòng For...Next, chỉ khác ở chỗ ta không
cần chỉ ra số l-ợng lần muốn thực hiện vòng lặp.
dim names(2)
names(0)="Tove"
names(1)="Jani"
names(2)="Hege"
For Each x in names
document.write(x & "<br />")
Next
Cấu trúc Do ... Loop:
• Từ khoá While
Cấu trúc này dùng để thực hiện một tập hợp lệnh khi không biết tr-ớc số lần
cần thực hiện. Vòng lặp sẽ thực hiện khi điều kiện While vẫn còn đ-ợc thoã mãn.
Sử dụng từ khoá While để kiểm tra điều kiện trong cấu trúc Do...Loop.
Do While i>10
some code
Loop
Nếu i = 9 thì các câu lệnh trong cấu trúc này không đ-ợc thực hiện lần nào.
Nh-ng nếu thay đổi đoạn mã trên nh-sau:
Do
some code
Loop While i>10
Thì các câu lệnh trong Do...Loop đ-ợc thực hiện ít nhất một lần ngay cả khi
giá trị của i nhỏ hơn 10.
• Từ khoá Until
Lặp lại việc thực hiện các lệnh cho tới khi điều kiện thoả mãn bằng việc sử
http://www.ebook.edu.vn 75
dụng từ khoá Until.
Cú pháp:
Do Until i=10
some code
Loop
Nếu i = 10, các câu lệnh bên trong vòng lặp không đ-ợc thực hiện lần nào.
Do
some code
Loop Until i=10
Các câu lệnh bên trong vòng lặp đ-ợc thực hiện ít nhất một lần trong tr-ờng
hợp ta kiểm tra điều kiện sau.
• Từ khoá Exit Do
Thoát ra khỏi Do...Loop: Dùng lệnh Exit Do để thoát rakhỏi vòng lặp
Do...Loop:
Do Until i=10
i=i-1
If i<10 Then Exit Do
Loop
Các câu lệnh trong vòng lặp đ-ợc thực hiện khi khác 10, và khi i lớn hơn 10.
3.3 Câu hỏi và bài tập ch-ơng 3
3.3.1 Câu hỏi ôn tập
Câu 1: Khái niệm, đặc tính và cách thức nhúng JavaScript vào HTML.
Câu 2: Các kiểu dữ liệu trong JavaScript?
Câu 3: Các sự kiện trong JavaScript?
Câu 4: Khái niệm, cách thức nhúng VBScript vào tài liệu HTML.
Câu 5: Biến, cách thức đặt tên biến và phạm vi biến trong VBScript?
Câu 6: Các kiểu dữ liệu vàcác hàm trong VBScript?
3.3.2 Bài tập lập trình với các ngôn ngữ kịch bản
Bài 1: Tạo 2 nút bấm (OK và Cancel), thủ tục xử lý sự kiện khi nhấn nút OK
đ-ợc viết bằng VBScript và hàm sử lý sự kiện khi nhấn nút Cancel đ-ợc viết bằng
JavaScript.
Bài 2: Sử dụng JavaScript và VBScript lần l-ợt viết ch-ơng trình kiểm tra
tính hợp lệ của dữ liệu nhập từ form. Nếu thiếu thì thông báo cho ng-ời dùng biết,
ng-ợc lại thì thông báo “thông tin đac nhập đầy đủ”
Bài 3: Thiết kế form nhập liệu bao gồm các textbox: Họ, tên, quốc tịch
(listbox), điện thoại, địa chỉ, giới tính (radiobox), ngày tháng năm sinh (ngày,
tháng là listbox), nghề nghiệp (listbox),tên đăng nhập, mật khẩu, nhập lại mật
khẩu. Khi nhấn nút “Chấp nhận” thì kiểm tra tính đầy đủ và hợp lệ của dữ liệu, Nếu
nhấn “Từ chối” thì reset lại tất cả các hộp nhập dữ liệu. Thực hiện bằng cả
VBScript và JavaScript.
Bài 4: Thiết kế một form mô phỏng trang web đăng ký mail của Yahoo, sau
khi nhấn Submit thì kiểm tra tính hợp lệ vàđầy đủ của dữ liệu. Sử dụng cả VBScript
và JavaScript để kiểm tra.
http://www.ebook.edu.vn 76
Ch-ơng 4
Lập trình Web động với công nghệ ASP
4.1 Một số khái niệm cơ bản về ASP
4.1.1 Khái niệm Web động
Nh-đã biết ngôn ngữ đánh dấu siêu văn bản HTML là công cụ mô tả trang
Web trên Internet. Khi trình duyệt yêu cầu một trang HTML, Web Server nhận yêu
cầu và gửi trả lại file HTML đ-ợc yêu cầu. Trình duyệt sẽ trình diễn trang HTML
nhận đ-ợc.
Nói chung các trang HTML là tĩnh về mặt nội dung. Mặc dù trình duyệt có
thể xử lý các ngôn ngữ kịch bản nh-VBScript hay Jscript nếu nh-ng-ời ta cài đặt
các máy ảo tại client để tạo ra một hiệu quả động nào đó với các t-ơng tác hai
chiều. Tuy nhiên t-ơng tác này rất hạn chế nếu nh-dữ liệu cần sử dụng đặt tại
server chứ không phải tại client.
Trên thực tế có nhu cầu tra cứu thông tin theo yêu cầu. Ví dụ một siêu thị
điện tử, giới thiệu các mặt hàng trên trang Web, và thông tin về các mặt hàng đều
đ-ợc đ-a lên đầy đủ. Nếu trang Web này là tĩnh đ-ợc chuẩn bị tr-ớc thì ta không
thể lọc ra những thông tin mà mình cần đ-ợc mà phải duyệt cho tới khi gặp đ-ợc
mặt hàng mà mình quan tâm, nghĩa là phải đợi để thông tin đ-ợc chuyển về đầy đủ.
Vậy nhu cầu về một trang Web có thông tin đ-ợc chọn lọc theo yêu cầu từ Browse
ra đời. Các trang Web này đ-ợc gọi là trang Web động. Nói một cách đơn giản là
các trang Web động là các trang Web không tồn tại sẵn mà chỉ đ-ợc tạo ra theo
yêu cầu của ng-ời tra cứu. Trong tr-ờng hợp này CSDL Web không phải là tất cả
mà còn các CSDL kiểu khác giúp tạo nên các trang Web. Chính vì thế cần đ-a vào
các trang HTML khả năng tạo Web động d-ới dạng các dòng lệnh.
Microsoft quản lý các trang Web bởi IIS (Internet Information Server) trên
WebServer. Nh-ng IIS không tự tính toán đ-ợc các dòng lệnh ở phía Server để tạo
các trang Web động nên cần có thêm các thành phần khác.
Hiện nay có một số môi tr-ờng để tạo các trang Web động, có thể kể đến
nh-: lập trình trên CGI, ASP, PHP, Java, JSP….
4.1.2 ASP là gì?
ASP (Active Server Page) là một thành phần mở rộng của IIS. Khi cài đặt,
ASP sinh ra các bộ xử lý ảo đối với ngôn ngữ kịch bản (script engine) tại server để
IIS có thể xử lý các mã script mà các mã này có thể viết đan xen trong các trang
HTML. Khi Client gọi đến một file .asp trên Web Server, Web Server lập tức gọi
đến Script engine để xử lý. Script engine sẽ thực hiện các lệnh script để biến trang
ASP thành trang HTML rồi gửi lại Client. Chú ý rằng quá trình này thực hiện tại
server chứ không phải tại Client. Vì vậy chúng ta không phải quan tâm tới việc
browser xử lý các trang Web nh-thế nào. Nh-vậy thực sự quá trình này đ-ợc thực
hiện theo mô hình Client-Server.
ASP là công nghệ Web Server mới của Microsoft, nó đ-ợc thiết kế để giúp
ng-ời phát triển ứng dụng trên Web xây dựng các trang Web ứng dụng nhanh
chóng và dễ dàng. ASP là một phần tích hợp của công nghệ cơ sở Active (Active
Platform), là hạt nhân trong chiến l-ợc internet của Microsoft. Active Platform là
một tập hợp các ngôn ngữ, các chuẩn và các dịch vụ có thể đ-ợc sử dụng để phát
http://www.ebook.edu.vn 77
triển cả ứng dụng Active Desktop(bản Client) và Active Server (bản Server) trong
mô hình CSDL tính toán Client / Server. Mô hình Active Platform giúp cho ng-ời
phát triển ứng dụng xây dựng ứng dụng hiệu quả về giá thành, mở rộng khả năng
cảu các ứng dụng chạy trên Server cũng nh-chạy trên Client và nâng cao kỹ năng
phát triển ứng dụng của họ. Đồng thời, nó cũng làm việc chuyển đổi từ ứng dụng
Desktop sang ứng dụng Client/Server đầy đủ, dễ dàng.
4.1.3 Scripting?
Scripting là một đoạn ch-ơng trình mà chúng ta chènvào các trang HTML
để tạo tính “động” cho nó. Scripting dùng ngôn ngữ, cú pháp và cách thực hiện
riêng. Tuy nhiên, có một vấn đề nảy sinhở đây: Mỗi một hãng cung cấp lại định
nghĩa một ngôn ngữ script khác nhau. Microsoft phát triển Visual Basic Script
(VBScript), Sun Microsystem và Nescape pháttriển JavaScript (JScript) và một số
hãng khác hỗ trợ những ngôn ngữ nh-: Perl, Python, Awk ... .
a. Scripting trên Client:
Scripting trên Client có thể đ-ợc chèn vào trang HTML bằng cặp tags
<Script> ... </Script>.
Để xác định ngôn ngữ Script ta dùng thuộc tính LANGUAGE.
Ví dụ sau sẽ minh họa sựkiện xảy ra khi ng-ời dùng nhấn vào một nút. Chức
năng của nó đ-ợc chỉ ra bằng thuộc tính ONCLICK. Scripting trên Client có thể
làm việc trên bất kì máy chủ nào hỗ trợ ngôn ngữ của scripting .
Ví dụ: Dùng Scripting trên Client.
<HTML>
<HEAD>
<TITLE> Scripting </TITLE>
<SCRIPT LANGUAGE=”VBSCRIPT”>
sub vbs()
alert(“This is VBScript”)
end sub
</SCRIPT>
<SCRIPT LANGUAGE=”JAVASCRIPT”>
function js(){
alert(“This is JavaScript”)
}
</SCRIPT>
</HEAD>
<BODY>
Select button:
<INPUT TYPE=“button” NAME=“vbs” VALUE=“VBScript”
ONCLICK=“vbs()”>
<INPUT TYPE= “button” NAME= “js”VALUE= “JavaScript” ONCLICK=
“js()”>
</BODY>
</HTML>
http://www.ebook.edu.vn 78
Nhấn vào một nút, ch-ơng trình phù hợp sẽ đ-ợc chạy :
Hình 4.1 Hoạt động của VBScript và JavaScript
b. Scripting trên Server:
ASP sử dụng Scripting trên Server để tự động tạo ra những trang trả lời . Nội
dung sinh ra dựa trên những thông số của User đ-ợc gửi tới cùng yêu cầu và sự t--ơng tác giữa các đối t-ợng khác nhau . Ngoài ra chúng ta còn có thể sử dụng một
số Object và Component do ASP cung cấp. Các Object làm đơn giản hoá một số
công việc trên Server.
Scripting trên Server đ-ợc chèn vào một file ASP bằng cách sử dụng cặp tags
<SCRIPT> ... </SCRIPT> hoặc <% và %> . Để phân biệt Scripting đ-ợc viết trên
Client hay trên Server ta sử dụng thuộc tính RUNAT =“SERVER” .
Đối với hầu hết các browser thì ngôn ngữScript mặc định làJavaScript. Bởi
vậy, nếu chúng ta viết các mã lệnh bằng VBScript thì chúng ta phải khai báo với
browse trớc khi sử dụng :
<SCRIPT LANGUAGE= “VBSCRIPT”>
Ng-ợc lại với browser, ngôn ngữ script mặc định của ASP là VBScript. Nếu
chúng ta dùng JavaScript thì khai báo lại nh sau (chú ý thuộc tính RUNAT):
<SCRIPT LANGUAGE=“JCRIPT” RUNAT=“SERVER”>
Tùy theo khả năng và sở thích, chúng ta có thể sử dụng một trong hai ngôn
ngữ trên để lập trình. Tuy nhiên, có một chú ý quan trọng là hiện nay, JScript
(ECMA Script) là ngôn ngữ Scripting chuẩn đ-ợc Hiệp hội sản xuất máy tính Châu
Âu (European Computer Manufactury Association) công nhận.
4.1.4 Tạo và xem một file ASP
Chúng ta sử dụng những công cụ của Microsoft nh-: Microsoft Frontpage,
Microsoft’s Visual InterDevđể tạo một file ASP .
Để xem một file ASP, chúng takhông thể gửi nó đến Browser nh-một trang
http://www.ebook.edu.vn 79
HTML bởi vì Browser không nhận biết đ-ợc các file ASP. Lý do là các file này cần
phải đ-ợc thông dịch trên Server tr-óc khi gửi ra Browser.
Chúng ta có thể sử dụng IE hoặc Nescape Navigator để xem kết quả của các
file ASP nh-ng chúng ta cần chắc chắn rằng Servermà chúng ta xử lý các mã có
cài đặt ASP và đang chạy IIS hoặc Personal Web Server (PWS).
Trang ASP là một dạng text có kiểulà .asp, có cấu trúc gần giống nh-file
HTML. Tất cả các thẻ có trong HTML thì đều dùng đ-ợc trong ASP. Nh-ng ngoài
các thẻ thông th-ờng của HTML, trong file asp còn có thể viết các thẻ khác nữa để
thể hiện các dòng lệnh của Script để làm việc với dữ liệu có sẵn hay có thể tính
toán ngay bên trong nh-là một ngôn ngữ lập trình thực sự.
Cơ chế hoạt động của ASP nh-sau:
Client sử dụng một Web Browser gửi yêu cầu HTTP tới một Server chạy
Microsoft Internet Information Server (IIS). Sau khi nhận biết đó làyêu cầu cần xử
lý của trang ASP, IIS chuyển yêu cầu này tới ASP engine, tại đây nội dung file .asp
đ-ợc xử lý, các mã HTML đ-ợc để nguyên còn các Script đ-ợc tính dựa theo các
yêu cầu và đ-ợc chuyển đổi thành các mã HTML. Nếu trong các Script có các câu
lệnh gọi dữ liệu, nó sẽ liên kết tới Database Server và lấy các dữ liệu theo yêu cầu.
Sau đó, các kết quả của việc thực hiện các Script (có thể là HTML tĩnh hoặc động)
đ-ợc gửi trả lại Client Browser.
Xét một ví dụ để làm rõ cơ chế này:
<HTML>
<HEAD>
<TITLE>Example</TITLE>
</HEAD>
<BODY>
<% For i=5 to 7%>
<FONT SIZE=<%=i%>>Chào bạn!<BR></FONT>
<% Next %>
</BODY>
</HTML>
Kết quả là trình duyệt sẽ hiển thị 3 dòng Chào bạn! với kích th-ớc tăng dần
nh-sau
Chào bạn!
Chào bạn!
Chào bạn!
Trong ví dụ này chúng ta mới đề cập đến nguyên lý làm việc của ASP mà
ch-a nói đến cơ chế tạo Web động tức là cách tạo các trang Web thay đổi theo
thông tin t-ơng tác mà ng-ời sử dụng cung cấp. Trong ví dụ ta sẽ làm việc nh-sau:
Tạo một trang Web có một form để ng-ời sử dụng nhập vào họ, tên và giới
tính qua Textbox và option. Ng-ời sử dụng cũng đánh vào một số tự nhiên. Khi
nhận đ-ợc, ASP sẽ gửi lại một trang Web với một lời chào phù hợp với giới tính và
tên ng-ời đã đ-ợc cung cấp đồng thời cho ra tất cả các -ớc số của số này.
Sau đây là đoạn mã của hai trang ASP thực hiện hiệu ứng này. Có một số câu
lệnh script có thể còn lạ nh-ng ý nghĩa hoàn toàn rõ ràng.
http://www.ebook.edu.vn 80
<HTML>
<HEAD>
<TITLE>Example</TITLE>
</HEAD>
<BODY>
<P>Vi du ve form de trao doi thong tin theo phuong thuc POST</P>
<FORM>
<P> Ho dem: <input type ="text" size=20></P>
<P>Ten:<input type ="text" size=20></P>
<P> Gioi tinh: Nam <input checked
name="Gioitinh" size=20>
Nu <input type ="radio" value ="Nu" size=20></P>
<P>Cho so n <input type ="Text" size=8></P>
<P><input value ="Gui di">
<input></P>
</FORM>
</BODY>
</HTML>
Hình 4.2 Form sử dụng ASP
Đây là nội dung tệp Chao.asp mô tảứng xử khi ta bấm nút Gửi đi t-ơng ứng
với hoạt động Submit của Form
<HTML>
<HEAD>
<TITLE>Example</TITLE>
http://www.ebook.edu.vn 81
</HEAD>
<BODY>
<% ho=request.Form("hodem")
ten=request.Form("ten")
so=request.Form("so")
gioitinh=request.form("gioitinh")
if then
gioitinh="Ong"
else
gioitinh="Ba"
end if
response.Write "Xin chao " & gioitinh & " " & ho &" " & ten &" <br>"
response.Write "Day la ket qua tinh " & "<br>"
for i=1 to so-1
if so mod i =0 then
response.Write i & "<br>"
end if
next
%>
</BODY>
</HTML>
4.1.5 Server-side Includes:
Server-side Includes (SSI) là một thuật ngữ đ-ợc sử dụng để mô tả cách thức
các yếu tố khác nhau đ-ợc chèn vào trang Web
a. Gắn những file text vào một trang với #include:
Chúng ta có thể gắn file text GetLastDay.txt (vốn là một file ASP, đ-ợc save
với tên trên, có function có chức năng lấy lại ngày cuối cùng trong một tháng) vào
một trang Web bằng cách thêm câu lệnh trên vào trang và gọi chức năng:
<!-- #include file=”GetLastDay.txt” -->
...
intLastDayAugust = GetLastDay(datAugust) ‘ chức năng chúng ta gắn vào
...
Nếu muốn gắn Script từ các file khác, file này phải chứa những phần Script
hoàn chỉnh . Nói một cách khác, nó phảicó đủ những tag <SCRIPT> ... </SCRIPT>
hoặc <% ... %>.
b. Địa chỉ vật lý, địa chỉ ảo của file:
#include cho phép chúng ta chỉ đến một file bằng đờng dẫn vật lý hoặc đờng
dẫn ảo.Ví dụ file Mytext.txt nằm trong th mục c:\TextFile và cũng có bí danh
(alias) là /Text, ta có thể thamkhảo tới nó bằng những cách sau:
<!-- #include file=”C:\TextFile\MyFile.txt” --> ‘ đ-ờng dẫn vật lý
<!-- #include file=”/Text/MyFile.txt” --> ‘ đ-ờng dẫn ảo
http://www.ebook.edu.vn 82
4.2 Ưu điểm của việc sử dụng ASP tạo Web động
4.2.1 Đơn giản, dễ học và hiệu quả:
Học và phát triển ASP là rất dễ dàng. Ta có thể sử dụng ASP để xây dựng
một Web site có khả năng t-ơng tác cao. Vì các ngôn ngữ kịch bản nh-VBScript,
Jscript đ-ợc tích hợp trong ASP nên rất tiện cho ng-ời phát triển đã biết ngôn ngữ
VB, Java hay C++, còn đối với ng-ời ch-a biết thì việc học nó cũng dễ dàng.
Các ứng dụng ASP không cần có trình biên dịch. Trong một vài công nghệ
khác nh-CGI, để phát triển các trang Web động cần phải có một trình biên dịch để
dịch thành một ch-ơng trình có thể chạy đ-ợc sử dụng các môi tr-ờng phát triển
ứng dụng truyền thống nh-Visual C++. Sau khi ứng dụng đ-ợc dịch, nó sẽ đ-ợc
copy vào th-mục CGI của Web Server. Chỉ cần có một chút sửa đổi ch-ơng trình
thì ta phải dịch lại mã nguồn của ch-ơng trình và sau đó lại phải copy đè lên phiên
bản tr-ớc của file chạy. ASP giải quyết vấn đềnày bằng cách cung cấp các cách tạo
lập trang Web một cách trực tiếp và dễ dàn hơn theo kiểu thông dịch(interpreter).
Sau khi xây dựng xong một ứng dụng Web bằng ASP, takhông cần phải dịch
chùng mà chỉ cần l-u giữ vào một file có kiểu là .aspvà các ASP sẽ xử lý khi file
này đ-ợc gọi đến.
Ngoài các thành phần ASP sẵn có giúp chúng ta xây dựng rất nhiều ứng dụng
động khác, ASP cũng cho phép ta tự tạo racác thành phần ASP của riêng mình.
4.2.2 Bảo mật đ-ợc mã:
Một điểm bất lợi trong việc sử dụng ngôn ngữ kịch bản Client là phơi bày tất
cả các thông tin và thuật giải của bài toán. Nếu một bài toán sử dụng ngôn ngữ kịch
bản tại Client nh-VBSCript thì bất kỳ ai nhìn vào mã nguồn của trang Web đều có
thể thấy đ-ợc thuật toán của nó.
Với ASP tất cả các Script đ-ợc thực hiện trên Servervà chỉ có kết quả ra d-ới
dạng HTML đ-ợc gửi về Browser nên nếu ng-ời dùng muốn xem mã nguồn của
trang Web thì họ chỉ xem đ-ợc mã HTML chứ không xem đ-ợc mã Script đã tạo
nên trang Web đó. Nh-vậy nếu sử dụng ASP thì NSD không thể biết đ-ợc thuật
toán của nhà phát triển vì các mã ASP đ-ợc thực hiện trên Server. ASP bảo vệ sự sở
hữu về thông tin và thuật toán.
4.2.3 Bảo trì dễ dàng:
Môi tr-ờng phát triển ASP giúp nâng cao hiệu quả sử dụng của các thiết bị
sẵn có. Môi tr-ờng phát triển ASP giúp cho ng-ời phát triển sử dụng một cách dễ
dàng và có hiệu quả các kỹ năng sẵn có. ASP cung cấp một cơ cấu thiết lập các
trang Web phức tạp sử dụng ngôn ngữ kịch bản quen thuộc nh-VBScript,
Jscript/JavaScript hay Perl.
Đối với nhiều phần mềm Client/Server khác, ngoài phần đ-ợc viết trên
Server, còn cần phần viết trên Client. Nh-vậy độ phức tập và tốn kém về mặt lập
trình sẽ tăng lên. Khi viết bằng ASP thì chỉ cần có trình duyệt Web tại máy Client,
sau đó nối đến máy chủ, nh-thế việc trên Client không còn gì phả quan tâm. Mỗi
khi cần sửa chữa hoặc nâng cấp không cần phải làm gì với bản Client.
Thông qua các câu lệnh Script, ta có thể kết nối đến với một CSDL tại một
Database Server. Để làm việc trên CSDL này, ta có thể nhúng ngôn ngữ truy vấn
SQL. Thông qua đó việc lọc dữ liệu đơn giản, công việc lọc dữ liệu đ-ợc tiến hành
trên Server nên tránh đ-ợc ách tắc đ-ờng truyền.
http://www.ebook.edu.vn 83
4.3 Cài đặt IIS và tạo th-mục ảo cho ứng dụng
4.3.1 1. Cài đặt IIS
Internet Information Services mặc định không đ-ợc cài đặt trên hệ điều hành
Windows XP Professional. Ta có thể gỡ bỏ hoặc thêm các components bằng việc sử
dụng ch-ơng trình ứng dụng Add/Remove Programs trong tiện ích Control Panel.
Các b-ớc cài đặt tuần tự nh-sau:
• Click Start, click Control Panel, và double-click Add/Remove
Programs.
• Trong cột bên trái của hộp thoại Add/Remove Programsdialog box,
click Add/Remove Windows Components.
• Khi cửa sổ Windows ComponentsWizard xuất hiện, click Next.
• Trong danh sách các thành phần của Windows( Windows Components),
chọn IIS.
• Click Next, và làm theo các chỉ dẫn của Wizard.
4.3.2 Tạo th-mục ảo:
Chúng ta có thể tạo các th-mục ảo bên d-ới ứng dụng Default Web site.
Thông th-ờng một ứng dụng Web đ-ợc đặt trong một th-mục ảo và đ-ợc tham
chiếu đến thông qua địa chỉ URL.
Chọn Internet Information Service:
Hình 4.3 Tạo th-mục ảo trong IIS
Nhấn chuột phải vào Default Web Site, chọn New/Vitual Directory, cửa sổ
trợ giúp Wizard sẽ hiện ra nh-sau:
http://www.ebook.edu.vn 84
Hình 4.4 Nhập bí danh (Alias) cho the mục ảo
Trong ô nhập liệu Alias, nhập vào tên bí danh cho th-mục ảo, chẳng hạn
example. Kích vào nút Next để đến b-ớc kế tiếp.
Hình 4.5 Chọn đ-ờng dẫn vật lý cho th-mục ảo
Sau khi chọn đ-ờng dẫn vật lý cho th-mục ảo, ta tiến hành thiết lập quyền
truy cập cho th-mục ảo. Hai quyền Read và Run Script là cần thiết để trang ASP
có thể truy xuất đ-ợc, ngoài ra ta có thể thiết lập các quyền khác cho ng-ời quản trị
site (Administrator).
http://www.ebook.edu.vn 85
Hình 4.6 Thiết lập quyền truy cập cho th-mục ảo.
4.4 Cấu trúc và các dòng lệnh cơ bản của ASP
4.4.1 Các thành phần đ-ợc dùng trong trang ASP
File ASP là một file d-ới dạng Text, ta có thể sử dụng bất cứ trình soạn thảo
văn bản d-ới dạng text only để soạn thảo ra file ASP. File ASP có phần mở rộng là
.asp . Trong file ASP có thể có:
• Các mã HTML.
• Các ký hiệu phấn cách Script.
• Các mã Script.
• Các thànhh phần ActiveX.
• Các đối t-ợng ASP.
Điểm khác biệt cơ bản giữa file ASP với file HTML là sự có mặt các dấu
phân chách các mã Script với các mã HTML. Trong file ASP nếu ta viết h-ớng dẫn
<%<lệnh>%> thì ASP hiểu rằng lệnh bên trong hai dấu <% và %> là một lệnh
Script. Nh-đã nói ở trên, các lệnh Script có thể là VBScript hay Jscript.
4.4.2 Biến trong ASP
Biến đ-ợc cho bằng một tên gọi nào đó (quy cách giống nh-biến dùng trong
Visual Basic) – có thể tra cứu các tài liệu của VB để biết thêm nguyên tắc đặt tên
biến. Khi sử dụng biến trong Script, ta không cần phải khai báo tr-ớc mà có thể sử
dụng trực tiếp. Các biến trong ASP không có kiểu, kiểu của nó sẽ đ-ợc xác định
một cách tự động khi có lệnh gán giá trị vào biến. Nếu có khai báo biến thì cú pháp
nh-sau: Dim tên_biến
4.4.3 Các lệnh cơ bản của ASP
a. Lệnh gán:
Cú pháp: <%<biến>=[giá trị]%>
Lệnh này sẽ nạp giá trị vào biến
b. Lệnh đ-a ra màn hình giá trị của biến:
Cú pháp: <%=<biến>%>
Khi xử lý lệnh này, ASP chuyển đoạn mã ngữ trên thành một văn bản với nội
dung chính là lệnh gán giá trị của biến. Khi trình duyệt xử lý nó sẽ hiển thị giá trị
này ra màn hình.
c. Các cấu trúc điều khiển:
Câu lệnh If-then-else – end if
<% if <điều kiện> then <các câu lệnh> [else <các câu lệnh khác>]%>
Ví dụ kiểm tra thời gian để hiển thị câu “Bây giờ là buổi sáng” hay “Bây giờ
là buổi chiều”
<% if time<=#12:00:00 AM# then
x=“Bây giờ là buổi sáng”
else
x=“Bây giờ là buổi chiều”
end if
%>
<%=x%>
Cấu trúc lựa chọn Select Case
Cú pháp:
Select case biến
Case <tậpgiátrị1>
<dãy câu lệnh 1>
Case <tậpgiátrị2>
<dãy câu lệnh 2>
…….
Case <tậpgiátrị n>
<dãy câu lệnh n>
Case else
<dãy câu lệnh n+1>
end select
Ví dụ:
<%
bien=5
select case bien
case 1,2,3
Response.Write ("chon 1")
case 2,3,4
Response.Write "chon 2"
case else
Response.write "chon 3"
end select
%>
=> Kết quả: Chon 3
4.4.4 Vòng lặp For:
Cú pháp:
<%For <biến đếm>=<giá trị đầu> to <giá trị cuối>%>
[Các lệnh khác]
<%Next [biến đếm]%>
Ví dụ:
<%for i=5 to 7 %>
<font size =<%=i%>>Chào bạn!<br></font>
<% Next %>
4.4.5 Câu lệnh lặp không xác định:
Cú pháp:
while <điều kiện>
<thực hiện công việc>
Wend
Do while <điều kiện>
Loop
Do
<công việc>
Loop While <điều kiện>
Ví dụ:
<%
i=1
do
i=i+1
Response.Write i
loop while i<=10
%>
4.5 Xây dựng các hàm và thủ tục trong ASP:
Ta có thể sử dụng các ngôn ngữ Script để xây dựng các hàm và thủ tục trong
file ASP. Tr-ớc khi viết một hàm và thủ tục bằng ngôn ngữ gì ta phải thông báo
cho ASP biết bằng thẻ Script nh-đã biết.
Cấu trúc một hàm trong ASP có dạng sau:
<SCRIPT RUNAT =SERVER LANGUAGE=”LANGUAGENAME”>
‘Hàm:
Function <FunctionName> (Biến)
http://www.ebook.edu.vn 88
Các dòng lệnh Script
End Function
‘Thủ tục:
Sub <SubName> (Biến)
Các dòng lệnh Script
End Sub
</SCRIPT>
Đối với hàm thì trong thân của hàm cần có một lệnh gán giá trị tính đ-ợc cho
một biến có thên trùng với tên hàm.
Cách gọi hàm hoàn toàn t-ơng tự nh-cách lấy giá trị từ một biến.
Cách gọi thủ tục: Call SubName hoặc SubName
Ví dụ ta có hàm sau:
<%Function Calculate(A, B, Op)
Select Case Op
Case “+”
Calculate = A+B
Case “-”
Calculate = A-B
Case “*”
Calculate = A*B
Case “/”
Calculate = A/B
End Select
End Function
Response.write Calculate(2, 3, “+”)
Response.write Calculate(2, 3, “-)
%>
Chú ý: Có thể sử dụng <!--#include file|virtual=”file_name”--> để sử dụng
lại các hàm và thủ tục đã đ-ợc xây dựng trong một file nào đó.
4.6 Sử dụng các đối t-ợng của ASP để trao đổi thông tin giữa Client và Server.
4.6.1 Giới thiệu các đối t-ợng chính của ASP:
a. Các đối t-ợng chính:
T-ơng tự nh-trong các ngôn ngữ lập trình h-ớng đối t-ợng, ASP cho phép
ng-ời lập trình tạo ra các đối t-ợng, các lớp theo mục đíchsử dụng riêng. ASP cũng
cung cấp sẵn có một số đối t-ợng hay đ-ợc sử dụng. Đó là 5 đối t-ợng sau:
Các đối t-ợng ýnghĩa
Application Chia sẻ thông tin giữa các ng-ời dùng trong một ứng dụng
Session L-u giữ các thông tin duy nhất vềphiên làm việc hiện thời
của một ng-ời sử dụng cụ thể
Server Cho phép truy cập tới máy chủ
http://www.ebook.edu.vn 89
Request Lấy thông tin từ phía ng-ời dùng
Response Gửi thông tin tới ng-ời dùng
Mỗi đối t-ợng đều có các ph-ơng thức đi kèm. Cú pháp chung để gửi thông
điệp cho các đối t-ợng hoàn toàn bình th-ờng:
Object.Method parameters.
ởđây parameters có thể là biến, dữ liệu, chuỗi hoặc URL tuỳ thuộc vào
ph-ơng thức Method.
Ngoài ra còn có đối t-ợng ObjectContext: để chấp nhận hoặc từ chối một
giao tác. Đối t-ợng này đ-ợc quản lý bởi MTS và có thể đ-ợc khởi x-ớng nhờ một
câu lệnh script chứa trong một trang ASP. Khi một trang ASP chứa
@TRANSACTION thì trang đó sẽ đ-ợc chạy trong giao tác đó và chỉ kết thúc khi
giao tác đó đã thành công hoặc thất bại. Và đối t-ợng ASPError chứa thông tin về
lỗi xuất hiện trong mã lệnh trong trang ASP.
b. File Global.asa
Là nơi khai báo các đối t-ợng, biến có phạm vi phiên làm việc hay toàn bộ
ứng dụng. File Global đ-ợc kích hoạt mỗi khi một phiên làm việc mới đ-ợc thiết
lập, tuy nhiên sự kiện Application_OnStart chỉ đ-ợc kích hoạt một lần khi
Webserver đ-ợc khởi động. Mỗi một ứng dụng chỉ có thể có duy nhất một file
Global.asa.
Các sự kiện của các đối t-ợng Application và Session đ-ợc khai báo trong
file Global.asa.
Cú pháp:
<Script Language=VBScipt RUNAT=Server>
Application_OnStart
End Sub
Application_OnEnd
End Sub
Session_OnStart
End Sub
Session_OnEnd
End Sub
</Script>
Ngoài ra ta có thể viết các hàm và thủ tục đặt trong file Global.asa để phục
vụ cho cả ứng dụng hay cho từng phiên làm việccụ thể, các thủ tục và các hàm này
phải nằm trong các sự kiện của hai đối t-ợng Application và Session.
4.6.2 Đối t-ợng Request
a. ýnghĩa:
Lấy yêu cầu từ máy khách nhờ ph-ơng thức HTTP . Là kiểu đối t-ợng quan
trọng nhất trong ASP. Thông qua việc sử dụng đối t-ợng Request ta có thể lấy
đ-ợc cả dữ liệu và tham số trong một trang HTML đ-ợc gửi qua đ-ờng địa chỉ.
Khi một Browser liên lạc với Server thông qua giao thức HTTP, Browser gửi
yêu cầu tới Server, ngoài tên của trang đ-ợc yêu cầu thì còn rất nhiều thông tin
http://www.ebook.edu.vn 90
khác đi kèm đ-ợc gửi tới Server. Các thông tin này có thể là các biến môi tr-ờng,
các thông tin do user cung cấp d-ới dạng điền vào các bảng,Cookies, ... Tất cả các
thông tin này đ-ợc mã hoá và truyền đi cùng với HTTP headers. ASP cho phép lấy
ra các thông tin này bằng cách sử dụng đối t-ợng Request.
b. Các thành phần của Request:
Tập hợp Thuộc tính Ph-ơng thức
QueryString
Form
ServerVariables
Cookies
ClientCertificate
TotalBytes BinaryRead
Cú pháp:
Request.[Tập hợp](Biến)|thuộc tính|ph-ơng thức
Tập hợp:
Tập hợp ýnghĩa
ClientCertificate Bao gồm các thông tin về certificate của Client.
Cookies Đọc thông tin từ một Cookies đã có sẵn
Form Giá trị các thành phần của form gửi đến từ Browser (Lấy
thông tin do user gửi đến bằng ph-ơng thức POST)
QueryString Lấy giá trị của các biến theo sau một URL (Lấy thông tin
do user gửi đến bằng ph-ơng thức GET)
ServerVariables Bao gồm các thông tin vềClient Browser, Server và user
c. Tập hợp Form và QueryString:
Khi chúng ta sử dụng thẻ <FORM> trong một trang, ta có thể đặt thuộc tính
METHOD của <FORM> là POST hay GET.Nếu chúng ta sử dụng GET (hay bỏ
qua vì GET là giá trị mặc định của METHOD), trình duyệt sẽ lấy các giá trị trong
tất cả các control để xây dựng thành QueryString và gắn vào URL của trnag đ-ợc
yêu cầu khi Submit trang hiện tại. Khi trang này đến Server các giá trị của nó nằm
ở Collection Request.QueryString.
Ng-ợc lại, nếu sử dụng ph-ơng thức POST, trình duyệt sẽ đ-a tất cả các giá
trị vào trong HTTP header gửi đến Server và các giá trị này có thể truy xuất qua
Collection Request.Form
Nói chung, ta nên sử dụng ph-ơng thức Post trong tất cả các form HTML.
Thứ nhất, chiều dài chuỗi của URL bị giới hạn nên nếu dùng QueryString sẽ có
nguy cơ bị tràn và bị cắt bớt. Thứ hai, query string đ-a các giá trị t-ờng minh vào
URL, và sẽ đ-ợc ghi lại trong file log khi điqua các Server, không bảo mật thông
tin.
Sự khác nhau giữa hai ph-ơng thức gửi dữ liệu từClient đến Server đ-ợc chỉ
ra trong sơ đồ sau:
http://www.ebook.edu.vn 91
Hình 4.7 Sự khác nhau giữa hai ph-ơng thức GET và POST.
Ví dụ sử dụng ph-ơng thức Post để gửi dữ liệu:
Nội dung file1.htm
<HTML>
<HEAD>
</HEAD>
<BODY>
<form action=“file2.asp">
Name:<input>
<br>Company:<input>
<br>Position:<input>
<br>Address:<textarea></textarea>
<br>Phone:<input>
<br><input>
</form>
</BODY>
</HTML>
Nội dung file2.asp
<HTML>
<HEAD>
</HEAD>
<BODY>
Server (ASP Application)
Client (Browser)
Form
METHOD=GET
(Giá trị Default)
Dữ liệu gửi với URL
Sử dụng QueryString
Collection đọc DL
Sử dụng Form
Collection đọc DL
Dữ liệu gửi trong
HTTP header
METHOD=POST
http://www.ebook.edu.vn 92
<% Response.Write Request.Form("Name")%>
works for<% Response.Write Request.Form("Company") %>
at address<% Response.WriteRequest.Form("Address") %>
as a<% Response.Write Request.Form("Position") %>.
</BODY>
</HTML>
Kết quả:
Jane Doe works for ISSI at address 5609 Kington Pike Knoville, TN as a
Web Designer.
Ví dụ sử dụng ph-ơng thức Get để gửi dữ liệu:
Nội dung file1.asp:
<HTML>
<HEAD>
</HEAD>
<BODY>
<A>
Query sample</A>
</BODY>
</HTML>
Nội dung file2.asp:
<%
For Each item In Request.QueryString
Response.Write item & " = " & Request.QueryString(item) & "<BR>"
Next
%>
Output:
language = ASP
type = general
Hoặc file2.asp có thể viết:
<%
Response.Write "language =" & Request.QueryString("language")&
"<BR>"
Response.Write "type =" & Request.QueryString("type")& "<BR>"
%>
Chú ý: Khi lấy giá trị theo 2 tập hợp là Form hoặc QueryString ta chỉ cần chỉ
ra Request(“tên_biến”)
Chẳng hạn: Request.Form(“Name”) cóthể thay bằng Request(“Name”)
d. Sử dụng tập hợp Cookies:
Cookies là nhóm văn bản màWebsite đặt vào một filetrên đĩa cứng của web
browser khi web browser truy cập Websiteđó. Cookie dùng để nhận diện khi Web
browser này truy cập những lần sau.
http://www.ebook.edu.vn 93
Cookie đ-ợc gửi đến Server cùng với mỗi yêu cầu. Dữ liệu trong Cookie
đ-ợc đặt trong tập hợp Cookies. Nó đ-ợc truy cập t-ơng tự QueryString và Form.
Tuy nhiên, sử dụng đối t-ợng Request, ta chỉ đọc đ-ợc giá trị của Cookie mà không
thay đổi đ-ợc nó.
Ví dụ:
<%
Response.Cookies("myProduct")("Main") = "DevSite"
Response.Cookies("myProduct")("Prd1") = "ASP"
Response.Cookies("myProduct")("Prd2") = "VBScript"
Response.Write Request.Cookies("myProduct")
%>
Kết quả:
PRD2=VBScript&PRD1=ASP&MAIN=DevSite
e. Sử dụng tập hợp ServerVariables:
Giá trị của các biến môi tr-ờng server. Điều này sẽ chép truy nhập tới các
header HTTP.
Ví dụ:
<%IPAddress = Request.ServerVariables("REMOTE_ADDR")
Software = Request.ServerVariables("SERVER_SOFTWARE")
Protocol = Request.ServerVariables("SERVER_PROTOCOL")
Response.Write "Your IP Address is " & IPAddress & " and your server
is running " & Software & " under " & Protocol & "protocol."
%>
Kết quả
Your IP Address is 127.0.0.1 and your server is running Microsoft-IIS/4.0
under HTTP/1.1 protocol.
Hoặc ta có thể tham chiếu tới tất cả các tham số của tập hợp ServerVariables
nh-sau:
<% For each item in request.servervariables
Response.write “<br>” & item & “=” & request.servervariables(item)&
“<br>”
Next
%>
f. Thuộc tính:
TotalBytes: Chỉ ra tổng số byte máy khách gửi tới máy chủ trong phần
thân yêu cầu HTTP.
g. Ph-ơng thức:
BinaryRead:Đọc dữ liệu từ thân HTTP gửi đến server .
Ví dụ:
-------------------File1.html-----------------
<HTML>
<HEAD>
http://www.ebook.edu.vn 94
</HEAD>
<BODY>
<FORM>
Name:<INPUT>
<BR>
Age: <INPUT><BR>
Sex: <INPUT><BR>
<INPUT><BR>
</FORM>
</BODY>
</HTML>
-------------------File2.asp------------------
<%
Dim ByteCount,BinRead
ByteCount = Request.TotalBytes
BinRead=Resquest.BinaryRead(ByteCount)
Response.Write("ByteCount = " & ByteCount & " bytes")
%>
Kết quả:
Tùy thuộc vào dữ kiện đ-ợc nhập tại form, ví dụ nếu Name=Bill, Age=56,
and Sex=male. Thì ta sẽ có kết quả là:
ByteCount = 39 bytes
4.6.3 Đối t-ợng Response
Đ-ợc sử dụng để truy xuất các đáp ứng mà server tạo ra để gửi về cho user
Tập hợp Thuộc tính Ph-ơng thức
Cookies Buffer
Charset
ContentType
Expires
ExpiresAbsolute
Status
AddHeader
AppendToLog
BinaryWrite
Clear
End
Flush
Redirect
Write
Cú pháp:
Response.tập hợp|thuộc tính|ph-ơng thức
a. Tập hợp:
Cookies:Xác định giá trị của cookie gửi cho browser . Các thành phần của
tập hợp này đều là giá trị chỉ ghi.
Request object cho phép chúng ta đọc thông tin của cookies khi có 1 yêu cầu
đ-ợc gửi đến. Còn Responseobject cung cấp khả năng đặt hoặc thay đổi các giá trị
của cookies tr-ớc khi gửi trả lại cho client.
http://www.ebook.edu.vn 95
Ví dụ:
Dòng lệnh sau đây sẽ thêm 1 cookievào cookie của client nếu nó ch-a đ-ợc
đặt hoặc thay đổi giá trị của cookie này nếu nó đã tồn tại.
<% Response.cookies(“independentcookie”)=”4
th
of July”%>
Chú ý:Việc thay đổi cookie với Response object cần đ-ợc làm tr-ớc khi viết
mã văn bản hoặc HTML để gửi tới client, nếu không sẽgây ra lỗi.
b. Ph-ơng thức :
Ph-ơng thức ýnghĩa
AddHeader Thêm phần đầu HTTP với một giá trị cụ thể để gửi lại cho
browser
AppendToLog Thêm một chuỗi văn bản vào mục nhập nhật ký máy chủ cho
yêu cầu từ máy khách hiện thời
Binarywrite Viết thông tin trực tiếptới nội dung tín hiệu đáp mà không
chuyển đổi ký tự nào
Clear Xoá bộ đệm
End Dừng việc xử lý 1 trang vàtrả lại kết quả hiện tại
Flush Gửi những dữ liệu có trong bộ đệm tới browser ngay lập tức
Redirect Chỉ cho browser kết nối đến một URL khác
Write Gửi text trực tiếp tới trình duyệt phía user
? AddHeader: Response.AddHeader Name, Value
Đặt tên header HTML: Phải đ-ợc gọi tr-ớc khi output đ-ợc gửi cho client trừ
khi response.buffer đ-ợc đặt là true.
Ví dụ:
<%
Response.AddHeader "MyHeader", "ERROR"
%>
? AppendToLog : Response.AppendToLog(String)
Thêm xâu vào cuối mục log Web server cho yêu cầu này. String lớn nhất là
80 ký tự
Ví dụ:
<%
Response.AppendToLog("Error in Processing")
%>
Đầu ra đ-ợc chèn vào cuối file IIS log:
10.78.176.37, - , 03/20/97, 7:55:20, W3SVC, SALES1, 10.78.176.37, Error
in Processing
? Clear: Response.Clear
Xóa toàn bộ output HTML đang ở trong buffer, không xóa header, chỉ xóa
phần thân (body). Nếu buffer không đ-ợc thiết đặt sẽ gây ra lỗi. Phải đặt
Response.Buffer=True (mặc định trong phiên bản 3.0)
Ví dụ:
<%Response.Clear %>
? End: Response.End
Kết thúc xử lý file .asp và trả lại kết quả hiện tại
Ví dụ:
<%
Response.Write "Hello World"
Response.End
Response.Write "Is this the End?"
%>
Kết quả:
Hello World
? Flush:Response.Flush
Gửi thông tin trong buffer ra ngay lập tức
Response.buffer=true
Ví dụ:
<%Response.Flush %>
? Redirect: Response.Redirect(URL)
Kết thúc xử lý file .asp hiện tại, chuyển trình duyệt tới một URL khác.
Ví dụ:
--------------File1.asp---------------
<%
Response.Write "This is File1.asp and switching to File2.asp"
Response.Redirect "File2.asp"
Response.Write "This line is not written to the file"
%>
--------------File2.asp-----------------
<%
Response.Write "This is File2.asp"
%>
Kết quả:
File1 đ-ợc thực hiện sau đó trình duyệt sẽ tải File2 lên:
------------File1.asp------------------
This is File1.asp and switching to File2.asp
------------File2.asp-------------------
This is File2.asp
? Write: Response.Write(Variant)
Ghi thông tin d-ới dạng xâu vào output HTTP hiện thời.
Ví dụ:
<%
Response.Write "Hello World"
Response.Write "<BR>"%>
Kết quả:
Hello World
c. Thuộc tính:
Thuộc tính ýnghĩa
Buffer Xác định xem một trang cósử dụng bộ đệm để chứa các
kết quả đ-ợc tạo bởi Script hay đ-ợc gửi ngay tới
browser khi từng dòng đ-ợc tạo ra và nhập vào dải
HTML. Giá trị ngầm định là False
ContentType Xác định kiểu nội dung HTTP đ-ợc trả về. Kiểu ngầm
định là Text/HTML
Expires Khoảng thời gian 1 trang Web đ-ợc l-u giữ trên browser
ExpiresAbsolute Ngày và thời gian 1 trang Web đ-ợc l-u giữ trên browser
Status Giá trị của dòng trạng thái HTTP trả lại bởi server
Charset Đặt dạng ngôn ngữ sử dụng cho client browser vào phần
cuối của đoạn đầu ContentType
? Buffer
• Buffer: nơi l-u giữ tạm thời tr-ớc khi chuyển cho trình duyệt
• Chỉ ra output của trang có đ-ợc l-u trong buffer hay không
• Sẽ không có sự gửi lại cho trình duyệt cho đến khi tất cả các script
đ-ợc xử lý xong, hoặc có lời gọi ph-ơng thức Flush hay End.
Thuộc tính này không thể thay đổi khi server đã gửi thông tin cho trình duyệt
và phải đ-ợc đặt ở dòng đầu tiên trong file .asp
Ví dụ:
<%
Response.Buffer = TRUE
x=0
Do
x = x+1
Response.Write x & "<BR>"
Loop
%>
? Response.CacheControl
Có cho phép máy chủ proxy đ-ợc cache output của trang .asp hay không.
Máy chủ proxy dùng để đẩy nhanh tốc độ truy nhập tới trang Web nào đó
bằng cách l-u lại một bản của trang Web trong cache.
• Nếu CacheControlđ-ợc đặt là “Public”, thì cho phép cache.
• Nếu CacheControlđặt là “Private”, thì không cho phép cache.
Ví dụ:
<% Response.CacheControl = "Public" %>
<% Response.CacheControl = "Private" %>
http://www.ebook.edu.vn 98
? Charset: Response.Charset
Thêm tên của tập ký tự vào trong header content-type
Mặc định là ISO-LATIN-1
Ví dụ:
Trong ví dụ này, nếu header là: content-type: text/html
Thì header sẽ trở thành:
content-type: text/html; charset = MS_Kanji
<% Response.Charset("MS_Kanji") %>
? ContentType: Response.ContentType
Chỉ ra kiểu nội dung HTTP để trả lại. Mặc định là text/HTML
Ví dụ:
<% Response.ContentType = "application/vnd.ms-excel" %>
? Expires
Xác định khoảng thời gian tr-ớc khi một trang đ-ợc cache hết hạn
Ví dụ:
• Tr-ờng hợp 1: bất kỳ khi nào gọi tới trang đó, nó luôn luôn đ-ợc
refresh.
• Tr-ờng hợp 2: Nếu trở lại trang đó tr-ớc 15 phút, trang hiển thị sẽ là
trang ở trong cache.
<% Response.Expires = 0 %>
<% Response.Expires = 15 %>
? Response.ExpiresAbsolute
Xác định ngày và thời gian chính xác một trang sẽ hết hạn.
Ví dụ:
<% Response.ExpiresAbsolute=#May 15, 1999 18:00:00# %>
? Response.IsClientConnected
• Xác định xem client đã ngừngkết nối với server từ Response.Write
cuối cùng.
• Thuộc tính này đặc biệt có ý nghĩa để server không phải tiếp tục thực
hiện chuyển những thông tin client không yêu cầu.
Ví dụ:
<%
'Check to see if the client is connected.
If Not Response.IsClientConnected Then
'Get the sessionid to send to the shutdown function.
Shutdownid = Session.SessionID
'Perform shutdown processing.
Shutdown(Shutdownid)
End If
%>
http://www.ebook.edu.vn 99
? Response.Status
Dòng trạng thái do server trả lại
Ví dụ:
<%
IPAddress = Request.ServerVariables("REMOTE_ADDR")
If IPAddress <> "208.5.64.223" Then
Response.Status = "403 Access Forbidden"
Response.Write Response.Status
Response.End
End If
%>
<BODY>
You have accessed this page through the IP Address of
208.5.64.223.
</BODY>
Kết quả sau sẽ đ-ợc trả về nếu địa chỉ IP trên máy Client là 208.5.64.223:
You have accessed this page through the IP Address of 208.5.64.223.
Ng-ợc lại nếu địa chỉ IP của Clientkhông phải là 208.5.64.223 thì kết quả
sau sẽ trả về:
403 Access Forbidden
4.6.4 Đối t-ợng Server
Cho phép truy nhập tới các ph-ơng thức và thuộc tính trên máy chủ.
Tập hợp Thuộc tính Ph-ơng thức
ScripTimeOut
CreateObject
HTMLEncode
MapPath
URLEncode
Cú pháp:
Server.Thuộc tính|Ph-ơng thức
a. Thuộc tính:
ScriptTimeout: Server.ScriptTimeout
thời gian tối đa để trang script chạytrên máy chủ. Nếu không đặt giá trị cho
thuộc tính này thì giá trị mặc định của nó là 90 giây.
Nếu script nhập vào một vòng lặp vô hạn thì server sẽ kết thúc script đó để
tránh bị overload bởi việc chạy liên tục các tiến trình sinh ra. Thời gian tr-ớc khi
script bị kết thúc đ-ợc định nghĩa bởi thuộc tính này.
<% Server.ScriptTimeout = 150 %>
Ta có thể lấy đ-ợc giá trị của thuộc tính ScriptTimeout bằng cách:
<% timeout = Server.ScriptTimeout %>
b. Ph-ơng thức
Ph-ơng thức ýnghĩa
CreateObject Tạo một thể hiện của đối t-ợng cụ thể trên Server
Execute Cho phép g?i trang ASP khác trong m?t trang ASP
GetLastError Mô tả đối t-ợng lỗi ASP, chỉ có ý nghĩa tr-ớc khi file asp
gửi nội dung tới Client
HTMLEncode Gắn một đoạn mãHTML vào một xâu đã đ-ợc định dạng.
MapPath Xác định đ-ờng dẫn vật lý trên máy chủ khi xét đết đ-ờng
dẫn ảo.
Transfer Chuy?n tới trang ASP khác từ một trang ASP. Thông tin
trạng thái hiện tại trong trang đầu tiên sẽ đ-ợc chuyển tới
trang thứ hai
URLEncode Cho phép gắn một đoạn mã URL
? Server.CreateObject(ObjectID)
Tạo một thể hiện (instance) của đối t-ợng server (đối t-ợng activeX bất kỳ
trên server), sau đó có thể sử dụng các ph-ơng thức và truy cập tới các thuộc tính
của đối t-ợng đó.
ObjectID là đối t-ợng cần khởi tạo.
Đoạn mã sau dùng để kết nối với CSDL:
<% Set myconn = Server.CreateObject("ADODB.Connection") %>
? Server.Execute (Path)
• Cho phép gọi trang ASP khác trong một trang ASP. Khi trang đ-ợc gọi
tới hoàn thành các công việc của nó, sẽtrở lại tiếp tục thực hiện trang
ASP gọi tới nó. Hiệu quả giống nh-các hàm, thủ tục (subroutines).
Ph-ơng pháp có hiệu quả t-ơng tự include.
• Ph-ơng thức Transfer chuyển tới trang ASP khác không quay lại trang
đã gọi tới.
• Tham số Path chỉ đ-ờng dẫn t-ơng đối hoặc vật lý, toàn bộ xâu này
đ-ợc đặt trong dấu nháy.
Ví dụ:
----------CallingAsp.asp----------
<HTML>
<BODY>
How now <%Server.Execute("CalledAsp.asp")%> cow?
</BODY>
</HTML>
----------CalledAsp.asp----------
<%
Response.Write "pink"
%>
http://www.ebook.edu.vn 101
Kết quả:
How now pink cow?
? Server.GetLastError
Trả lại đối t-ợng ASPError, đối t-ợng này có 9 thuộc tính chỉ đọc cung cấp
thông tin chi tiết về lỗi.
Ví dụ:
<%
Dim objErrorInfo
Set objErrorInfo = Server.GetLastError
Response.Write("ASPCode = " & objErrorInfo.ASPCode)
Response.Write("ASPDescription = " & objErrorInfo.ASPDescription)
Response.Write("Category = " & objErrorInfo.Category)
Response.Write("Column = " & objErrorInfo.Column)
Response.Write("Description = " & objErrorInfo.Description)
Response.Write("File = " & objErrorInfo.File)
Response.Write("Line = " & objErrorInfo.Line)
Response.Write("Number = " & objErrorInfo.Number)
Response.Write("Source = " & objErrorInfo.Source)
%>
? Server.HTMLEncode (String)
Ph-ơng thức này cho phép mã hoá chuỗithành mã HTML đối với xâu ASCII
bất k?. Ví dụ, điều này cho phép hiển thị thẻ HTML mà không xử lý nó nh-những
thẻ HTML thực sự.
Ví dụ:
<% Response.Write Server.HTMLEncode("The tag for a table is: <Table>") %>
Kết quả:
The tag for a table is: <Table>
Kết quả ở Browser:
The tag for a table is: <Table>
? Server.MapPath (Path)
ánh xạ đ-ờng dẫn ảo, hay t-ơng đối tới đ-ờng dẫn vật lý. Ph-ơng thức này
không kiểm tra sự tồn tại thực sự của đ-ờng dẫn. Nếu bắt đầu bằng dấu / hoặc \ ->
đ-ờng dẫn ảo. Còn không bắt đầu bằng ký tự đó -> đ-ờng dẫn t-ơng đối.
Ví dụ:
<HTML>
<BODY>
The path of this file is <% Response.Write
Server.MapPath("test.asp")%>
The path of the file1 is <% Response.Write
Server.MapPath("\test.asp")%>
The path of the file2 is <% Response.Write
Server.MapPath("test\test.asp") %>
http://www.ebook.edu.vn 102
The path of the file3 is <% Response.Write Server.MapPath("\") %>
</BODY>
</HTML>
Kết quả:
The path of this file is C:\VANBANG2\ASP\Example\test.asp
The path of the file1 is d:\inetpub\wwwroot\test.asp
The path of the file2 is C:\VANBANG2\ASP\Example\test\test.asp
The path of the file3 is d:\inetpub\wwwroot
? Server.Transfer (Path)
Chuyển tới trang ASP khác từ một trang ASP. Thông tin trạng thái khởi tạo
trong trang đầu tiên sẽ đ-ợc chuyển tới trang thứ hai.
Ví dụ:
----------CallingAsp.asp----------
<%
Application("name") = "Application Maker"
Application("publishdate") = "05/15/01"
Application("author") = "DevGuru"
Set Application("Obj1") =
Server.CreateObject("ADODB.Connection")
Server.Transfer("CalledAsp.asp")
%>
----------CalledAsp.asp----------
<%;
Response.Write "Outputfrom CalledAsp.asp"
For Each Item in Application.Contents
If IsObject( Application.Contents(Item)) Then
Response.Write Item & “is an object.<BR>”
Else
Response.Write Item & “=” & Application.Contents(Item) &“<BR>”
End If
Next
%>
Kết quả:
Kết quả từ CalledAsp.asp
name=Application Maker
publishdate=05/15/01
author=DevGuru
OBJ1 is an object.
? Server.URLEncode(String)
Chuyển xâu thành dạng mã hoá URL, đểđảm bảo hyperlink trong ASP đó đ-ợc
định dạng đúng đắn.
http://www.ebook.edu.vn 103
Ví dụ:
<% Response.Write Server.URLEncode("http://www.issi.net") %>
Kết quả:
http%3A%2F%2Fwww%2Eissi%2Fnet
4.6.5 Đối t-ợng Application
Một ứng dụng bao gồm các file có thể truy nhập thông qua một th-mục ảo
xác định và các th-mục con của nó.
Đối t-ợng Application thể hiện toàn bộ một ứng dụng ASP. Chúng ta có thể
sử dụng ứng dụng này để chia sẻ thông tin cho tất cả các ng-ời dùng trong một ứng
dụng.
Đối t-ợng Application đ-ợc bắt đầu khi có một yêu cầu đầu tiên một trang
web bất kỳ từ th-mục ảo tại Web server và tồn tại cho đến khi Webserver ngừng
hoạt động.
a. Tập hợp:
? Application.Contents(Key)
Chứa danh sách các mục vừa đ-ợc khởi tạo và đ-a vào đối t-ợng
Application.
Ví dụ:
<% Application("name") = "Application Maker"
Application("publishdate") = "05/15/01"
Application("author") = "DevGuru"
Set Application("Obj1") = Server.CreateObject("ADODB.Connection")
For Each Item in Application.Contents
If IsObject( Application.Contents(Item)) Then
Response.Write Item & " is an object.<BR>"
Else
Response.WriteItem & "=" & Application.Contents(Item) & "<BR>"
End If
Next
%>
Kết quả:
name=Application Maker
publishdate=05/15/01
author=DevGuru
OBJ1 is an object
? Ph-ơng thức của tập hợp Contents:
• Application.Contents.Remove (Name|Integer)
Loại bỏ mục nào đó trong collection Application.Contents
Namechỉ ra tên mục sẽ xóa, nằm trong cặp dấu nháy (“”). Integerchỉ ra vị
trí mục trong collection sẽ đ-ợc xóa. Giá trị này bắt đầu từ 1.
Ví dụ:
<%
Application("name") = "Application Maker"
Application("publishdate") = "05/15/01"
Application("author") = "DevGuru"
Set Application("Obj1") = Server.CreateObject("ADODB.Connection")
Application.Contents.Remove(1)
Application.Contents.Remove("publishdate")
For Each Item in Application.Contents
If IsObject(Application.Contents(Item)) Then
Response.Write Item & " is an object.<BR>"
Else
Response.WriteItem & "=" &Application.Contents(Item) & "<BR>"
End If
Next
%>
Kết quả:
author=DevGuru
Obj1 is an object.
• Application.Contents.RemoveAll
Loại bỏ tất cả các mục trong collection Application.Contents.
Thêm cặp dấu ngoặc ()
<%Application.Contents.RemoveAll( )%>
? Application.StaticObjects(Key)
Chứa tất cả các mục đó đ-ợc tạo trong ứng dụng bằng thẻ <OBJECT.
----------Global.asa-------------
<OBJECT RUNAT=Server SCOPE=Application
ID=MyInfo>
</OBJECT>
<OBJECT RUNAT=Server SCOPE=Application
ID=MyConnection>
</OBJECT>
<OBJECT RUNAT=Server SCOPE=Application
ID=MyADRot>
</OBJECT>
-----------File.asp----------------
<%
For Each Item In Application.StaticObjects
Response.Write Item & "<BR>"
Next
%>
http://www.ebook.edu.vn 105
Kết quả:
MyInfo
MyConnection
MyADRot
b. Sự kiện:
ứng với hai hoạt động bắt đầu và kết thúc một đối t-ợng Application ta có hai
sự kiện trong đối t-ợng Application, đó là:
Application_OnStart(khởi tạo các thông tin phục vụ cho một ứng dụng khi
ứng dụng bắt đầu) và Application_OnEnd(đ-ợc kích hoạt khi ứng dụng kết thúc)
Cú pháp của sự kiện Application_OnStart:
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
' Nơi chèn đoạn Script cần thiết cho việc khởi tạo một ứng dụng
End Sub
Sub Application_OnEnd
' Nơi chèn đoạn Scipt cần thiết cho việc kết thúc một ứng dụng
End Sub
</SCRIPT>
Chú ý:Phải khai báo ngôn ngữ script đ-ợc sử dụng trong các đoạn script sự
kiện trong dòng đầu tiên của file global.asa
- Các đối t-ợng của ASP trong phần này chỉ có SERVER và APPLICATION
-------------------Global.asa--------------------------
<script RUNAT=Server>
Sub Application_OnEnd()
End Sub
Sub Application_OnStart()
Application("NumSession") = 0
Application("NumVisited") = 0
Session.Timeout = 10
End Sub
Sub Session_OnEnd()
Application("NumSession") = Application("NumSession") – 1
End Sub
Sub Session_OnStart()
Application("NumSession") = Application("NumSession") + 1
Application("NumVisited") = Application("NumVisited") + 1
End Sub
</script>
-------------------File1.asp----------------------------
Response.Write "You are " & Application("NumSession") & " of "
& Application("NumVisited") & " users."
http://www.ebook.edu.vn 106
Kết quả:
You are 1 of 1 users.
c. Ph-ơng thức:
Vì đối t-ợng Application có thể đ-ợc chia sẻ thông tin giữa các ng-ời dùng
do đó để đảm bảo những ng-ời dùng đó không thể cùng một lúc thay đổi nội dung
của một biến trong đối t-ợng Application nó có hai ph-ơng thức là Lock và
Unlock.
Ph-ơng thức ýnghĩa
Lock Ph-ơng thức Lock ngăn cản các client khác cùng một lúc thay
đổi giá trị của một biến do đối t-ợng Application l-u trữ
Unlock Ph-ơng thức Unlock cho phép các client có thể sửa đổi các
thuộc tính của đối t-ợng Application .
4.6.6 Đối t-ợng Session
Đối t-ợng Sesion đ-ợc dùng để l-u trữ thông tin cần thiết cho một phiên làm
việc của ng-ời dùng cụ thể. Các biến l-u trữ trong đối t-ợng Session không bị mất
khi ng-ời dùng truy cập các trang Web khác trong ứng dụng. Thay vào đó các biến
này tồn tại trong toàn bộ phiên làm việc của ng-ời dùng.
Khi một ng-ời dùng mới yêu cầu một trang Web từ ứng dụng, Web server tự
động tạo một đối t-ợng Session và server sẽ phá huỷ đối t-ợng Session khi phiên
làm việc kết thúc hoặc bị huỷ bỏ. Có thể đặt thời gian tồn tại cho một phiên làm
việc tuy nhiên giá trị ngầm định cho một phiên làm việc tồn tại là 20 phút.
a. Tập hợp:
? Session.Contents(Key)
Chứa danh sách các mục đã khởitạo và thêm vào bằng đối t-ợng session.
Không phải khởi tạo bằng thẻ <object>
Ví dụ:
<%
Session("name") = "Application Maker"
Session("publishdate") = "05/01/99"
Session("author") = "ISSI"
Set Session("Obj1") = Server.CreateObject("ADODB.Connection")
For Each Item in Session.Contents
If IsObject( Session.Contents(Item)) Then
Response.Write Item & " is an object.<BR>"
Else
Response.Write Item & "=" & Session.Contents(Item) & "<BR>"
End If
Next
%>
Kết quả:
NAME=Application Maker
http://www.ebook.edu.vn 107
PUBLISHDATE=05/01/99
AUTHOR=ISSI
OBJ1 is an object.
? Session.StaticObjects(Key)
Chứa danh sách các mục vừa đ-ợc khởi tạo và đ-a vào đối t-ợng Session nhờ
sử dụng thẻ HTML <OBJECT>.
Ví dụ:
----------Global.asa-------------
<OBJECT RUNAT=Server SCOPE=Session ID=MyInfo
PROGID="MSWC.MyInfo">
</OBJECT>
<OBJECT RUNAT=Server SCOPE=Session
ID=MyConnection>
</OBJECT>
<OBJECT RUNAT=Server SCOPE=Session ID=MyADRot
PROGID="MSWC.ADRotator">
</OBJECT>
-----------File.asp-----------------
<%
For Each Item In Session.StaticObjects
Response.Write Item & "<BR>"
Next
%>
Kết quả:
MyInfo
MyConnection
MyADRot
b. Sự kiện:
Cũng nh-đối t-ợng Application, đối t-ợng Session có hai sự kiện là
Session_OnStart( đ-ợc kích hoạt khi mỗi khi một phiên làm việc bắt đầu) và
Session_OnEnd (đ-ợc kích hoạt khi kết thúc một phiên làm việc)
Cú pháp
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
' Nơi chèn đoạn Script cần thiết cho việc khởi tạo một phiên
làm việc
End Sub
Sub Session_OnEnd
' Nơi chèn đoạn Script cần thiết khi một phiên làm việc kết thúc
End Sub
</SCRIPT>
http://www.ebook.edu.vn 108
c. Thuộc tính:
Thuộc tính ýnghĩa
SessionID Trả về giá trị nhận biết duynhất từng phiên làm việc của một
ng-ời sử dụng
Timeout Khoảng thời gian ngầm định là 20’ cho sự tồn tại của một phiên
làm việc trong một ứng dụng. Máy chủ Web sẽ duy trì thông
tin phiên làm việc của ng-ời sử dụng mà không đ-a ra yêu cầu
hay làm mới lại một trang.
d. Ph-ơng thức:
? Abandon: Huỷ bỏ một đối t-ợng Session và giải phóng các biến trong
đối t-ợng Session.
? Session.Contents.Remove (Name|Integer)
Dùng để xóa tất cả các mục trong collection Session.Contents
Có 2 lựa chọn tham số Namehoặc Integer
• Name chỉ tên của mục cần xóa
• Integer là số chỉ vị trí (bắt đầu từ 0) của mục cần xóa.
? Session.Contents.RemoveAll
Xóa tất cả các mục trong session.contents
Ví dụ:
<%Session.Contents.RemoveAll( )%>
Chú ý: Có thể l-u trữ các giá trị trong đối t-ợng Session. Thông tin l-u trữ
trong đối t-ợng Session có phạm vi phiên làm việc và có thể sử dụng đ-ợc trong
suốt một phiên làm việc.
4.7 Câu hỏi và bài tập ch-ơng 4
4.7.1 Câu hỏi ôn tập
1. ASP là viết tắt của cụm từ nào?
a. All Standard Pages
b. Active Server Pages
c. Active Standard Pages
d. A Server Page
2. Nội dung của đoạn script ASP đ-ợc định nghĩa bởi cặp thẻ nào d-ới đây?
a. <&>...</&>
b. <%>...</%>
c. <script>...</script>
d. <%...%>
3. IIS là gì? Nó hoạt động nh-thế nào?
4. Các b-ớc thiết lập th-mục ảo trong IIS.
5. Các lệnh cơ bản của ASP.
4.7.2 Bài tập về các cấu trúc điều khiển và vòng lặp.
1. Viết đoạn mã ch-ơng trình ASP dùng cấu trúc Select...Case để hiển thị ra
màn hình ngày hiện hành trong tuần bằng tiếng Việt.
2. Viết đoạn mã ch-ơng trình ASP dùng vòng lặp Do...Loop để viết ra màn
hình 10 dòng chữ “Hello world” có kích th-ớc tăng dần.
4.7.3 Bài tập về các đối t-ợng.
1. Viết ra màn hình câu “Hello world”
2. Viết một form lấy ý kiến của ng-ời sử dụng về trang web của mình, rồi
hiển thị các thông tin ng-ời sử dụng điền vào ra màn hình.
3. Thiết kế và cài đặt trang Web hiển thị máy tính tay với các phép toán
cộng, trừ, nhân, chia, lũy thừa, căn bậc hai, bình ph-ơng, nghịch đảo.
4. Viết một đoạn code dùng để đếm số lần truy cập vào một trang Web. Sau
đó nhúng vào trang Web đã làm ở bài 2.
5. Thiết kế và cài đặt trang Web hiển thị lịch (calendar). Trang Web phải cho
phép ng-ời dùng xem lịch tháng của một năm nào đó, xem lịch của các tháng tr-ớc
và sau tháng hiện tại của năm hiện tại.
6. Thiết kế và cài đặt trang Web hiển thị hệ thống cây th-mục của máy chủ.
Ch-ơng 5
Kết nối cơ sở dữ liệu trong lập trình Web động với ASP
5.1 Khái niệm về ADO
ActiveX Data Object là lớp đối t-ợng COM (Compenent Object Model) tập
trung vào xử lý dữ liệu thông qua OLEDB của Windows. ADO thiết kế cho mục
đích truy xuất dữ liệu tổng quát không chỉ dùng để truy xuất dữ liệu thuần tuý mà
còn xử lý đ-ợc cả dữ liệu file hay bất kỳ loại dữ liệu nào có hỗ trợ cơ chế cho phép
giao tiếp thông qua OLEDB.
Mô hình kiến trúc của ADO t-ơng tác giữa ứng dụng và nguồn dữ liệu:
Hình 5.1 Mô hình kiến trúc của ADO.
5.2 Trình tiêu thụ (consumer) và trình cung cấp (provider)
Trong b-ớc lập trình, ch-ơng trình viết ra chính là trình tiêu thụ dữ liệu bởi
nó cần truy xuất vào các nguồn dữ liệu để xửlý. Còn trình cung cấp là tập lệnh cho
phép truy xuất vào nguồn dữ liệu theo cách đặc tr-ng của chúng. Provider cho phép
giao tiếp giữa nguồn dữ liệu và tầng điều khiển OLEDB. Và ADO chỉ trao đổi với
nguồn dữ liệu thông qua OLEDB mà không cầnquan tâm tới cách thức làm việc
của Provider. Để giúp OLEDB biết đ-ợc Provider nào cần phải giao tiếp, khi mở
kết nối ADO cần chỉ định trình cung cấp dữ liệu Provider t-ơng ứng. Microsoft
cung cấp sẵn một số Provider cho phép truy xuất dễ dàng vào các nguồn dữ liệu
đang thông dụng nh-:
• Jet OLEDB 4.0 – Cơ sở dữ liệu Access
• DTS Packages – Dịch vụ chuyển đổi dữ liệu trong SQL Server
• ODBC Driver – Provider ch phép truy xuất nguồn dữ liệu thông qua ODBC
• SQL Server – Cơ sở dữ liệu SQL Server
• Oracle – Cơ sở dữ liệu Oracle
• Simple Provider – Cơ sở dữ liệu dạng Text
VC++ VB Script Java
OLEDB
Data Store
E-mail CSDL File
ADO
Application
http://www.ebook.edu.vn 111
5.3 Mô hình đối t-ợng ADO
5.3.1 Đối t-ợng kết nối (Connection)
Cho phép thực hiện việc mở kết nối đến nguồn dữ liệu cần truy xuất. Thông
qua Connection chỉ cần chỉ định trình cung cấp OLEDB Provider sẽ dùng để tiếp
cận dữ liệu. Các thông tin kết nối bổ sung khác nh-username, password, server
name,.. th-ờng đ-ợc l-u vào một chuỗi gọi là chuỗi kết nối (Connection String).
Chú ý: Có thể kết nối và truy xuất vào nguồn dữ liệu màkhông bắt buộc phải
dùng đối t-ợng Connection. Cá đối t-ợng khác nh-Command, RecordSet,
Record,... cũng cho phép mở trực tiếp kết nối. Tuy nhiên sử dụng đối t-ợng
Connection sẽ cho phép bạn tách biệt thao tác kết nối và thao tác truy cập cơ sở dữ
liệu. Hơn nữa đối t-ợng Connection còn cung cấp thêmmột số chức năng chuyên
dụng khác nh-cho phép thực thi câu lệnh SQL tác động vào dữ liệu nh-Insert,
Update, Delete, gọi thủ tục Procedure Store,... hoặc kiểm soát giao tác transaction
nh-Rollback, commit.
5.3.2 Đối t-ợng Command:
Đối t-ợng này dùng cho mục đích thực thi câu lệnh tốt hơn Connection. Cho
phép bạn chuyển tham số vào các lệnh thực thi SQL. Tham số có thể chỉ định kiểu
hoặc giá trị t-ờng minh. Các tham số có thể nhận trị trả về sau khi thực
thi..Command có thể dùng cho cả 2 mục đích: thực thi câu lệnh SQL không cần
nhận kết quả trả về nh-Insert, Update, Delete, Procedure Store, hoặc thực thi các
lệnh trả về tập RecordSet nh-lệnh Select.
5.3.3 Đối t-ợng RecordSet:
Là đối t-ợng sử dụng th-ờng xuyên trong ADO. Cung cấp kết quả trả về từ
câu lệnh truy vấn một tập các bản ghi. Trang ASP có thể dùng vòng lặp để duyệt
qua các bản ghi này và hiển thị dữ liệu kết xuất ra trang Web phía trình duyệt.
Ngoài ra RecordSet còn cho phép thực hiệnlọc dữ liệu từ tập các bản ghi, truy xuất
đến tong tr-ờng cụ thể của bản ghi thông qua đối t-ợng Field hoặc danh sách các
tr-ờng trong bản ghi thông qua đối t-ợng Fields
5.4 Kết nối với nguồn dữ liệu
Chuỗi kết nối đ-ợc dùng để cung cấp thông tin cho đối t-ợng Connection
biết đặc điểm của cơ sở hay nguồn dữ liệu mà ADO cần truy xuất.
5.4.1 Tạo một ODBC DSN
Tr-ớc khi tạo các Script truy xuất cơ sở dữ liệu (CSDL), ta cần chỉ dẫn cho
ADO xác định nguồn dữ liệu cần truy xuất và cách thức liên kết CSDL.
Phổ biến và đơn giản nhất đó là sử dụng tên nguồn dữ liệu (Data Source
Name-DSN) để định vị và cấu hình nguồn dữ liệu t-ong thích chuẩn ODBC. Với
ODBC bạn có thể lựa chọn các kiểu DNS để tạo, đó là: User, System hoặc File. Các
DNS User và System th-ờng trú trong registry của hệ điều hành WindowsNT.
System DNS cho phép tất cả ng-ời sử dụng truy nhập vào Server đó đều có thể truy
xuất một CSDL, trong khi đó User DNS hạn chế đối với mỗi ng-ời sử dụng đăng
nhập vào Server; File DSN sẽ l-u thông tin d-ới dạng file cho phép nhiều ng-ời sử
dụng truy xuất CSDL và dễ dàng chuyển từ Server này sang Server khác chỉ bằng
việc copy các tệp DSN. Chúng ta có thể tạo ra DSN bằng cách:
• Vào trong Start\Control Panel, click chuột vào biểu t-ợng ODBC, chọn
một dạng DSN.
• Click Add, chọn một trình điềukhiển dữ liệu(.MDB, SQL)
• Theo các chỉ dẫn trên màn hình để cấu hình DSN cho CSDL
Sau đây là một số kết nối đến các loại CSDL thông dụng:
5.4.2 Cơ sở dữ liệu MS Access
connStr=“Provider=Microsoft.JetOLEDB.4.0; Data Source =
C:\Program Files\Microsoft Visual Studio\VB98\BIBLIO.MDB;
Persist Security Info=False”
set conn=Server.CreateObject(“ADODB.Connection”)
conn.open connStr
5.4.3 Cơ sở dữ liệu MS Access thôngqua trình điều khiển ODBC
connStr=“Driver=Microsoft Access Driver (*.mdb); DBQ=C:\
Program Files\Microsoft Visual Studio\VB98\BIBLIO.MDB;”
set conn=Server.CreateObject(“ADODB.Connection”)
conn.open connStr
5.4.4 Cơ sở dữ liệu MS SQL Server
connStr=“Provider=SQLOLEDB.1;Persist Security Info=False;
User ID=sa;Initial Catalog=AdvWorks;Data Source=localhost”
set conn=Server.CreateObject(“ADODB.Connection”)
conn.open connStr
Nếu nguồn dữ liệu hỗ trợ OLEDB ta có thể sử dụng ADO thông qua ODBC
theo cách tổng quát:
connStr="Provider=MSDASQL.1;Persist Security Info=False;
Data Source=Test"
set conn=Server.CreateObject(“ADODB.Connection”)
conn.open connStr
Trong đó Test là DataSource thiết lập trong System DNS của ODBC
5.5 Sử dụng đối t-ợng RecordSet
5.5.1 Tạo RecordSet:
set rs=Server.CreateObject(“ADODB.RecordSet”)
Để trích rút dữ liệu từ một hoặc nhiều bảng nào đó trong cơ sở dữ liệu, ta
th-ờng kết hợp đối t-ợng Connection vào câu lệnh SQL Select trong ph-ơng thức
Open của RecordSet:
rs.open SQLCommand, Conn
5.5.2 Duyệt qua các bản ghi và truy xuất các tr-ờng của bản ghi:
Do While not rs.eof
Rs.fields](“field_name”)
rs.movenext : di chuyển con trỏ của RecordSet đến bản ghi kế tiếp
loop
rs.close
http://www.ebook.edu.vn 113
Các cách truy cập hợp lệ và t-ơng đ-ơng:
Rs(“field_name”)
Rs.fields(“field_name”)
Rs.fields(“field_name”).value
Rs(1).value
Rs.fields(1).Value
Nếu muốn duyệt qua tất cả các tr-ờng trong bản ghi cóthể dùng lệnh:
For each Fld in rs.fields
Response.write fld.name + “:” + fld.value + “<br>”
Next
5.5.3 Lọc qua các bản ghi trong RecordSet
Có thể sử dụng mệnh đề Where của câu lệnh Select hoặc có thể sử dụng
thuộc tính Filter của RecordSet để chỉ định điều kiện lọc sau khi đã trích xuất dữ
liệu.
Ví dụ:
sqlStr=”Select * from Products”
rs.open sqlStr,conn
rs.filter= “ productCode=‘” & SpecialCode & “’”
Thuộc tính Filter cho phép sử dụng mệnh đề lọc gần giống với mệnh đề
Where
5.5.4 Phân trang với đối t-ợng RecordSet:
Đối t-ợng RecordSet cung cấp 3 thuộc tính quan trọng sau để sử dụng phân
trang:
PageSize: Kích th-ớc bản ghi trong một trang
PageCount: Tổng số trang RecordSet truy vấn đ-ợc
AbsolutePage: Chỉ định trang hiện hành đang cần đ-ợc đọc
Để RecordSet có khả năng phân trang,cần thiết lập thêm tham số cho
RecordSet tr-ớc khi thực hiện truy vấn:
Rs.CursorLocation=3 ‘ Có thể sử dụng hằng adUseClient
Rs.PageSize=15 ‘ 15 bản ghi trong một trang
Tiết theo mở đối t-ợng RecordSet truy vấn dữ liệu với tuỳ chọn là các hằng
adOpenForwardOnly(0), adLockReadOnly (1) truy cho ph-ơng thức Open nh-sau:
Rs.open sqlStr, Conn, 0,1
Công việc sau cùng là địnhvị trang thông qua thuộctính AbsolutePage. Ta
l-u lại vị trí hiện hành của trang dữ liệu thông qua giá trị chứa trong thẻ <input
hidden>. Giá trị này sẽ đ-ợc chuyển về trình chủ mỗi khi ng-ời dùng kích vào.
Xét ví dụ sau:
<%sqlStr="SELECT * FROM Products "
' page navigate session here ...........
Dim lCurrentPage
Dim lPageCount
lCurrentPage = CLng(Request("page"))
If lCurrentPage < 1 Then
lCurrentPage = 1
End If
rs.CursorLocation = 3
rs.PageSize = 15
rs.Open sqlStr, conn, 0, 1 'Const adOpenForwardOnly=0,
adLockReadOnly = 1
lPageCount = rs.PageCount
If lCurrentPage > lPageCount Then
lCurrentPage = lPageCount
End If
if not rs.eof then
rs.AbsolutePage = lCurrentPage end if
call ShowPageNavigation(lCurrentPage,lPageCount)
Do While rs.AbsolutePage = lCurrentPage And Not rs.Eof
Response.write rs("ProductName")
rs.movenext
loop %>
<form >
<input type=hidden name=page >
</form>
<%
Sub ShowPageNavigation (lCurrentPage,lPageCount)
If lCurrentPage <> 1 AND lCurrentPage <> 0 Then
%>
<A MsoNormal">">Previous
<% Else %>
Previous
<% End If%>
<%If lCurrentPage < lPageCount Then%>
<AMsoNormal">">Next
<% Else %>
Next
<% End If%><BR>
Page <B> <%= lCurrentPage%> </B>
<%= lPageCount%>
<%End Sub %>
<script language=javascript>
function setValue(page){
viewFrm.page.value= page;
viewFrm.submit();
}
</script>
5.6 Hiệu chỉnh các bản ghi
5.6.1 Hiệu chỉnh các bản ghi dựa vào RecordSet:
Thêm mới bản ghi: Để thêm mới vào bảng dữ liệu quản lý bởi ph-ơng thức
RecordSet sử dụng ph-ơng thức AddNew
sqlStr=”Select * From Accounts”
rs.open sqlStr,Conn
‘ Thêm tài khoản mới vào bảng Accounts
rs.Addnew
‘gán giá trị cho bản ghi
with rs
.fields(“username”)= ‘New User’
.fields(“password”)=’***’
end with
‘l-u lại
rs.update
‘Chỉnh sửa nội dung trong bản ghi hiện hành:
sqlStr=”Select * From Accounts”
rs.open sqlStr,Conn
with rs
.fields(“password”)=’newpassword’
end with
‘l-u lại
rs.update
‘Xoá bản ghi hiện hành:
sqlStr=”Select * From Accounts where username= ‘” &mkuser &”’”
rs.open sqlStr,Conn
rs.delete
5.6.2 Hiệu chỉnh các bản ghi bằng câu lệnh SQL với đối t-ợng connection
sqlStr=”delete * from Accounts where username= ‘” &mkuser &”’”
Conn.execute sqlStr
5.7 Sử dụng đối t-ợng Command
5.7.1 Tạo đối t-ợng Command:
set cmdUpdate=Server.CreateObject(“ADODB.Command”)
5.7.2 Sử dụng đối t-ợng Command:
sqlUpdate=“update accounts set password = ‘abc’ where
username=”‘” & username & “’”
http://www.ebook.edu.vn 116
cmdUpdate.ActiveConnection=strConn
cmdUpdate.CommandText=strUpdate
cmdUpdate.CommandType=adcmdText
cmdUpdate.Execute
Đối t-ợng Command cũng đ-ợc dùng để nhận kết quả trả về từ câu lệnh
Select hoặc từ một tên bảng dữ liệu, vídụ để lấy toàn bộ nội dung bảng dữ liệu
Accounts, ta chỉ cần chỉ ra tên bảng và mở RecordSet dựa vào đối t-ợng Command:
cmdTable.ActiveConnection=strConn
cmdTable.CommandText=”Accounts”
cmdTable.CommandType=adCmdTable
rs.open cmdTable
5.8 Bài tập ch-ơng 5
Bài 1: Chọn chủ đề đểthiết kế website
1. Website về dịch vụ việc làm.
2. Website về dịch vụ nhà đất (http://www.nhadat.com).
3. Website báo điện tử (http://vnexpress.net )
4. Website tr-ờng học.
5. Website dịch vụ giải trí nh-ECards, Điện hoa, ...
Bài 2: Xây dựng mô hình ứng dụng bán hàng qua mạng, dựa trên cơ sở dữ
liệu, qua đó vận dụng các đối t-ợng của ADODB để có thể kết nối với cơ sở dự liệu
sao cho có thể thể hiện và cung cấp đ-ợc thông tin cho khách hàng. Chủ yếu giới
thiệu cách thức thiết kế một ứng dụng Web có các chức năng sau:
• Xem thông tin chi tiết của một mặt hàng.
• Lựa chọn hàng, thêm vào,bớt ra khỏi giỏ hàng.
• Tính tiền.
Bài 3: Bài tập tổng hợp, thiết kếmột số Web site theo mẫu:
1. Thiết kế website theo mẫu sau (http://www.flowers.com)
http://www.ebook.edu.vn 117
2. Thiết kế website theo mẫu sau (http://shopping.yahoo.com)
3. Thiết kế website theo mẫu sau (http://www.is-edu.hcmuns.edu.vn)
http://www.ebook.edu.vn 118
4. Thiết kế website theo mẫu sau (http://vnexpress.net)
5. Thiết kế website theo mẫu sau (http://www.codeproject.com)
Tài liệu tham khảo
1. Đỗ mai h-ơng: Xây dựng Web động dựa trên công nghệ ASP
Học viện kỹ thuật quân sự - 2000.
2. nguyễn ph-ơng lan: ASP 3.0/ASP.NET
Nhà xuất bản Lao động xã hội - 2003.
3. phạm phú tài:Javascript
Mediaspace Club ấn hành nội bộ - 2003.
4. nguyễn thị thanh trúc:Giáo trình thiết kế và lập trình Web với
ASP
Đại học quốc gia Tp HCM - 2003.
5. nguyễn hữu tuấn: Giáo trình thiết kế Web
Đại học quốc gia Hà Nội - 2001.
6. Giáo trình xây dựng và quản trị Website
Trung tâm điện toán và truyền số liệu Khu vực I - 2003.
7. Nhóm tác giả ELICOM: Xây dựng Web động với ASP
Nhà xuất bản Thống kê - 2000.
8. MICHAEL CORNING: Working with Active Server Page
Que Corporation - 1997.
9. Learning VBScript
XtraNet Communications INC, - 2000
http://www.ebook.edu.vn 120
Bạn đang đọc truyện trên: Truyen2U.Pro