Giáo trình Thiết kế và lập trình Web

pdf 123 trang vanle 2760
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Thiết kế và lập trình Web", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_thiet_ke_va_lap_trinh_web.pdf

Nội dung text: Giáo trình Thiết kế và lập trình Web

  1. 1 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ịch vụ 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ạng má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ông nghệ 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ả
  2. 2 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 Computer- PC), 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ử
  3. 3 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 vi từ 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ịch vụ 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ện hà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ỷ nh- ng 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
  4. 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ần TCP 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 Internet ngà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ện mọ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).
  5. 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ức phâ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ên dữ 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ói chung 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.
  6. 6 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 Transfer Protocol-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ỉ IP cò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 0 NET ID (7 bits) HOST ID (24 bits) 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) Hình 1.2. Cấu trúc các lớp địa chỉ lớp IP
  7. 7 - 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à “ ” 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 ta dễ 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ị.
  8. 8 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 Server là 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ứng và một hệ điều hành cụ thể. Một Web Server phải có cấu hình đủ mạnh để cung cấp cá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ệu nă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ủ.
  9. 9 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ển cá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ải chú ý đế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
  10. 10 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, do vậ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 giao thức nào? Chức nă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
  11. 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ở và thẻ đóng . 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ẻ dùng để định dạng chữ in đậm, khi đó văn bản " Hello " 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ẻ , 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 thông báo kết thúc một tài liệu HTML. Cú pháp: Toàn bộ nội dung của tài liệu đ−ợc đặt ở đây Trình duyệt sẽ xem các tài liệu không sử dụng thẻ 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ần mở đầ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
  12. 12 đề 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ẻ đ−ợc dùng để xác định phần mở đầu cho tài liệu. Cú pháp: Phần mở đầu (header) của tài liệu đ−ợc đặt ở đây 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ẻ . Cú pháp: Tiêu đề của tài liệu đ−ợc đặt ở đây 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: phần nội dung của tài liệu đ−ợc đặt ở đây Trên đây là cú pháp cơ bản của thẻ , 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ẻ . Nh− vậy một tài liệu HTML cơ bản có cấu trúc nh− sau: Tiêu đề của tài liệu Nội dung của tài liệu 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.
  13. 13 BGCOLOR= Đặt mầu nền cho trang khi hiển thị. Nếu cả hai tham số BACKGROUND và BGCOLOR cù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= Xác định màu sắc cho các siêu liên kết trong văn bản. VLINK= T−ơng ứng, alink (active link) là liên kết đang đ−ợc kích LINK= 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ẻ Thẻ đ−ợc sử dụng để định dạng một đoạn văn bản. Cú pháp: Nội dung đoạn văn bản 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: Định dạng đề mục cấp 1 Định dạng đề mục cấp 2 Định dạng đề mục cấp 3 Định dạng đề mục cấp 4 Định dạng đề mục cấp 5 Định dạng đề mục cấp 6
  14. 14 c. Thẻ xuống dòng Thẻ này không có thẻ kết thúc t−ơng ứng ( ), 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ền nhau, 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ẻ . d. 2.4 Thẻ Để giới hạn đoạn văn bản đã đ−ợc định dạng sẵn ta có thể sử dụng thẻ . 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ẻ 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: Văn bản đã đ−ợc định dạng 2.2.3 Các thẻ định dạng danh sách Cú pháp: Mục thứ nhất Mục thứ hai Có 4 kiểu danh sách: • Danh sách không sắp xếp ( hay không đánh số) • Danh sách có sắp xếp (hay có đánh số) , mỗi mục trong danh sách đ−ợc sắp xếp thứ tự. • Danh sách thực đơn • Danh sách phân cấp 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: Muc thu nhat Muc thu hai Muc thu ba 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ẻ 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).
  15. 15 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 In chữ đậm In chữ nghiêng In chữ gạch chân Đánh dấu đoạn văn bản giữa hai 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 đó. In chữ bị gạch ngang. 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ẻ 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ẻ sẽ không có ý nghĩa. 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ẻ 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ẻ sẽ không có ý nghĩa. Định dạng chỉ số trên (SuperScript) Định dạng chỉ số d−ới (SubScript) Đị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ẻ không có thẻ kết thúc. 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.
  16. 16 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− , , đều có tham số ALIGN cho 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: Văn bản sẽ đ−ợc căn giữa trang 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 Đỏ #FF0000 RED Đỏ sẫm #8B0000 DARKRED Xanh lá cây #00FF00 GREEN Xanh nhạt #90EE90 LIGHTGREEN Xanh n−ớc biển #0000FF BLUE Vàng #FFFF00 YELLOW Vàng nhạt #FFFFE0 LIGHTYELLOW Trắng #FFFFFF WHITE
  17. 17 Đen #000000 BLACK Xám #808080 GRAY Nâu #A52A2A BROWN Tím #FF00FF MAGENTA Tím nhạt #EE82EE VIOLET Hồng #FFC0CB PINK Da cam #FFA500 ORANGE Màu đồng phục hải #000080 NAVY quân #4169E1 ROYALBLUE #7FFFD4 AQUAMARINE Cú pháp: phần nội dung của tài liệu đ−ợc đặt ở đây Sau đây là ý nghĩa các tham số của thẻ : 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êu liê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
  18. 18 e. Chọn kiểu chữ cho văn bản Cú pháp: nội dung đoạn văn bản 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êu vă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). Dịch vụ Cổng Tên file Tên hệ thống Đ−ờng dẫn Các tham số, biến, truy vấn 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ộc củ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ên miề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ối vớ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ần bắ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à
  19. 19 index.html, index.htm, default.html hay default.htm (với các Web site động thì file mặc định có thể có phần mở 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ần bắ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ẻ ý 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ần tham 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: thì:
  20. 20 • 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ẻ . h. Kết nối mailto Nếu đặt thuộc tính href= của thẻ 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. Trang WEB này đ−ợc WEBMASTER bảo trì i. Vẽ một đ−ờng thẳng nằm ngang Cú pháp: ý 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ẻ , nó cũng không có thẻ kết thúc t−ơng ứng.
  21. 21 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 .pdf Viết tắt của Portable Document Format. Acrobat 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 .mov Do Apple Computer đ−a ra, chuẩn video này đ−ợc Time 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
  22. 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 .ram Định dạng audio theo dòng. Một bất tiện khi sử Audio 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: Thẻ này không có thẻ kết thúc t−ơng ứng ( ). Để chơi lặp lại vô hạn cần chỉ định LOOP = -1 hoặc LOOP = INFINITE. Thẻ phải đ−ợc đặt trong phần mở đầu (tức là nằm trong cặp thẻ ). 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
  23. 23 DYNSRC = url START = FILEOPEN/MOUSEOVER LOOP = n> Trong đó: Các tham số ý nghĩa ALIGN = TOP/ MIDDLE/ Căn hàng văn bản bao quanh ảnh BOTTOM/ LEFT/ RIGHT 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ần chè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 = Chỉ định file video sẽ đ−ợc chơi khi tài liệu đ−ợc FILEOPEN/MOUSEOVER 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: <AREA SHAPE = RECT/CIRC/POLY
  24. 24 COORDS = coords HREF = url TITLE = text TARGET = _blank / _self > Chèn ảnh: Ví dụ minh họa: Image map Hình 2.1 Minh họa sử dụng Images map
  25. 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 Định nghĩa một bảng Định nghĩa một hàng trong bảng Định nghĩa một ô trong hàng Định nghĩa ô chứa tiêu đề của cột Tiêu đề của bảng Cú pháp: Tiêu đề của bảng biểu Định nghĩa các dòng Định nghĩa các ô trong dòng Nội dung của ô
  26. 26 ý nghĩa các tham số: Các tham số ý nghĩa ALIGN / VALIGN Căn lề cho bảng và nội dung 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 Màu phía tối và phía sáng cho đ−ờng kẻ nổi. BORDERCOLORLIGHT 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 frame cho phép bạn tổ chức cấu trúc nộ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ẻ FRAMESET và FRAME để chia cửa sổ chính thành các khung chữ nhật (frame). Sau đó trong mỗi khung hình chữ nhật đó bạn chỉ định một tài liệu sẽ đ−ợc hiển thị trong khung đó. Chú ý thẻ FRAMESET sẽ thay thế cho thẻ BODY trong một tài liệu HTML, điều đó có nghĩa là trong một tài liệu sử dụng thẻ FRAMESET sẽ không có thẻ BODY mà 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:
  27. 27 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: 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ị
  28. 28 Ví dụ minh họa: Frames 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:
  29. 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: Đây lμ khung cửa sổ tạo bởi thẻ IFRAME: Hình 2.3 Ví dụ về IFRAME
  30. 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: 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:
  31. 31 Ví dụ minh họa: HTML Forms Tên NSD Mật khẩu 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: Tên mục chọn thứ nhất Tên mục chọn thứ hai
  32. 32 Ví dụ minh họa: Danh sách lựa chọn Thông tin: Thời tiết Truyền hình Thị trường Thời sự QT 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: Văn bản ban đầu
  33. 33 Ví dụ minh họa: Hộp soạn thảo Nhận xét: Hình 2.6 Tạo hộp soạn thả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ích cỡ 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
  34. 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ội dung 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: Chuỗi ký tự muốn chuyển động 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ện tạ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: Chuỗi ký tự chuyển động <MARQUEE BEHAVIOR=scroll DIRECTION=LEFT
  35. 35 LOOP=infinite SCROLLAMOUNT=60 SCOLLDELAY=5 >Ví dụ chuỗi ký tự chuyển động trong DHTML b. Thay đổi hình dạng chuột khi qua một vị trí Cú pháp: 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: Ví dụ về Cursor auto hand move text wait help default crosshair 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.
  36. 36 • 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 Contents Tài liệu Liên kết 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 Quảng cáo Thông báo-H−ớng dẫn Tuyển sinh-Đào tạo Kết quả-Học bổng Contents Quảng cáo Diễn đàn sinh viên Tài liệu học tập Liên kết website 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ẩm củ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óa cho một shop bán hàng.
  37. 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 HTML sau 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ữ JavaScript là 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
  38. 38 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ẻ • Sử dụng các file nguồn JavaScript. • Sử dụng một biểu thức JavaScript là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ẻ 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ẻ : Cú pháp: JavaScript Program Sử dụng tập tin JavaScript bên ngoài: <!- - 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
  39. 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 - - > 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: Listing Here is result: ”); > 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 "); 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ụ:
  40. 40 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: Outputting Text This is text plain ”); - -> Ví dụ 2: Example ”); document.write(“ WELCOME TO WEB DESIGN ”); - -> e. Sử dụng ph−ơng pháp writeln() với thẻ PRE: Outputting Text
  41. 41 f. Các ký tự đặc biệt trong chuỗi: \n : New line \t : Tab \r : carriage return \f : form feed \b: backspace Ví dụ: document.writeln("It work!\n"); 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ụ: Example '); - -> 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:
  42. 42 Listing Ví dụ 2: Listing '); document.write(" Greeting ,"); document.writeln(prompt("enter your name:","name")); document.write("Welcome to netscape navigator 2.01 "); - -> Sử dụng toán tử + để cộng 2 chuỗi đơn lại: Ví dụ 3: Listing ');
  43. 43 document.write(" Greeting ," + prompt("enter your name:","name") + "Welcome to Web Design "); - -> 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 Listing <!
  44. 44 document.write(' '); document.write(" Greeting ," + name + " Welcome to Web Design "); - -> Ví du 2: Tạo lại một giá trị mới cho biến Example var name=prompt("enter your name:","name"); alert ("greeting " + name + " , "); name=prompt("enter your friend's name:","friend's name"); '); document.write(" Greeting ," + name + " Welcome to Web Design "); - -> 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: 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
  45. 45 /= 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 true !x c. Toán tử so sánh trong JavaScript: ==: bằng !=: khác >: lớn hơn =: lớn hơn hoặc bằng true 3 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
  46. 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 Example var question="What is 10+10 ?"; var answer=20; var correct=' '; var incorrect=' '; var response=prompt(question,"0"); var output = (response==answer) ? correct:incorrect; 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 }
  47. 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 – if cho 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 if lồ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 Example var question="What is 10+10 ?"; var answer=20; var correct=' '; var incorrect=' '; var response=prompt(question,"0"); if (response != answer) { if (confirm("Wrong ! press OK for a second change")) response=prompt(question,"0"); }
  48. 48 var output = (response ==answer ) ? correct:incorrect ; Ví dụ 2 : Sử dụng ph−ơng pháp confirm() với phát biểu if - else Example var question="What is 10+10 ?"; var answer=20; var correct=' '; var incorrect=' '; 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 ;
  49. 49 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(“ Your Name is ”); document.write(name); document.write(“ ”); } 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ụ:
  50. 50 Example ’; var incorrect=‘ ’; //ASK THE QUESTION var response=prompt(output,“0”); //CHECK THE RESULT return (response == answer) ? correct : incorrect; } // STOP HIDING FROM OTHER BROWSERS > 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ụ: Example <! HIDE FROM OTHER BROWSERS //DEFINE FUNCTION testQuestion() function testQuestion(question) { //DEFINE LOCAL VARIABLES FOR THE FUNCTION
  51. 51 var answer=eval(question); var output= “What is ” + question + “?”; var correct= ‘ ’; var incorrect= ‘ ’; //ASK THE QUESTION var response=prompt(output,”0"); //CHECK THE RESULT return (response == answer) ? correct : testQuestion(question); } // STOP HIDING FROM OTHER BROWSERS > Ví dụ 2: Example ’; var incorrect= ‘ ’; //ASK THE QUESTION var response=prompt(output,“0”); //CHECK THE RESULT if (chances > 1) { return (response == answer) ? correct : testQuestion(question,chances-1); } else {
  52. 52 return (response == answer) ? correct : incorrect; } } // STOP HIDING FROM OTHER BROWSERS > 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 student1 là : 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ụ:
  53. 53 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 + “ ”); document.write(“Age: “ + this.age + “ ”); document.write(“Mother’s Name: “ + this.mother + “ ”); document.write(“Math Grade: “ + this.grade.math + “ ”); document.write(“English Grade: “ + this.grade.english + “ ”); document.write(“Science Grade: “ + this.grade.science + “ ”); } 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ụ: Example Employee Profile: ” + this.name + “ ”); document.writeln(“Employee Number: ” + this.number); document.writeln(“Social Security Number: ” + this.socsec);
  54. 54 document.writeln(“Annual Salary: ” + this.salary); document.write(“ ”); } //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 Social Security 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 > Hình 3.1 Form nhập tên nhân viên Hình 3.2 Form nhập mức l−ơng
  55. 55 Hình 3.3 Form hiển thị kết quả Ví dụ: Example 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, ";
  56. 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 > <! HIDE FROM OTHER BROWSERS
  57. 57 document.write(" " + ampmhour + "" + myminutes + ampm) document.write(" - " + day + " ngày " + myweekday +" "); document.write( month + " , năm " + year + " "); // STOP HIDING FROM OTHER BROWSERS > Sau khi duyệt sẽ cho kết quả nh− sau: Hình 3.4 Kết quả của đoạn script hiể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.
  58. 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: Ví dụ: Ví dụ: Ví dụ: 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 Example 5.1
  59. 59 Ví dụ 1: Example Ví dụ 2: Example
  60. 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: 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: Example Enter a JavaScript mathematical expression: The result of this expression is:
  61. 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 for loop Examle " + name + " 's 10 favorite foods "); for (var i=1 ;i '); }
  62. 62 - -> 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ồm 4 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à:
  63. 63 • 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ân biệ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.
  64. 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 ta có 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ụ: Status Example 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,
  65. 65 directories=yes, status=yes, menubar=1, scroolbar=yes, resizable=0, copyhistory=1, width=200, height=200”); Ví dụ 2: WINDOWS , , Để đóng cửa sổ ta có thể dùng ph−ơng thức close() Ví dụ: Close Example
  66. 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ữa hai 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 length trả 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.
  67. 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ách sử 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”
  68. 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ất tớ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ụng nó 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ên ta 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.