Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin
Trang 1BỘ GIAO THÔNG VẬN TẢI
DÙNG CHO SV NGÀNH : CÔNG NGHỆ THÔNG TIN
HẢI PHÒNG - 2009
Trang 2MỤC LỤC
Chương 1: TỔNG QUAN 5
1.1 Internet 5
1.1.1 Lịch sử mạng Internet 5
1.1.2 Một số khái niệm liên quan đến mạng Internet 5
1.1.3 World Wide Web 6
1.1.4 Thư điệntử (E-mail) 9
1.2 Các kiểu mạng 9
1.3 Kiến trúc Client – server 10
Chương 2: NGÔN NGỮ SIÊU VĂN BẢN HTML 12
2.1 Khái niệm cơ bản về ngôn ngữ HTML 12
2.2 Lập trình web với ngôn ngữ HTML 12
2.2.1 Các thành phần cơ bản của html 12
2.2.2 Cấu trúc tệp HTML 13
2.3 Các thẻ cơ bản trong HTML 13
2.3.1 Thẻ giải thích 13
2.3.2 Các thẻ định dạng văn bản 13
2.3.3 Tạo liên kết (link) 16
2.3.4 Một số kí tự đặc biệt trong HTML 17
2.3.5 Các thẻ dùng thiết kế bảng 17
2.3.6 Các thẻ tạo Frame 18
2.3.7 Các thẻ dùng tạo Form 19
CHƯƠNG 3 NGÔN NGỮ KỊCH BẢN JAVASCRIPT 21
3.1 Mở đầu 21
3.2 Cú pháp cơ bản JavaScript 21
3.2.1 Kiểu dữ liệu 22
3.2.2 Hằng và biến 23
3.2.3 Các toán tử 23
3.2.4 Câu lệnh 26
3.2.5 Câu lệnh điều kiện 26
3.2.6 Câu lệnh lặp 28
3.3 Tương tác giữa JavaScript và HTML 30
3.3.1 Sử dụng thẻ <SCRIPT> 30
3.3.2 Sử dụng các tệp tin bên ngoài 31
3.4 Các đối tượng của trình duyệt 31
Chương 4: NGÔN NGỮ KỊCH BẢN VBSCRIPT 38
4.1 Mở đầu 38
4.2 Cú pháp cơ bản của VBScrip 38
4.2.1 Khai báo hằng, biến, mảng 38
4.2.2 Chú thích 39
4.2.3 Các toán tử 39
4.2.4 Các cấu trúc điều khiển 39
Trang 34.2.5 Hàm và Thủ tục 40
4.3 Tương tác giữa VBScript và HTML 41
4.4 Các đối tượng của trình duyệt 42
4.4.1 Đối tượng ERR 42
4.4.2 Đối tượng kịch bản DICTIONARY 43
4.4.3 Đối tượng FileSystemObject 43
Chương 5: ACTIVE SERVER PAGE 46
5.1 Mô hình các lớp 46
5.2 Thiết lập WebServer 47
5.2.1 ASP (Active Server Page) 47
5.2.2 Trang ASP 47
5.2.3 IIS (Internet Information Server) 48
5.3 Xử l các yêu cầu của IIS 48
5.4 Mô hình đối tượng 49
5.5 Các đối tượng của ASP 50
5.5.1 Đối tượng Application 50
5.5.2 Đối tượng AspError 52
5.5.3 Đối tượng ObjectContext 52
5.5.4 Đối tượng Response 53
5.5.5 Đối tượng Request 55
5.5.6 Đối tượng Server 58
5.5.7 Đối tượng Session 60
Trang 4YÊU CẦU VÀ NỘI DUNG CHI TIẾT
Bộ môn phụ trách giảng dạy: Kỹ thuật máy tính Khoa phụ trách: CNTT
Điều kiện tiên quyết:
Sinh viên phải học xong các học phần sau mới đƣợc đăng k học phần này:
Mạng máy tính, Truyền số liệu
Nội dung chi tiết của học phần:
Nhiệm vụ của sinh viên :
Tham dự các buổi thuyết trình của giáo viên, tự học, tự làm bài tập do giáo viên giao, tham dự các buổi thực hành, các bài kiểm tra định kỳ và cuối kỳ, hoàn thành bài tập lớn theo yêu cầu
Trang 5- Scott Mitchell và James Atkinson, Teach yourself Active Server Pages 3.0 – Nhà xuất bản SAMS,2000
- Jason Butler , ASP Data Access for Beginners – www.w3schools.com
- Nguyễn Thị Thanh Trúc – Thiết kế và lập trình Web với ASP – Đại học Quốc gia thành phố Hồ Chí Minh, 2003
Hình thức và tiêu chuẩn đánh giá sinh viên:
- Đánh giá dựa trên tình hình tham dự buổi học trên lớp, các buổi thực hành, điểm kiểm tra thường xuyên và điểm kết thúc học phần
- Hình thức thi cuối kỳ : thi viết
Thang điểm: Thang điểm chữ A, B, C, D, F
Điểm đánh giá học phần Z = 0.4X + 0.6Y
Bài giảng này là tài liệu chính thức và thống nhất của Bộ môn Kỹ thuật máy tính, Khoa
Công nghệ Thông tin và được dùng để giảng dạy cho sinh viên
Ngày phê duyệt: 15 / 6 / 2010
Trưởng Bộ môn: ThS Ngô Quốc Vinh
Trang 6Ngày nay mạng Internet là một mạng công cộng kết nối hàng trăm triệu máy tính trên toàn thế giới Về mặt vật l , mạng Internet sử dụng một phần của toàn bộ các tài nguyên của mạng viễn thông công cộng; về mặt kỹ thuật, mạng Internet sử dụng tập các giao thức TCP/IP
do Vinton Gray Cerf và Robert Kahn xây dựng từ năm 1973 tại Trường Đại học Stanford Hai
mô phỏng của công nghệ mạng Internet là Intranet và Extranet
Từ năm 1969, Bộ Quốc phòng Mỹ đã xây dựng mạng ARPANET, (ARPA là từ viết tắt
của Advanced Research Projects Agency), tưởng ban đầu của mạng Arpanet là dùng để trao
đổi thông tin giữa các cơ quan chính phủ và các trung tâm nghiên cứu của các trường đại học
Mỹ Điều đặc biệt ở mạng này là mạng vẫn hoạt động khi một phần của nó bị phá hủy trong các trường hợp chiến tranh hoặc thiên tai Sau đó mạng ARPANET chia làm hai mạng:
Đến năm 1972, một mạng khác là CSNET (Computer Science Research Network) được
nối với ARPANET CSNET được tạo ra để liên kết các mạng độc lập khác Tại thời điểm này
được xem là ngày khai sinh ra mạng INTERNET Vào năm 1980, tổ chức National Science
Foundation đã xây dựng mạng NSFNET để liên kết đến các mạng chính, đây là mạng có tốc
độ cao, dùng để kết nối các siêu máy tính trung tâm của NSF
Công nghệ mạng ngày càng phát triển, nhiều mạng mới được hình thành và kết nối với mạng ARPANET, CSNET và NSFNET Tất cả mạng này kết nối với nhau và trở thành một mạng có tên gọi là INTERNET Cuối cùng hai mạng Arpanet và Csnet ngưng họat động, mạng Nsfnet trở thành mạng chính nối kết các mạng khác trên Internet
1.1.2 Một số khái niệm liên quan đến mạng Internet
Địa chỉ IP
Các máy tính trong mạng Internet/ Intranet trao đổi thông tin với nhau theo chuẩn truyền thông gọi là giao thức TCP/IP Đây là giao thức cung cấp dịch vụ truyền các gói dữ
Trang 7liệu (IP datagrams) theo địa chỉ IP bằng cách chọn đường (routing) trong mạng thông qua cổng kết nối (gateway) Để việc trao đổi thông tin trong mạng Internet thực hiện được, mỗi máy tính trong mạng cần phải được cấp một định danh (Identify) để phân biệt các máy với nhau, mỗi máy được gán cho một nhóm số gọi là địa chỉ IP (IP Address) hay nói cách khác
địa chỉ IP dùng xác định đối tượng nhận và gửi thông tin trên Internet Địa chỉ IP gồm 4 nhóm
số thập phân có giá trị từ 0 đến 255, phân các nhau bằng dấu chấm (.)
Trên thực tế, địa chỉ IP hiện tại (IP version 4) có 32 bit chia thành 4 octet (mỗi octet có
8 bit), các octet tách biệt nhau bằng dấu chấm (.)
Ví dụ : 11001011 01100010 01010011.00110101
Để tiện việc quản l và phân phối địa chỉ, người ta chia các địa chỉ IP thành 3 phần :
Các địa chỉ IP được chia thành 5 lớp tùy theo giá trị của 3 byte đầu tiên: A,B,C,D,E Riêng lớp D và E, Tổ chức Internet đang để dành cho các mục đích khác, không phân phối Địa chỉ IP tự nó không chứa thông tin về mô tả mạng, subnet đi kèm với mỗi địa chỉ cung cấp thông tin này
dụng tối đa
Số máy chủ trên từng mạng
203.162.0.0 đến 203.162.7.0 Ở Việt Nam, cơ quan VNNIC (Vietnam Internet Network
Inforrmation Center) thuộc Bộ Bưu chính – Truyền thông chịu trách nhiệm quản l tên miền, địa chỉ IP (xem http://www.vnnic.net.vn)
Do sự cạn kiệt địa chỉ IP theo IPv4 (sử dụng 32 bit); hiện nay tại nhiều nước đã dùng IPv6 (sử dụng 128 bit) để cấp phát địa chỉ IP
Tên miền (Domain name)
Do địa chỉ IP là một dãy số, không có tính gợi nhớ, trong mạng Internet người ta thường
sử dụng dịch vụ tên miền (Domain Name Service) cho các máy trong mạng Mỗi tên miền có
dạng :
Host.Subdomain.Domain
Trong đó : Host là tên máy, Domain là tên của một tổ chức mạng lớn, như các Cty đa quốc gia, các quốc gia, Subdomain là tên một tổ chức nhỏ hơn trong domain
Tên miền cấp 1 bao gồm các mã quốc gia của các nước tham gia Internet được quy định
bằng 2 chữ cái theo tiêu chuẩn ISO-3166, ví dụ Việt Nam là vn, Nhật bản là jp, Pháp là fr, Anh quốc là uk, CHLB Nga là ru và 5 lĩnh vực dùng chung toàn cầu:
.edu : (education) các trường học, tổ chức giáo dục
.int : (international organizations) các tổ chức quốc tế
.org : (other organizations) các tổ chức khác
1.1.3 World Wide Web
Lịch sử
Trang 8World Wide Web (gọi tắt là Web): Là hệ thống các server trên internet hỗ trợ riêng cho
những tư liệu được định dạng bằng ngôn ngữ đánh dấu gọi là HTML (HyperText Markup
Language) mà mọi người có thể truy cập được thông qua các máy tính nối mạng internet
Những tư liệu này cho phép liên kết đến các tư liệu khác như các tệp tin đồ họa, âm thanh, video Chú rằng không phải tất cả các server trên Internet là World Wide Web, do vậy Web không đồng nghĩa với Internet, tuy rằng Web là một tập con của Internet, là một ứng dụng
quan trọng nhất trên Internet
Có nhiều định nghĩa khác nhau về web, Bách khoa toàn thư Việt Nam
(http://dictionary.bachkhoatoanthu.gov.vn) định nghĩa web là “dịch vụ thông tin trên mạng Internet thâm nhập được thông qua một hệ siêu văn bản, cho phép kết nối các tư liệu khác
nhau lưu trữ ở những địa điểm khác nhau trên toàn cầu”, còn wikipedia định nghĩa web là
“một mạng toàn cầu, là không gian thông tin toàn cầu mà mọi người có thể truy cập (đọc/viết) qua máy tính nối mạng internet”
Web ra đời từ một dự án nghiên cứu tại Trung tâm nghiên cứu hạt nhân Châu Âu (CERN, Thụy Sĩ) vào năm 1989 do Berners-Lee lãnh đạo Dự án này phát triển giao thức
truyền và nhận các tệp tin siêu văn bản theo mô hình client-server gọi tắt là HTTP (HyperText
Transfer Protocol), sau đó công bố thư viện chương trình nguồn của giao thức này cho các
nhà phát triển khác để xây dựng các phần mềm duyệt Web
Web dựa trên ba cơ chế để có thể cho phép người sử dụng truy cập đến các nguồn tài
nguyên trên web, đó là giao thức, URL và HTML:
Địa chỉ (Address) còn gọi là URL (Uniform Resourse Locators), được sử dụng để
định danh (identify) các trang web và các nguồn tài nguyên trên web
Một URL cơ bản gồm một scheme (chỉ đến giao thức được sử dụng), tên máy chủ,
đường dẫn và tên tệp tin như sau:
Scheme Tên Web server Đường dẫn Tên tệp tin
Trong trường hợp URL kết thúc với dấu gạch xéo tới (slash, /) mà không có tên tệp tin
nằm sau, sẽ chỉ đến tệp tin mặc định trong thư mục cuối cùng (trong ví dụ này là web) Một
số tệp tin mặc định là index.htm hay default.htm
URL tuyệt đối : bao gồm toàn bộ đường dẫn đến tệp tin, URL tuyệt đối thường
đùng để liên kết đến một tài nguyên ngoài web site
URL tương đối : mô tả ngắn gọn địa chỉ của tệp tin kết nối trong cùng web site
chứa tệp tin hiện hành (tệp chứa liên kết)
Các scheme khác như: ftp để truyền tệp tin trên mạng, gopher dùng để tìm thông tin, news để gửi và nhận tin trong nhóm, mailto để gửi email, file để dẫn đến một tệp tin trong đĩa
Các khái niệm liên quan:
Web page : trang web, trên world wide web thông tin được hiển thị dưới dạng trang
web, một web page có thể chứa văn bản đã được định dạng, hình ảnh, âm thanh, video v.v
Một trang web còn chứa các siêu liên kết (hyperlink), siêu liên kết cho phép người sử dụng
truy cập đến một trang web khác hay một tài nguyên khác trong cùng website hay trên các website khác
Trang 9HTML document: là một tệp tin văn bản mã ASCII được viết bằng ngôn ngữ HTML,
tệp tin tư liệu HTML được gọi là mã nguồn (source code) của trang web Tệp tin tư liệu
HTML có phần mở rộng htm hay html
Website : Một vị trí trên world wide web, được đặc trưng bởi một tên miền, mỗi wesite
có một trang chủ (home page) là trang web đầu tiên mà người sử dụng gặp đầu tiên khi truy
cập vào website, trang chủ đóng vai trò như là mục lục chỉ đến các tư liệu khác trong website hay địa chỉ của các website liên quan Một website còn chứa các thư mục, các tệp tin, các trang web khác Website của các tổ chức hay cá nhân trên mạng bao gồm tập hợp các trang web liên quan đến tổ chức này
Web browser (còn gọi là web client): Trình duyệt web, là một phần mềm ứng dụng
dùng để định vị và hiển thị các trang web.Có 2 loại web browser: trình duyệt dựa trên văn bản, chỉ hiển thị các thông tin dưới dạng văn bản như Lynx; trình duyệt đồ họa, hỗ trợ hypermedia như âm thanh, hình ảnh, video các web browser đồ họa thông dụng hiện nay:
Microsoft Internet Explorer, Netscape Navigator, Mozilla Firefox, Opera
Web editor: trình soạn thảo web, là một phần mềm soạn thảo các trang web Các phần
mềm FrontPage, Dreamwever là các phần mềm soạn thảo trang web một cách trực quan.Các phần mềm Edit Plus, HTML Kit cho phép trực tiếp tạo ra các tệp tư liệu HTML
Search Engines :Máy tìm kiếm , là chương trình tìm kiếm các tư liệu trên world wide
web dựa và các từ khóa và trả về danh sách các tư liệu phù hợp với từ khóa Các máy tìm kiếm họat động dựa vào các Spider (con nhện) để có thể thu thập các tư liệu cần thiết, một số máy tìm kiếm khác sử dụng Indexer (bộ lập chỉ mục) dựa trên các từ chứa trong các tư liệu
Web portal: một trong những ứng dụng web quan trọng hiện nay, nhất là ứng dụng
trong lĩnh vực chính phủ điện tử Web portal còn được gọi là cổng thông tin (portal) bao gồm một mãng các nguồn tài nguyên và dịch vụ như e-mail, forums, máy tìm kiếm và các dịch vụ
trực tuyến (online service) khác Web portal đầu tiên trên thế giới là AOL; tại Việt Nam các
web portal là: www.hanoi.gov.vn (cổng thông tin của UBND thành phố Hà Nội),
www.egov.gov.vn (cổng thông tin của Chính phủ Việt Nam)
Những ứng dụng web (web-base applications) là những chương trình ứng dụng dựa
trên cơ sở Internet và giao thức HTTP như: E-commerce, E-learning, E-Supermarket, On-line courses mà ta gọi chung là E*
Webblog (còn gọi là blog) là một ứng dụng dựa trên nền tảng của web, còn gọi là trang
web cá nhân dùng để tạo nhật k trực tuyến, có thể trao đổi thông tin Tiền thân của blog là các forum (diễn đàn trực tuyến) Ngày nay có nhiều hãng phần mềm cũng đã xây dựng các server phục vụ xây dựng webblog
RSS là từ viết tắt của Really Simple Syndication (dịch vụ cung cấp thông tin cực kỳ đơn
giản), dịch vụ này cho phép người sử dụng tìm kiếm thông tin cần quan tâm và đăng k để được gửi thông tin đến trực tiếp Ngày nay khối lượng web site ngày càng nhiều, việc duyệt web để tìm kiếm thông tin cần thiết khá mất thời gian, giờ đây ta có thể sử dụng tiện ích này thông qua một dịch vụ cung cấp thông tin mới gọi là RSS
Hiện nay, dịch vụ RSS ngày càng phổ biến Các trang web như BBC, CNN, New York
Times, Tuổi trẻ, Thanh niên, Người lao động đang cung cấp RSS Để sử dụng dịch vụ này
ta cần phải có một phần mềm đọc và hiển thị tệp tin RSS (viết bằng ngôn ngữ XML), các
phần mềm đó gọi là RSS Feed hoặc New Feed Hiện tại có một số trình duyệt đã tích hợp sẵn
tính năng đọc tin RSS như Firefox, Opera, Safari Nếu dùng Microsoft Internet Explorer cần cài đặt một plug-in hỗ trợ đọc RSS như Pluck (tải từ http://www.pluck.com)
Web server và địa chỉ của web server : các trang web mà người sử dụng có thể truy
cập được trên Internet được lưu trữ trên một máy tính đặc biệt được gọi là web server Mỗi web server được định danh bằng một địa chỉ có dạng:
www.tenwebsite.kiểuwebsite.mãquốcgia
Trang 10Riêng đối với các web server đặt tại Mỹ không có mã quốc qua Một địa chỉ website
được xem như là một URL
Internet và Web khác nhau như thế nào?
Internet là mạng của các mạng Về cơ bản nó được tạo thành từ những máy tính và các đường dây cáp Những gì mà Vint Cerf và Bob Kahn đã làm là hình dung ra hệ thống đó nhằm gửi đi những gói nhỏ thông tin Như Vint chỉ ra, mỗi gói thông tin giống như một tấm thiệp với một địa chỉ ghi trên đó Nếu bạn ghi đúng địa chỉ trên “gói tin này” và trao cho bất
kỳ máy tính nào đang kết nối Internet, các chiếc máy tính sẽ xác định xem sẽ sử dụng đường cáp gửi nó lên mạng để chuyển tới điểm đích
Hiện nay có rất nhiều chương trình sử dụng Internet, ví dụ: thư điện tử đã có mặt từ rất lâu trước khi hệ thống siêu văn bản được phát minh và sử dụng trên toàn cầu với tên gọi World Wide Web
Ngày nay có rất nhiều dịch vụ để mã hóa thông tin theo những cách khác nhau và sử dụng các ngôn ngữ khác nhau giữa các máy tính (giao thức) để cung cấp dịch vụ, ví dụ như: hội thảo video trực tuyến, các kênh truyền thanh trên mạng và một số loại hình dịch vụ khác cũng như chính bản thân mạng toàn cầu
Mạng toàn cầu (web) là một không gian ảo chứa thông tin Trên mạng, bạn làm việc với các máy tính; còn trên web, bạn tìm được tài liệu, âm thanh, hình ảnh video… Trên net, kết nối là những sợi cáp nối các máy tính với nhau; còn trên web, kết nối là những đường liên kết siêu văn bản Internet tồn tại được là nhờ những chương trình liên lạc giữa các máy tính trên net Mạng toàn cầu không thể tồn tại nếu không có các mạng cơ sở, nhưng mạng toàn cầu cũng làm cho mạng cơ sở trở nên hữu ích hơn, bởi điều con người thật sự quan tâm là thông tin chứ không phải là máy tính và cáp truyền dữ liệu
1.1.4 Thư điệntử (E-mail)
E-mail là dịch vụ trao đổi thông điệp điện tử bằng mạng viễn thông Các thông điệp này thường được mã hóa dưới dạng văn bản ASCII, tuy nhiên ta có thể gửi những tệp tin hình ảnh, âm thanh, chương trình kèm theo e-mail Giao thức thường dùng để nhận và gửi e-mail là
SMTP (Simple Mail Transfer Protocol) và POP3 (Post Office Protocol version 3) Để sử
dụng dịch vụ e-mail cần phải có:
Địa chỉ email được quản l bởi mail server: như Yahoo, HotMail, Gmail,
1.2 Các kiểu mạng
Mạng máy tính Là tập hợp các máy tính hoặc các thiết bị được nối với nhau bởi các đường truyền vật l và theo một kiến trúc nào đó
Chúng ta có thể phân loại mạng theo qui mô của nó:
Mạng LAN (Local Area Network)-mạng cục bộ: kết nối các nút trên một phạm vi giới hạn Phạm vi này có thể là một công ty, hay một tòa nhà
Mạng WAN (Wide Area Network): nhiều mạng LAN kết nối với nhau tạo thành mạng WAN
MAN (Metropolitan Area Network), tương tự như WAN, nó cũng kết nối nhiều mạng LAN Tuy nhiên, một mạng MAN có phạm vi là một thành phố hay một đô thị nhỏ MAN sử dụng các mạng tốc độ cao để kết nối các mạng LAN của trường học, chính phủ, công ty, , bằng cách sử dụng các liên kết nhanh tới từng điểm như cáp quang
Khi nói đến các mạng máy tính, người ta thường đề cập tới mạng xương sống (backbone) Backbone là một mạng tốc độ cao kết nối các mạng có tốc độ thấp hơn Một công
ty sử dụng mạng backbone để kết nối các mạng LAN có tốc độ thấp hơn Mạng backbone
Trang 11Internet được xây dựng bởi các mạng tốc độ cao kết nối các mạng tốc độ cao Nhà cung cấp Internet hoặc kết nối trực tiếp với mạng backbone Internet, hoặc một nhà cung cấp lớn hơn
Để kết nối tới một mạng WAN, có một số tùy chọn như sau:
Khi một khách hàng cụ thể yêu cầu sử dụng mạng với thông lượng xác định, chúng ta có thể sử dụng các đường thuê bao (leased line)
Các đường chuyển mạch (switched lines) được sử dụng bởi dịch vụ điện thoại thông thường Một mạch được thiết lập giữa phía nhận và phát trong khoảng thời gian thực hiện cuộc gọi hoặc trao đổi dữ liệu Khi không còn cần dùng đường truyền nữa, thì cần phải giải phóng đường truyền cho khách hàng khác sử dụng Các ví dụ về các đường chuyển mạch là các đường POTS , ISDN, và DSL
Mạng chuyển mạch gói là mạng mà trong đó nhà cung cấp dịch vụ cung cấp công nghệ chuyển mạch để giao tiếp với mạng xương sống Giải pháp này cung cấp hiệu năng cao và khả năng chia sẻ tài nguyên giữa các khách hàng
Các giao thức được sử dụng cho các mạng chuyển mạch bao gồm X.25 (64Kbps), Frame Relay (44.736Mbps), và ATM (9.953 Gbps)
Kiến trúc mạng: Một trong những vấn đề cần quan tâm đối với một mạng máy tính
là kiến trúc mạng Nó cập tới hai khía cạnh là Hình trạng mạng và Giao thức mạng
Hình trạng mạng: Là cách nối các máy tính với nhau Người ta phân loại mạng theo hình trạng mạng như mạng sao, mạng bus, mạng ring…
Giao thức mạng: Là tập hợp các qui tắc, qui ước truyền thông của mạng mà tất cả các thực thể tham gia truyền thông phải tuân theo
1.3 Kiến trúc Client – server
Khái niệm client-server đề cập đến mối quan hệ logic giữa các máy tính trên mạng Trong mạng client-server các máy tính được chia thành các máy server và các máy client, các quá trình xử l được phân bổ cho cả máy server lẫn máy client, với mỗi máy có một vai trò chuyên biệt
Server là máy tính chuyên dụng, có khả năng xử l mạnh, lưu trữ lớn Chức năng chủ yếu của server là quản l và lưu giữ các nguồn tài nguyên mà một máy tính khác trên mạng có thể truy cập, ngoài ra server có nhiệm vụ kiểm sóat sự truy cập và bảo mật dữ liệu Tùy theo
chức năng xử l , ta có các loại : file server, web server, database server, mail server,
Server chạy trình chủ (server program)
Client là máy tính truy cập dữ liệu từ server, client chạy trình khách (client program) chịu trách nhiệm về giao diện người sử dụng, và một số quá trình xử l Client là các máy tính thông thường được kết nối với server qua mạng Client gởi các yêu cầu của người sử dụng đến server, server xử l yêu cầu và gởi kết quả về cho client Mạng Internet là một mạng có kiến trúc client-server
Applications Run on server User input sent to
server
Virtual display sent to User PC
SERVER CLIENT
Database
Trang 12Kiến trúc client-server có nhiều ưu điểm, nhất là tính bảo mật và an toàn thông tin nhờ vào các tính năng:
Các tài nguyên mạng được quản l tập trung
Có thể tạo ra các cấp kiểm soát chặt chẽ trong việc truy cập file dữ liệu
Giảm nhẹ việc quản l trên các máy client
Bảo mật và backup dữ liệu
Có thể mở rộng hệ thống khi cần
Tuy nhiên mô hình này cũng có nhược điểm: giá thành cao, server trở thành điểm tối yếu của hệ thống, có nghĩa là khi server bị hư hỏng thì toàn bộ hệ thống không thể họat động
CÂU HỎI VÀ BÀI TẬP
1.1 Phân biệt các khái niệm Intranet và Internet
1.2 Site map là gì ? Trong những home page của các website sau, home page nào có liên
kết đến site map : http://www.nhandan.org.vn, http://edu.net.vn
1.3 Nêu những đặc tính của hai trình duyệt mới nhất : Internet Explorer 7.0 và FireFox 1.4 Tìm hiểu thêm về khái niệm blog (một trong những dịch vụ web hiện đại, có thể tra cứu thông tin tại http://www.webopedia.com và http://www.wikipedia.com)
1.5 Tìm hiểu chức năng và website của hai tổ chức VNNIC và ICANN
1.6 Tại sao nói tên miền là một tài sản (giống như thương hiệu là một tài sản)
1.7 Cho biết website cá nhân của Donald E.Knuth, tác giả của bộ sách nổi tiếng "Nghệ
thuật lập trình máy tính" (The Art of Computer Programming)
Trang 13Chương 2: NGÔN NGỮ SIÊU VĂN BẢN HTML
2.1 Khái niệm cơ bản về ngôn ngữ HTML
Để tham khảo tất cả các thẻ của phiên bản HTML 4.01, là phiên bản HTML mới nhất được chuẩn hóa vào năm 1999 bởi W3C, có thể tìm trong hai địa chỉ có uy tín sau :
- Trang World Wide Web Consortium HTML Specifications (đặc tả ngôn ngữ
HTML của tổ chức W3C): http://www.w3.org/TR/html401/
dẫn tự học về thiết kế web đựa trên nền tảng của HTML, xHTML, XML và WAP:
http://www.w3schools.com/html/
Xu thế phát triển của các ngôn ngữ trên Web đang dần nghiêng về ngôn ngữ XML (eXtensible Markup Language), cũng là một ngôn ngữ con của SGML XML là một ngôn ngữ
mô tả cấu trúc dữ liệu trên Web, cho phép người sử dụng xây dựng các thẻ riêng của mình,
một trong những ứng dụng quan trọng của XML là chuyển đổi dữ liệu giữa các ứng dụng để
trao đổi thông tin trên nền của Web, khác với HTML là ngôn ngữ trình bày dữ liệu trên Web
HTML là ngôn ngữ chủ đạo để xây dựng trang web, nó mô tả cách thức một trang web hiển thị như thế nào trong một trình duyệt HTML là một ngôn ngữ mô tả tài liệu, được hình thành từ ngôn ngữ mô tả tài liệu tổng quát SGML (Standard Generalized Markup Language)
do hãng IBM đề xướng từ năm 1960 HTML không phải là một ngôn ngữ lập trình, nó cung
cấp các chỉ thị định dạng để phục vụ cho việc trình bày văn bản và các đối tượng khác như
hình ảnh, video, các plug-in
HTML (Hypertext Markup language) là ngôn ngữ định dạng siêu liên kết,cho phép định dạng văn bản, bổ sung hình ảnh, và video, cũng như lưu tất cả vào một trong tập tin dưới dạng văn bản hay dưới dạng mã ASCII
Tên gọi ngôn ngữ dánh dấu siêu văn bản phản ánh đúng thực chất của công cụ này
cách thức trình bày đoạn văn bản tương ứng trên màn hình
Language : HTML là một ngôn ngữ tương tự như các ngôn ngữ lập trình, tuy nhiên đơn giản hơn Nó có cú pháp chặt chẽ để viết các lệnh thực hiện việc trình diễn văn bản Các từ khoá có nghĩa xác định được cộng đồng Internet thừa nhận
và sử dụng Ví dụ b = bold, ul = unordered list,
Text : HTML đầu tiên và trước hết là để trình bày văn bản và dựa trên nền tảng là một văn bản Các thành phần khác như hình ảnh , âm thanh, hoạt hình đều phải
"cắm neo" vào một đoạn văn bản nào đó
Hyper : HTML cho phép liên kết nhiều trang văn bản rải rác khắp nơi trên Internet Nó có tác dụng che dấu sự phức tạp của Internet đối với người sử dụng,
có thể đọc mà không cần biết đến văn bản đó nằm ở đâu, xây dựng phức tạp như thế nào Sự phát triển có tính bùng nổ của Internet trong thời gian vừa qua một phần lớn là nhờ vào WWW
Hyperlink: dùng để liên kết các tài liệu này đến tài liệu khác hoặc liên kết đối với bất kì đối tượng nào trên Web như văn bản, hình ảnh, âm thanh Chỉ cần click chuột vào siêu liên kết, tài liệu được liên kết sẽ được hiển thị
2.2 Lập trình web với ngôn ngữ HTML
2.2.1 Các thành phần cơ bản của html
Thẻ (tag): là một tập các k hiệu được định nghĩa trong HTML có nghĩa đặc biệt Thẻ
bắt đầu bằng k hiệu < và kết thức bởi k hiệu >
Trang 14Ví dụ: <bg clear = “left”> Nôi dung</bg>
Phần tử (element): có 2 loại phần tử trong HTML
- Phần tử chứa nội dung: bao gồm thẻ đóng và thẻ mở
Ví dụ: <p>Nội dung </p>
- Phần tử rỗng: bao gồm 1 thẻ
Ví dụ: </br>
Thuộc tính(properties): mỗi thẻ bao gồm một hoặc nhiều thuộc tính đi kèm Thuộc tính
được nhập vào ngày trước dấu ngoặc đóng(>) của thẻ Có thể sử dụng nhiều thuộc tính trong một thẻ Thuộc tính này kế tiếp thuộc tính khác, phân cách nhau bởi khoảng trắng
Ví dụ: <table border=“1”>
Giá trị: Ngoài các thuộc tính không có giá trị còn có các thuộc tính của tag có giá trị Ví
dụ: thuộc tính clear của thẻ </br> có ba giá trị lựa chọn: left,right, all
Thẻ lồng nhau: dùng để chỉnh sửa cách trình bày nội dung trong một trang Web Trật
tự sắp xếp của những thẻ lồng nhau đó là thẻ được mở đầu tiên sẽ là thẻ đóng sau cùng
Ví dụ: <H1> Phần <I>Nội dung</I><H1>
Khoảng trắng: Trình duyệt bỏ qua các khoảng trắng
Tên tệp tin: phải đặt tên tệp tin với phần mở rộng là “.htm” hoặc “.html” điều này giúp
trình duyệt định ra loại tài liệu khi duyệt Để tạo một trang Web, chúng ta có thể sử dụng bất
kỳ một trình soạn thảo nào để tạo ra một trang Web
2.2.2 Cấu trúc tệp HTML
Một trang Web luôn bắt đầu bằng thẻ <html> và kết thúc bởi thẻ </html>
Các trang Web được chia thành 2 phần:
Phần đầu: được đặt giữa hai thẻ <head> và thẻ </head> - định ra tiêu đề, nội dung của tiêu để
Phần thân: đặt giữa 2 thẻ <body> và </body> - chứa nội dung của trang Web
Trang 15Ví dụ: <font face = “Arial, Time new roman”, bold>
Định dạng kích thước chữ: dùng để định kích thước cho toàn bộ văn bản
Cú pháp: <Basefont size = “n”>
n mang giá trị từ 1 đến 7 Giá trị mặc định là 3
Định màu cho văn bản
Cú pháp: <Font color = “Giá trị”></Font>
Color: là màu dùng cho chữ Giá trị màu có thể gõ bằng chữ hoặc hệ số hexa (16)
Ví dụ: <Font color=“red”> Lớp lập trình Web </font>
<Font color=“#FF000”> Lớp lập trình Web</font>
Định dạng chữ
Thẻ <B>nội dụng</B> hoặc <Strong>Nội dung</Strong>
Thẻ <I>nội dụng</i> hoặc <em>nội dụng</em>
Thuộc tính align: canh đoạn văn bản Align có thể nhận các giá trị sau
Left: nội dụng trong đoạn được canh trái
Center: nội dung trong đoạn được canh giữa
Thẻ phân cấp đề mục:
Trong HTML cho phép sử dụng 6 cấp đề mục trong trang Web
Cú pháp: <Hn>Nội dung</Hn> với n mang giá trị từ 1 tới 6
Ví dụ:
<H1> Giám đốc </H1>
<H2> Phó giám đốc </H2>
<H3> Nhân viên </H>
Chèn hình ảnh vào trang Web
Cú pháp: <IMG SRC= “tên tập tin chứa hình ảnh>
Tên tệp tin chứa hình ảnh có cả đường dẫn thư mục Nếu tệp tin hình ảnh được đặt cùng thư mục với thư mục chứa trang Web thì không cần đường dẫn thư mục
Ví dụ <IMG SRC=“images/anh1.jpg”>
Thêm đường viên xung quanh hình ảnh
Cú pháp: <IMG SRC=“tên file” Border=“n”>
Với n là độ dày của đường biên ảnh, tính bằng pixel
Ví dụ <IMG SRC=“images/anh1.jpg” border=“2”>
Canh chỉnh hình ảnh
Cú pháp: <IMG align=“giá trị”>Nội dung
Trang 16Giá Trị:
left: hình ảnh nằm bên trái màn hình
Ví dụ <image src="IBM.jpg" align=“left">Xin chào
Thêm chữ xung quanh hình ảnh
Cú pháp: <IMG SRC=“tên file” align=“giá trị”> Nội dung
Giá trị
Top: ví trí văn bản nằm ở phái trên hình ảnh
middle: vị trí văn bản nằm ở giữa hình ảnh
bottom: vị trí văn bản nằm ở dưới hình ảnh
Chèn ảnh nền
<html>
<body background="background.jpg">
<h3>Look: A background image!</h3>
<p>Both gif and jpg files can be used as HTML backgrounds.</p>
<p>If the image is smaller than the page, the image will repeat itself.</p>
</body>
</html>
Đường kẻ ngang trang Web
Thẻ <HR>: dùng để kẽ đường ngang trên trang Web, giúp trang Web rõ ràng hơn
Cú pháp: <HR size=“n” width=“w” align=“giá trị”>
Width: chiều rộng của đường kẻ tính bằng pixel
Align: canh đường kẻ Có 3 giá trị left,right, center
Định màu nền cho trang Web
Để định mầu nền cho trang Web, bổ sung thuộc tính bgcolor vào trong thẻ BODY
Cú pháp <BODY bgcolor=“color”>
Color là màu cần định cho trang Web
Định ảnh nền cho trang Web
Dùng hình ảnh làm nền cho toàn trang Web thày vì sử dụng màu nền
Cú pháp <BODY background=“tên tệp”>
Tên tệp là tên tệp tin hình ảnh càn làm nền cho trang Web
Xuống dòng trong trang Web
Cú pháp <BR>
Tạo danh sách theo thứ tự
Cú pháp
<OL Type = X START=n>
<LI> Nội dung mục 1
<LI> Nội dung mục 2
…
<LI> Nội dung mục N
</OL>
Trang 17Trong đó X đỉnh kiểu k hiệu sẽ được sử dụng trong danh sách
I,I,1
N là giá trị bắt đầu của danh sách
Tạo chấm tròn (bullet) cho danh sách
Cú pháp
<UL Type=“kiểu chấm tròn”>
<LI> Nội dung mục 1
<LI> Nội dung mục 2
…
<LI> Nội dung mục N
</UL>
Trong đó “kiểu chấm tròn” mang một trong 3 giá trị sau:
disc: kiểu dấu chấm tròn đậm
Circle: kiểu dấu chấm tròn rỗng
Tạo danh sách định nghĩa:
Là loại danh sách có dạng một từ hay một cụm từ kèm theo nội dung dài, rất thích hợp giải thích nghĩ của nội dung
Cú pháp: sử dụng các thẻ <DL>, <DT>, <DD>
<DL>: để tạo danh sách định nghĩa
<DT> :đánh dấu thuật ngữ được định nghĩa trong danh sách
<DD>: giải thích thuật ngữ ở trên
2.3.3 Tạo liên kết (link)
Liên kết là đặc trưng WWW, cho phép người dùng chuyển từ mục này sang mục khác trong cùng một trang hoặc chuyển sang một trang Web này sang một trang Web khác
Liên kết trong cùng một trang Web:
Cho phép liên kết đến các mục bên trong một trang Web
Cú pháp: <a name=“tên điểm neo cần tạo”>NDung</A>
Tạo liên kết đến điểm neo
Cú pháp: <a href=“#tên điểm neo cần liên kết đến”</A>
Dấu # báo cho trình duyệt biết liên kết này là nội bộ
Trang 18Tạo liên kết đến các trang Web khác
Cú pháp <A href=“URL”>Nội dung</A>
Ví dụ: <a herf= http://www.vimaru.edu.vn >DHHH</A>
Thuộc tính:
Target=“giá trị”: mở liên kết ở vị trí nào?phụ thuộc giá trị
_blank:nạp liên kết vào một cửa sổ trống mới
_parent: nạp liên kết vào cửa sổ cha gần nhất của trang Web hiện thời
_self: nạp liên kết vào cùng cửa sổ với trang Web hiện hành
_top: nạp liên kết vào cửa sổ cao nhất
2.3.4 Một số kí tự đặc biệt trong HTML
HTML dùng các kí tự < và > để mở và đóng 1 thẻ, do đó không thể hiện các k tự đặc biệt này Vì vậy cần có một nhóm k tự thay thế
2.3.5 Các thẻ dùng thiết kế bảng
Tạo mới một bảng
Cú pháp: <Table ></Table>:
Thuộc tính:
Cellspacing: định khoảng cách giữa các ô
Height: định chiều cao bảng
Trang 19 Width: định chiều rộng bảng
Rules: hiển thị đường viền trong
Tạo mới một hàng trong bảng
Cú pháp: <TR>Nội dung</TR>
Thuộc tính:
Tạo mới một đề nục trong bảng
Cú pháp: <TH></TH>,<TD></TD>
Thuộc tính:
Width, height: đình chiều rộng, cao cho ô
Tạo khung viền cho bảng
Cú pháp: <Table border=“n”>
Thay đổi màu khung
Cú pháp: <Table bordercolor=“mầu”>
Thiết lập độ rộng cột
Cú pháp: <table width = “giá trị”>
Thiết lập tiêu đề cho bảng
<frame name=“tên frame” src=“tên tệp tin sẽ hiển thị”>
<frame name=“tên frame” src=“tên tệp tin sẽ hiển thị”>
</Frameset>
Trong đó:
a: chiều cao frame đầu tiên
*:chiều cao của frame thứ 2 là khoảng trống còn lại
b:chiều cao của frame thứ 3
Tạo Frame có dạng cột
Cú pháp:
<Frameset cols=“a,*,b”>
<frame name=“tên frame” src=“tên tệp tin sẽ hiển thị”>
<frame name=“tên frame” src=“tên tệp tin sẽ hiển thị”>
Trang 20</Frameset>
Scorlling = “yes/no”: ẩn/hiện thanh cuộn
Noresize: không cho thay đổi kích thước của khung
“name” là chuỗi kí tự nhận diễn dữ liệu nhập vào,
người duyệt không gõ thông tin gì, size định kích thước của Textbox, maxlength giới hạn số kí tự nhập vào Textbox
Tạo Textbox với vùng văn bản chứa nhiều dòng
Cú pháp: <textarea name = “name” rows = “n”, cols = “m” wrap><textarea>
Trong đó
“name” là chuỗi kí tự nhận diện dữ liệu nhập vào,
n là chiều cao của vùng văn bản tính bằng dòng (mặc định = 4),
m là chiều rộng của vùng văn bản tính bằng kí tự (mặc định = 40)
Tạo nút Radio button:
Radio là nút chì được họn một trong số đó, không thể chọn lựa hai nút cùng lúc
Cú pháp <input type = “radio name = “name” value = “data” checked>
Tạo ô chọn (checkbox):
khác với Radio, checkbox cho phép chọn nhiều nút trong một nhóm
Cú pháp <input type = “checkbox” name = “set” value = “value” checked>
Tạo nút Push button (nút nhấn)
Cú pháp<input type = “button” value = “nhãn”>
Để tạo nút nhấn khi người dùng nhấn vào, dữ liệu của các điều khiển khác đều được đặt giá trị mặc định lúc khởi tạo, có thể chỉ định thuộc tính type =”reset” trong tag <input> Tạo nút nhấn đề kết thục việc nhập dữ liệu của một Form, ta chỉ định thuộc tính type = “submit” trong thẻ <input>
Tạo Dropdown Listbox: là danh sách chứa nhiều mục
CÂU HỎI VÀ BÀI TẬP
1 Các trang web của báo Tuổi trẻ điện tử (http://www.tuoitre.com.vn) có phần mở rộng
là tto, tại sao trình duyệt vẫn đọc và hiển thị được ?
2 Cho một tệp tin văn bản có tên khoatin.dhhh có nội dung sau:
<HTML><BODY>
Khoa Tin học Trường Đại học Hàng Hải
</BODY></HTML>
Trang 21Đây có phải là một tư liệu HTML không? và nội dung hiển thị trên cửa sổ trình duyệt
6 Xem xét trang web sau đây có tên myfirstpage.html, bạn cần phải đưa lên server những file nào để đảm bảo trang web hiển thị đúng như mong muốn:
<HTML><HEAD><TITLE> My First Page </TITLE> </HEAD>
<BODY background="joy.gif">
<H1> My Web page</H1>
<P> On happy joy I have a page on the web! </P>
<A href="otherpage.html"> Click here for other page </A>
</BODY></HTML>
7 So sánh tốc độ hiển thị một trang web chứa một bảng có độ rộng khai báo bằng giá trị tương đối với một trang web khác cũng chứa một bảng như vậy nhưng khai báo độ rộng bằng giá trị tuyệt đối (tính bằng pixel)
8 Viết một tệp tư liệu HTML để tạo một form Guesbook hỏi một người nào đó về họ tên, giới tính, tuổi, địa chỉ và email của họ Giả sử bạn có một script để xử l form đặt tại /CGI/SCRIPT và bạn cần đưa vào thành phần ẩn sau đây để cho script biết địa chỉ
để gửi các kết quả:
<INPUT type="hidden" id="mailto" value=you@yoursite.com>
9 Nghiên cứu cách bố cục các trang web của các website : http://www.ud.edu; http://www.edu.net.vn; http://www.nhandan.org.vn
Trang 22CHƯƠNG 3 NGÔN NGỮ KỊCH BẢN JAVASCRIPT
3.1 Mở đầu
Script hay kịch bản, theo thuật ngữ lập trình, là chương trình chạy với chế độ thông dịch trên máy khách (client) hay máy chủ (server) nhằm tạo ra các ứng dụng web (web base application) Xét trên phương diện:
- client-side : các script bổ sung vào trang web cho phép tạo ra các trang web tương tác,
có những hiệu ứng động dựa vào mô hình đối tượng trình duyệt (BOM: browser object model)
- server-side: sử dụng các đối tượng liên quan để chạy các script trên server
Các ngôn ngữ kịch bản cho phép phát triển nhanh và dễ dàng các chương trình đơn giản hơn là các ngôn ngữ lập trình dạng biên dịch như C, C++,Java,C#, v.v
Hai ngôn ngữ kịch bản thông dụng hiện nay là :
JavaScript do hãng Netscape phát triển từ năm 1995 với tên ban đầu là LiveScript, chú rằng JavaScript không có liên quan gì đến ngôn ngữ lập trình Java của hãng Sun, nó có tên như vậy là vì mục đích tiếp thị của hãng Netscape dựa vào sự nổi tiếng của ngôn ngữ lập trình Java Phiên bản hiện nay là JavaScript 1.5, chạy trên nhiều trình duyệt nên rất được ưa chuộng
để viết các script cho các trang web Trước sự phát triển và ảnh hưởng của JavaScript, hãng Microsoft đã đưa ra JScript
VBscript do Microsoft phát triển, VBscript là một tập con của ngôn ngữ lập trình Visual Basic, các script viết bằng VBscript thích hợp cho môi trường Windows, phía client nó chỉ chạy trong môi trường IE nên không được ưa chuộng, phía server nó thích hợp với hệ điều hành Windows NT, Windows 2000 Server để xây dựng các trang ASP
Năm 1996, Netscape đã đệ trình JavaScript cho ECMA (European Computer Manufacturers Association, một tổ chức phi lợi nhuận có sự tham gia của các công ty phần mềm, máy tính lớn trên thế giới như IBM, Microsoft, NEC, Sun , được thành lập năm 1991,
có chức năng chuẩn hóa WWW) để chuẩn hóa, ECMA chỉ tập trung chuẩn hóa phần lõi của JavaScript, còn khác phần khác như mô hình đối tượng tư liệu (DOM) dành cho các nhà phát triển, do vậy vấn đề lớn nhất còn tồn tại sự khác nhau giữa các trình duyệt là DOM
Hiện nay, JavaScript là ngôn ngữ kịch bản chủ yếu để xây dựng các ứng dụng web chạy phía client, tuy nhiên cần phải chú hai đặc điểm quan trọng:
JavaScript có thể làm được gì ?
DHTML là tập hợp các công cụ cho phép tạo ra các trang web tương tác, có thể thay đổi nội dung và thể hiện
Điều khiển trình duyệt
Xử l dữ liệu trong các ứng dụng cilent-side, kiểm tra tính hợp lệ dữ liệu trong các form
Lưu các trạng thái trong cookies
Trang 23Selector thường là các thẻ HTML mà bạn muốn định nghĩa thêm Property là thuộc tính
mà bạn muốn thay đổi; mỗi một thuộc tính cần phải có một giá trị Một thuộc tính và giá trị của nó được phân cách nhau bởi dấu hai chấm (:) Hai cặp thuộc tính-giá trị được phân cách nhau bởi dấu chấm phảy (;) Toàn bộ các cặp thuộc tính-giá trị của một thẻ HTML được đặt trong cặp dấu ngoặc nhọn ({})
3.2.1 Kiểu dữ liệu
So với các ngôn ngữ lập trình khác, JavaScript sử dụng ít kiểu dữ liệu, hai kiểu dữ liệu được chấp nhận :
Kiểu dữ liệu cơ sở chỉ chứa một giá trị đơn như số, chuổi k tự và giá trị logic
Kiểu số như số nguyên, JavaScript chấp nhận miền giá trị kiểu nguyên trong khoảng giữa -253 và 253 ; số dấu chấm động (floating-point numbers) được viết dưới dạng thông thường như 3.14 hay dưới dạng khoa học như 0.5e10
Kiểu boolean gồm hai giá trị true và false
Kiểu chuổi k tự là một chuổi có thể không có k tự nào hay nhiều k tự được bao trong cặp dấu nháy kép hay cặp dấu nháy đơn
Kiểu Null chỉ có một giá trị là null, có nghĩa là không có dữ liệu, chú rằng zero và chuổi rỗng không phải null
Kiểu Indefined chỉ có một giá trị indefined, có nghĩa biến đã khai báo nhưng chưa xác định kiểu
Infinity là từ khóa chỉ một giá trị vượt quá giới hạn xử l của JavaScript NaN là một từ khóa chỉ một biểu thức không thể trả về kiểu số, ví dụ : 7*"abc";
Kiểu dữ liệu phức (composite data type) gồm các kiểu đối tượng (object), mảng (array) Chúng ta sẽ nghiên cứu kỹ hai kiểu dữ liệu này trong phần sau của chương này
Chuyển kiểu dữ liệu
JavaScript là một kiểu ngôn ngữ động, cho phép ta không cần chỉ rõ kiểu dữ liệu của một biến khi khai báo nó, kiểu dữ liệu của một biến được tự động chuyển sang kiểu phù hợp trong quá trình thi hành script
Trang 24Ví dụ:
var new_amount;
var answer = null;
result = 'Unknown result';
result = 10;
- Phạm vi của biến phụ thuộc vào vị trí khai báo biến trong script Nếu biến được khai báo ngoài hàm (function), nó được xem là biến toàn cục và có thể được sử dụng tại mọi nơi trong script, ngược lại nếu biến được khai báo trong một hàm, nó được xem là biến cục bộ và chỉ được sử dụng trong hàm đó mà thôi
Ví dụ :
<script language = "JavaScript">
function tinhTong(){
var a = prompt("Nhap a:"); // biến cục bộ
var b = prompt("Nhap b:"); // biến cục bộ
Toán tử gán (=) dùng để gán một giá trị cho một biến JavaScript có nhiều phương
pháp thực hiện toán tử gán :
X = 10; // giá trị 10 được gán cho biến X
Trang 25total = mathematics + physics + chemistry // gán một biểu thức cho biến
a+ = 3 // dạng viết rút gọn, tương tự như a = a+3; dạng rút gọn này có thể áp dụng cho các toán tử số học và các toán tử & (and) , ^ (xor), | (or)
Các Toán tử số học: +, -, *, /, %, ++, , các toán tử một ngôi +, -
Chú ý :
++x sẽ trả lại giá trị của x sau khi tăng x thêm 1
x++ sẽ trả lại giá trị của x trước khi tăng x thêm 1
Các toán tử logic : && (and), || (or) , ! (not)
Toán tử string +, dùng để nối hai chuổi k tự Ví dụ:
"Da Nang"+" "+"City" trả về kết quả "Da Nang City"
41+" Le Duan" trả về kết quả "41 Le Duan" (chuyển kiểu dữ liệu trước khi ghép chuổi) Lưu : 2 - '1' = 1 (chuyển kiểu dữ liệu trước khi thực hiện phép trừ)
Toán tử Bit xử l các toán hạng như là một tập hợp 32 bit, kết quả trả về kiểu số chuẩn
của JavaScript
15 << 3, có nghĩa dịch sang trái 3 bit của dãy 1111, kết quả là 1111000 (120)
15 >> 3, có nghĩa dịch sang phải 3 bit của dãy 1111, kết quả là 1
25>>>3, có nghĩa dịch sang phải 3 bit của dãy 11001 và điền 0 vào vị trí các bit trống, kết quả là
Một số toán tử đặc biệt:
- Toán tử điều kiện có cú pháp: condition ? expr1 : expr2
Trang 26condition là một biểu thức logic, nếu true thì toán tử trả về giá trị expr1, ngược lại trả về giá trị expr2
Ví dụ : status = (age>=18 ? "aldult" : "minor")
- Toán tử , (comma) lượng giá cả hai toán hạng và trả về tóan hạng thứ hai
Ví dụ : x = (a++,c)*(b++,d) // tương đương với x = c*d
- Toán tử typeof trả về một chuỗi k tự xác định kiểu dữ liệu của toán hạng, kiểu dữ
liệu của toán hạng có thể là : số, chuổi, logic, đối tượng (object, array, null), function và
undefined
- Toán tử new được dùng để tạo ra một thể hiện (instance) của một kiểu đối tượng có
hàm khởi dựng Kiểu đối tượng này có thể là do người sử dụng định nghĩa, đối tượng dựng
sẵn hay đối tượng mãng Cú pháp :
objectName = new objectType (param1 [,param2] [,paramN]);
Trong đó :
objectName : tên của thể hiện đối tượng
parami : là các giá trị của các thuộc tính của đối tượng
- Toán tử this được dùng như một từ khóa tham chiếu đến một thuộc tính của đối tượng
// đối tượng do người sử dụng định nghĩa
function nhanVien(hoten, maso, chucdanh){
this.hoten = hoten;
this.maso = maso;
this.chucdanh = chucdanh;
}
var nhanVienMoi = new nhanvien("Le Van", "001","Quan ly")
document.write("Ho va ten :" + nhanVienMoi.hoten+"<br>");
// Date() là đối tượng dựng sẵn của JavaScript
var homNay = new Date();
var ngay = homNay.getDate();
var thang = homNay.getMonth();
var nam = homNay.getYear();
// getDate(), getMonth, getYear() là các phương thức của Date()
Trang 27document.write("Hom nay,ngay :" + ngay+"/"+thang+"/"+nam);
xInt = Math.round(y); // gọi hàm round của đối tượng Math và gán giá
trị cho biến xInt
window.alert("Kinh chao"); // gọi hàm alert của đối tượng window
Câu lệnh có cấu trúc gồm có : khối lệnh và các câu lệnh điều khiển (control
statements), lệnh with (dùng cho kiểu Object)
Khối lệnh được bao bởi cặp k hiệu { và } Ví dụ:
Các câu lệnh điều khiển : câu lệnh lựa chọn, câu lệnh lặp
3.2.5 Câu lệnh điều kiện
Trong JavaScript có hai câu lệnh điều kiện: câu lệnh if cho phép chương trình chọn một trong hai lựa chọn và câu lệnh swich cho phép chương trình chọn một trong nhiều lựa chọn
Câu lệnh if
Cú pháp : câu lệnh if được viết theo một trong bốn dạng sau:
if (biểu thức logic) câu lệnh ;
Trang 28}
( Hàm isNaN kiểm tra một giá trị và trả về true nếu đó là một số, ngược lại trả về false nếu không phải là một số)
Mệnh đề else : dùng trong trường hợp có hai sự lựa chọn tùy theo giá trị của biểu thức
logic Dạng câu lệnh này được gọi là câu lệnh if-else Cú pháp:
if (biểu thức logic) { khối lệnh 1; }
else {khối lệnh 2;}
Cấu trúc else if: ta thường gọi các câu lệnh if lồng nhau, dùng để chọn một lựa chọn trong nhiều lựa chon Có bốn cách viết câu lệnh if lồng nhau, ta thường sử dụng hai cách viết sau:
if (biểu thức logic 1) { khối lệnh 1; }
else if (b!=0) window.alert("Phuong trinh vo nghiem");
else window.alert("Phuong trinh co vo so nghiem);
Trang 29
Câu lệnh switch
Câu lệnh switch có vai trò giống như câu lệnh if-else, câu lệnh switch lượng giá của một biểu thức và so sánh giá trị này với một trong nhiều giá trị trong mệnh đề case để thực hiện lệnh và thóat khỏi câu lệnh switch với câu lệnh break Cú pháp:
Từ khóa case là một nhãn, nó đánh dấu một điểm trong mã script để thực hiện một lệnh
Ví dụ : Nhập vào một mã số tỉnh / thành phố và in ra tên của tỉnh / thành phố đó
<HTML><BODY>
<SCRIPT language="JavaScript">
var bc = window.prompt("Nhap ma tinh/thanh pho: ");
// Lưu : hàm prompt trả về giá trị kiểu chuổi
Trang 30for(khởi tạo; biểu thức điều kiện;thay đổi giá trị) {câu lệnh;}
Phần khởi tạo dùng để khai báo các biến và gán giá trị khởi đầu.Phần biểu thức điều kiện để lượng giá trước mỗi lần lặp Phần thay đổi giá trị chứa mã lệnh sẽ được thực hiện sau mỗi lần lặp
Các thành phần của lệnh for là tùy chọn, lệnh sau đây thực hiện vòng lặp vô tận : for( ;
; ){ // không thực hiện gì }
Ví dụ: Tính tổng từ 1 đếm 100 Ta có thể thực hiện bằng các script như sau
Câu lệnh for đầy đủ các khai báo:
Câu lệnh for sử dụng với lệnh continue
Vd: In ra màn hình các số trong phạm vi từ 1 đến 100 chia hết cho 17
Trang 31for(var i=1; i<=100; i++){
if (i % 17 !=0) continue;
document.write(i+"<br>");
}
Câu lệnh for in
Cú pháp : for (biến in đối tượng) { lệnh ; }
Đây là câu lệnh thường được dùng để truy xuất các thuộc tính của một đối tượng mà chúng ta sẽ nghiên cứu ở chương sau
3.3 Tương tác giữa JavaScript và HTML
JavaScript là một ngôn ngữ kịch bản họat động trên client-side và server-side, nhưng hiện nay nó được sử dụng để xây dựng các ứng dụng cho client-side, muốm vậy phải nhúng các mã kịch bản vào trong tệp tin tư liệu HTML Có hai phương pháp : sử dụng thẻ
<SCRIPT> của ngôn ngữ HTML và liên kết đến một tệp tin văn bản mã ASCII chứa các mã JavaScript
3.3.1 Sử dụng thẻ <SCRIPT>
Toàn bộ mã JavaScript được đặt bên trong cặp thẻ <SCRIPT> và </SCRIPT> Khi trình duyệt xử l tệp tin HTML, gặp thẻ <SCRIPT> nó sẽ đọc toàn bộ các dòng lệnh cho đến khi gặp thẻ </SCRIPT>, thông dịch và thực hiện lệnh, nếu có lỗi sẽ thông báo trên cửa sổ alert
<!- dấu mã JavaScript đối với những trình duyệt cũ ->
Trang 32</HTML>
Trong đó
Nơi viết các biến toàn cục, các hàm dùng trong trang web
Nơi gọi các hàm hay các đoạn mã JavaScript khác
3.3.2 Sử dụng các tệp tin bên ngoài
<SCRIPT language="JavaScript" type = "text/js" SRC="fileName1.js> </SCRIPT>
<SCRIPT language="JavaScript" type = "text/js" SRC="fileNameN.js> </SCRIPT> Thẻ <SCRIPT> có các thuộc tính:
- language có giá trị là một ngôn ngữ kịch bản cùng phiên bản của nó, có thể là :"JavaScript 1.5", "JScript 5.6", "ECMAscript 262", "VBscript"
- type = "text/js" báo cho trình duyệt biết tệp tin bên ngoài có thể có phần mở rộng là js hay txt đều được, đây là thuộc tính tùy chọn
- SCR xác định URL dẫn đến một tệp tin JavaScript đặt bên ngoài tệp HTML
Khi muốn sử dụng các biểu thức của JavaScript để làm giá trị thuộc tính cho một thẻ HTML ta dùng cú pháp: thuộc tính ="&{biểu thức};"
Ví dụ :
<SCRIPT language="JavaScript"> var d=70; </SCRIPT>
<BODY>
<TABLE border=1 width="&{d};%>
<TR><TD> Nội dung 1</TD><TD> Nội dung 2</TD></TR>
</TABLE>
</BODY>
3.4 Các đối tượng của trình duyệt
Trình duyệt là một ứng dụng dùng để hiển thị các nội dung của một tư liệu HTML Các trình duyệt cũng đã đưa ra một số đối tượng để các script có thể truy cập, các đối tượng này được tổ chức theo một mô hình phân cấp, gọi là mô hình đối tượng trình duyệt (BOM, Browser Object Model) Trong 9 đối tượng của BOM, đối tượng quan trọng nhất là đối tượng document BOM đóng vai trò như là một API (Application Programming Interface) cho việc lập trình các ứng dụng trên nền tảng web cho client-side hay cách khác: chính trong môi trường trình duyệt, JavaScript dựa vào mô hình này để truy xuất các đối tượng trên một trang
web để cập nhật nội dung, cấu trúc và kiểu dáng của đối tượng
Mỗi đối tượng trong BOM là một tập hợp gồm :
- Các thuộc tính (Properties)
- Các phương thức (Methodes)
Ngoài ra còn có các sự kiện (Events) có thể kết hợp trên đối tượng xác định
Trong giáo trình này, người viết dựa trên quan điểm của Peter Kantor (Đại học Hudson Valley, NY), chỉ trình bày về BOM mà không trình bày về DOM (Document Object Madel) vốn là một lĩnh vực rộng lớn, phù hợp cho XML hơn Tuy nhiên, các tham khảo về DOM cũng có những lợi ích khi lập trình web
Trong IE BOM, đối tượng lớn nhất là đối tượng window, còn trong NN BOM, đối tượng window và đối tượng navigator là ngang cấp
Sự khác nhau giữa IE BOM và NN BOM chủ yếu là các đối tượng và các thuộc tính
và phương thức của mỗi đối tượng