Trang Web động (Dynamic Web Pages) là trang Web cú thể kết nối cơ sở dữ liệu để thực hiện cỏc yờu cầu phức tạp.
Cơ chế hoạt động: khi trỡnh duyệt Web gửi yờu cầu tới mỏy chủ, mỏy chủ sẽ kết nối với cơ sở dữ liệu bờn ngoài thụng qua ODBC (Open Data Base Connectivity), thực hiện chƣơng trỡnh rồi sau đú gửi trả lại kết quả cho trỡnh duyệt Web là một tập tin siờu văn bản. Trỡnh duyệt Web cú nhiệm vụ thụng dịch và trỡnh diễn lờn màn hỡnh. Ƣu điểm của trang Web động đỏp ứng đƣợc những nhu cầu thụng tin mang tớnh thời thực.
Mạng
Tìm kiếm HTML
máy chủ WEB
Cơ sở dữ liệu WEB Trình duyệt WEB
Kết quả
1.5. Ngụn ngữ định dạng siờu văn bản HTML
Siờu văn bản là tập tin văn bản ASCII đƣợc cấu thành từ cỏc thẻ và dữ liệu. Mỗi thẻ định dạng bỏo hiệu bắt đầu hay kết thỳc một kiểu dữ liệu riờng. Giữa hai thẻ bắt đầu và kết thỳc là nội dung một loại dữ liệu xỏc định. Dữ liệu đú cú thể là một đoạn văn bản, một đoạn khai bỏo tờn tập tin hỡnh ảnh, õm thanh,... hay siờu văn bản khỏc với địa chỉ URL xỏc định. Dữ liệu cũng cú thể là một đoạn Script (Java Applet, JavaScript, VBScript,... ) đƣợc nhỳng vào. Quy ƣớc phần mở rộng của cỏc tập tin văn bản là.htm hoặc.html. [1]
Cấu trỳc của một tập tin siờu văn bản cú dạng sau: <HTML>
<HEAD>
<TITLE> Tiờu đề trang </TITLE> ...
</HEAD> <BODY>
Nội dung của trang
</BODY> </HTML> Trong đú,
Thẻ <HTML> và </HTML> là thẻ bắt đầu và kết thỳc trang siờu văn bản. Với mục đớch khai bỏo tập tin là một tập tin HTML.
Thẻ <HEAD> và </HEAD> là thẻ bắt đều và kết thỳc phần đầu của siờu văn bản, trong phần này chứa một phần khai bỏo của tập tin chứa thụng tin về tài liệu.
Thẻ <TITLE> và </TITLE> là bắt đầu và kết thỳc phần tiờu đề trang. Văn bản nằm trong thẻ này sẽ đƣợc hiển thị ở tiờu đề của cửa sổ trang Web.
Giữa hai thẻ <BODY> và </BODY> là toàn bộ dữ liệu của trang Web, trong phần này dạng mặc định của dữ liệu là ASCII text. Cú thể chứa một phần khai bỏo của tập tin.
Ngụn ngữ định dạng siờu văn bản HTML (HyperText Markup Language) là một ngụn ngữ đơn giản và khỏ mạnh cho phộp tạo ra cỏc trang Web. Ngụn ngữ này sử dụng hàng loạt cỏc thẻ chuẩn hoặc mó cũng nhƣ cỏc quy ƣớc cho phộp ngƣời dựng thiết kế để tạo cỏc thành phần của trang Web. Cỏc thẻ này đúng vai trũ nhƣ cỏc lệnh, bỏo cho trỡnh duyệt Web biết vị trớ và phƣơng thức hiển thị cỏc thành phần của Web. Thẻ HTML cú hai loại cơ bản sau:
Thẻ mang thụng tin (container tag) chỳng đƣợc thiết kế để chứa một số khỏc thƣờng là cỏc đoạn văn bản hay cỏc lệnh HTML khỏc. Loại thẻ này cú hai phần, thẻ mở và thẻ đúng. Thớ dụ: <Title> Welcome to HTML </Title>, thẻ này định dạng dũng văn bản “Welcome to HTML” sẽ hiển thị ở tiờu đề của cửa sổ trang Web.
Thẻ rỗng là thẻ dựng để thực hiện một chức năng nào đú. Thớ dụ: thẻ <BR>, ngắt dũng; bắt đầu ký tự tiếp theo trờn dũng tiếp theo hay thẻ <HR>, tạo một đƣờng ngang tại vị trớ đƣợc cung cấp.
Cỏc thẻ này đƣợc phõn loại thành cỏc lớp xỏc định nhƣ sau:
Cỏc thẻ mụ tả toàn bộ cấu trỳc tài liệu hay xỏc định cỏc thành phần trong cấu trỳc của một siờu văn bản, chẳng hạn: <HTML>... </HTML>, <HEAD>... </HEAD>, <TITLE>... </TITLE> và <BODY>... </BODY>. Cỏc thẻ định dạng chẳng hạn nhƣ cỏc thẻ heading, HTML xỏc định 6 cấp độ của heading <h1>... </h1>,<h2>... </h2>,... , <h6>... </h6>. Cỏc thẻ định dạng kiểu chữ: <b>... </b>, <u>... </u>, <i>... </i>, Cỏc thẻ cú tỏc dụng định dạng căn lề, tăng hoặc giảm font chữ, chỉ số trờn, chỉ số dƣới, hoặc hiển thị nhấp nhỏy,... chẳng hạn nhƣ <div>... </div>, <center>...
</center>, <font>... </font>, <small>... </small>, <strong>... </strong>, <sup>... </sup>, <sub>... </sub>, <blink>... </blink>,...
Cỏc thẻ thuộc tớnh định dạng logic, chẳng hạn nhƣ thẻ <a>... </a>, dựng tạo cỏc liờn kết tới một tài liệu khỏc. Thẻ <address>... </address>, dựng cho kiểu dữ liệu địa chỉ, sẽ hiển thị ở phần dƣới cựng của mỗi tài liệu và chứa thụng tin bản quyền hoặc thụng tin liờn hệ...
Lớp thẻ định dạng bảng, chẳng hạn nhƣ <table>... </table>, xỏc định một bảng. <tr>... </tr>, xỏc định một hàng của bảng cú thể chứa cỏc ụ tiờu đề và ụ dữ liệu. Thẻ <th>... </th>, xỏc định một ụ của bảng cú chứa một tiờu đề. Thẻ <td>... </td>, xỏc định một ụ của bảng chứa dữ liệu,... Ngoài ra, cũn cú cỏc thuộc tớnh bảng, nhƣ Thuộc tớnh align với cỏc giỏ trị left, center và right chỉ định kiểu canh lề; Thuộc tớnh border, vẽ với một đƣờng biờn;...
Cỏc lớp thẻ khỏc nhƣ cỏc lớp thẻ về hỡnh ảnh, cho phộp chốn một hỡnh ảnh vào trong trang Web, thẻ về õm thanh, thẻ form, thẻ Input,...
1.6. Cụng nghệ ASP
1.6.1. Giới thiệu chung
ASP (Active Server Pages)_một cụng nghệ của Microsoft, là mụi trƣờng giỳp ta sử dụng cỏc ngụn ngữ script để tạo những ứng dụng năng động cú tớnh tƣơng tỏc và hiệu suất cao cho mỏy chủ Web. Nú dựng để giải quyết cỏc vấn đề phức tạp thƣờng gặp khi phỏt triển chƣơng trỡnh ứng dụng CGI.
ASP là cụng nghệ gúi gọn trong một thƣ viện liờn kết động nhỏ cú tờn gọi là ASP.DLL (Dynamic Link Library). Nú cho phộp tạo ra cỏc trang Web động cú khả năng giao tiếp với ngƣời dựng một cỏch linh hoạt bằng cỏch lập trỡnh script tại mỏy chủ Web.
Chƣơng trỡnh cú thể đƣợc viết bằng ngụn ngữ lập trỡnh thụng dụng, sau đú nhỳng vào những thẻ đặc biệt trong văn bản HTML nghĩa là cỏc cõu lệnh, cỏc hàm hoặc cỏc thủ tục của chƣơng trỡnh cú thể đƣợc viết ngay trong một tập tin cựng với HTML. Cú thể hiểu rằng, ngụn ngữ script là một ngụn ngữ “trung gian” giữa HTML và cỏc ngụn ngữ lập trỡnh thụng thƣờng nhƣ C++, Visual Basic, Java,... Cú nhiều loại ngụn ngữ script khỏc nhau nhƣ VBScript, Java Script,...
Khi ngƣời dựng yờu cầu về một file cú phần mở rộng là ASP (*.ASP) thỡ ISAPI này sẽ quản lý phần biờn dịch. ASP sẽ nạp tất cả những trỡnh biờn dịch DLL cần thiết vào bộ nhớ, thực thi tất cả cỏc mó phớa mỏy chủ cú liờn quan đến ASP và trả kết quả dƣới dạng ngụn ngữ HTML. Kết quả này sẽ đƣợc mỏy chủ Web trả tới trỡnh duyệt Web của Client.
ASP thực sự là một phần mở rộng cho mỏy chủ Web. Nú cung cấp một tập hợp cỏc thành phần và đối tƣợng để quản lý sự tƣơng tỏc giữa mỏy chủ Web và trỡnh duyệt Web [7]. Máy chủ WEB Trình duyệt WEB Yêu cầu HTTP Trả lời HTTP ASP
Hỡnh 1.6.1: Mụ hỡnh tổng quỏt hoạt động của ASP
1.6.2. Sử dụng giải phỏp ADO
ASP cung cấp khả năng truy cập đến một tập hợp cỏc thành phần để thực hiện cỏc tỏc vụ. Cỏc thành phần đú chớnh là cỏc ActiveX Data Object gọi tắt là ADO. ADO đƣợc thiết kế để cung một số phƣơng phỏp truy cập dữ liệu chung nhất. Nú làm việc đƣợc với nhiều loại kho dữ liệu khỏc nhau nhƣ Access, SQL Server, Excel, Foxpro, Oracle,...
ADO đƣợc xem là giao diện lập trỡnh cấp ứng dụng dành cho lập trỡnh cơ sở dữ liệu dựng để truy nhập bất kỳ loại dữ liệu nào. Nú cú sẵn trong IIS (Internet Information Server) và PWS (Personal Web Server).
ADO cung cấp cỏc đối tƣợng của riờng nú, mỗi đối tƣợng sẽ điều khiển một phần cụ thể trong quỏ trỡnh tƣơng tỏc giữa trang Web và cơ sở dữ liệu. Cú ba đối tƣợng chớnh trong mụ hỡnh đối tƣợng ADO:
Đối tƣợng Connection dựng để tạo một kết nối đến kho dữ liệu trƣớc khi truy cập dữ liệu trong cơ sở dữ liệu.
Đối tƣợng Command đƣợc dựng để thực hiện cỏc lệnh trờn cơ sở dữ liệu- cỏc cõu lệnh SQL, chẳng hạn nhƣ cỏc cõu lệnh lấy thụng tin từ cơ sở dữ liệu, thờm cỏc mẩu tin, cỏc bảng mới vào cơ sở dữ liệu,...
Đối tƣợng Recordset là đối tƣợng thƣờng dựng nhất trong ADO, nú cú nhiều đặc tớnh và phƣơng thức. Nú đƣợc dựng để giữ thụng tin về cỏc recordset mà chỳng tạo ra, chẳng hạn nhƣ tỡm một mẩu tin, duyệt từng mẩu tin, xúa mẩu tin,...
Cả hai đối tƣợng Command và Recordset đều cú thể tự tạo kết nối đến kho dữ liệu.
Ngoài ra, cũn cú một số đối tƣợng khỏc nhƣ
Error: chứa chi tiết cỏc lỗi khi thực hiện cỏc thao tỏc truy cập dữ liệu. Fields: đại diện cho một trƣờng trong dữ liệu với kiểu dữ liệu thụng dụng. Parameter: Đại diện một tham số hoặc đối số kết hợp với đối tƣợng Command dựa trờn cõu lệnh truy vấn cú tham số hoặc cú thủ tục gắn liền dữ liệu.
Properties: Đại diện cho cỏc thuộc tớnh động của cỏc đối tƣợng thuộc ADO.
Túm lại, ASP cựng với ADO trở thành giải phỏp tối ƣu của Microsoft dành cho cỏc cơ sở dữ liệu Web trong những năm gần đõy.
1.6.3. Nhận xột về ASP
1.6.3.1. Ưu điểm
Khả năng thớch ứng mở rộng: ASP thƣờng kết xuất cỏc văn bản hay thẻ HTML chuẩn do đú mọi trỡnh duyệt đều cú thể đọc đƣợc.
Khả năng bảo vệ mó nguồn: mỏy chủ xử lý dữ liệu và gửi kết quả cho trỡnh duyệt nhờ vậy khụng làm lộ cỏc thuật toỏn và dữ liệu.
Khả năng kết hợp với cỏc phần mềm khỏc: ASP cú thể tớch hợp với cỏc phần mềm chuyờn dụng trờn mỏy chủ chẳng hạn nhƣ một số thuật toỏn nào đú đƣợc biờn dịch từ C++.
Dễ gỡ rối: ASP/ADO luụn đƣa ra HTML chuẩn và vỡ vậy việc kiểm tra gỡ rối sẽ đơn giản hơn nhiều.
1.6.3.2. Nhược điểm
Liờn lạc với mỏy chủ nhiều lần: Do cỏc cụng thức, thuật toỏn chỉ đƣợc xử lý trờn mỏy chủ nờn mỗi lần tớnh toỏn hay truy cập chỳng, ngƣời dựng buộc phải liờn lạc với Server.
Tăng tải trờn Server: Cỏc ứng dụng đều thực thi trờn mỏy chủ làm cho tải xử lý của mỏy chủ tăng cao, đặc biệt khi số lƣợng ngƣời truy cập tăng. ASP/ADO là giải phỏp của Microsoft chỉ cú thể chạy trờn một số ớt hệ điều hành. Nhƣ ta biết, mỏy chủ Web phổ biến nhất hiện nay Apache quản lý trờn 50% số Web site hiện cú trờn thế giới. ASP khụng thể chạy trờn Apache, trừ khi dựng một phần mềm thứ ba nào đấy.
1.6.4. Ngụn ngữ lập trỡnh sử dụng với ASP
1.6.4.1. Ngụn ngữ lập trỡnh Script
Cỏc ngụn ngữ lập trỡnh script cú cấu trỳc tƣơng đối đơn giản và gọn nhẹ. Điểm khỏc biệt cơ bản giữa cỏc ngụn ngữ script là ngữ phỏp và quy trỡnh thực hiện.
Cú thể sử dụng kết hợp nhiều loại ngụn ngữ trong toàn bộ một ứng dụng ASP, khụng nhất thiết phải sử dụng một ngụn ngữ duy nhất.
Ngụn ngữ mặc định mà ASP sử dụng là VBScript, nếu khụng chỉ rừ chƣơng trỡnh đƣợc viết bằng ngụn ngữ script nào thỡ ASP sẽ tự động chuyển cỏc cõu lệnh chƣơng trỡnh cho script engine để thực hiện. Ngƣợc lại, ta dựng tiền chỉ thị ở vị trớ đầu tiờn của script: <%@ LANGUAGE=ScriptEngine%> để đặt ASP ở chế độ mặc định với ngụn ngữ lập trỡnh Script nào đú. Chẳng hạn, buộc ASP sử dụng Jscript nhƣ một ngụn ngữ mặc định khi biờn dịch, ta cú đoạn mó sau trong vị trớ đầu tiờn của Script: <%@ LANGUAGE=Jscript%>.
1.6.4.2. Lập trỡnh script từ phớa mỏy khỏch
Nhƣ đó đƣợc trỡnh bày, ngụn ngữ định dạng siờu văn bản HTML cú thể chứa một định dạng hết sức chi tiết nội dung văn bản, hỡnh ảnh, bảng biểu và cỏc siờu liờn kết dƣới dạng một trang Web tĩnh. Tuy nhiờn, nú khụng cho phộp trang Web đỏp ứng cỏc thụng tin nhập vào từ phớa ngƣời dựng trừ khi chuyển họ đến một trang khỏc, hay núi một cỏch khỏc nú khụng mở ra đƣợc giải phỏp nào cho cỏc ứng dụng trờn Web động.
Một trong những giải phỏp cho vấn đề trờn đƣợc Netscape đƣa ra là Javascript. Nú cho phộp nhỳng vào trang Web một số tập lệnh để cú thể thực thi trờn mỏy khỏch khi ngƣời dựng sử dụng trỡnh duyệt Web để xem trang Web này.
Hóng Microsoft cũng đó đƣa ra giải phỏp riờng của họ cú tờn gọi Visual Basic Script. Cũng nhƣ JavaScript, nú cũng cho phộp tạo cỏc trang Web động cú thể tƣơng tỏc với mỏy chủ Web.
Ngoài ra, cũn cú cỏc ngụn ngữ lập trỡnh script phớa mỏy khỏch khỏc nhƣ Pythos, Awk, PerlScript. Một điểm chung nhất của cỏc ngụn ngữ lập trỡnh Script là mó chƣơng trỡnh đều nằm trong cặp thẻ <script></script> và cú thờm thuộc tớnh language để chỉ ra ngụn ngữ cho trỡnh duyệt.
Để cú thể lập trỡnh script từ phớa mỏy khỏch thỡ phải hỗ trợ script engine. Hai ngụn ngữ JavaScript và VBScript là đƣợc dựng phổ biến nhất hiện nay. [8]
1.6.4.3. Lập trỡnh script từ phớa mỏy chủ
Khi trỡnh duyệt yờu cầu một tập tin cú phần mở rộng là ASP, IIS sẽ nạp một thƣ viện liờn kết động ASP.DLL và biờn dịch cỏc mó ASP trong tập tin đú. Kết quả của việc thi hành biờn dịch này sẽ đƣợc đặt trong một tài liệu HTML đơn giản trƣớc khi gửi trả lại mỏy khỏch.
ASP.DLL sẽ biờn dịch tất cả những mó trong tập tin nếu chỳng nằm giới hạn trong <%... %>. Dấu giới hạn này cho phộp chốn vào dũng HTML bất cứ thứ gỡ, thớ dụ nhƣ một biến, lệnh gọi hàm,... Sử dụng tốt nú khụng chỉ tạo đƣợc cỏc trang HTML động mà cũn tạo ra cả mó script cho phớa mỏy khỏch.
ASP là mụi trƣờng giỳp tạo và chạy những ứng dụng Web động, cú tƣơng tỏc và tốc độ cao bằng cỏch nhỳng cỏc script. Cỏc script này nằm trong trang HTML, nhƣng nú hoàn toàn chạy trờn mỏy chủ. Mỏy chủ Web sẽ dịch cỏc kịch bản này, trộn nú vào trang HTML hoàn thiện và sau đú gửi cho trỡnh duyệt Web.
1.6.5. Cỏc đối tượng ASP
Cú sỏu đối tƣợng ASP đƣợc tạo sẵn, nú hỗ trợ về mặt thuộc tớnh và phƣơng phỏp cụ thể nhƣ sau: [7,18]
Đối tượng Request: Đối tƣợng Request chịu trỏch nhiệm kiểm soỏt cỏch ngƣời dựng gửi thụng tin đến mỏy chủ. Dựng đối tƣợng Request, mỏy chủ cú thể lấy thụng tin về nhu cầu ngƣời dựng một cỏch tƣờng minh chẳng hạn nhƣ thụng qua mó ASP đƣợc lập trỡnh hoặc khụng tƣờng minh nhƣ thụng qua tiờu đề HTTP. Đối tƣợng Request chứa cỏc thụng tin của trỡnh duyệt Web gửi đến mỏy chủ thụng qua giao thức TCP/IP.
Tập hợp Diễn giải
Cookies Giỏ trị của cỏc cookies đƣợc gửi từ trỡnh duyệt.
Form Giỏ trị của phần tử trong form đƣợc gửi từ trỡnh duyệt. QueryString Giỏ trị cỏc biến trong chuỗi truy vấn HTML.
ServerVariable Giỏ trị của cỏc biến HTTP và cỏc biến mụi trƣờng.
Thuộc tớnh Diễn giải
TotalBytes Chỉ định số byte mà mỏy khỏch sẽ gửi trong nội dung yờu cầu.
Phƣơng thức Diễn giải
BinaryRead Truy cập dữ liệu gửi đến mỏy chủ dƣới dạng một phần của yờu cầu POST
Bảng 1.6.5.a: Cỏc tập hợp, đặc tớnh và phương thức của đối tượng Request
Đối tượng Response: Đối tƣợng Response chịu trỏch nhiệm gửi kết quả xử lý của mỏy chủ đến mỏy khỏch. Đối tƣợng này cho phộp cỏc quyền kiểm soỏt tớn hiệu đỏp HTTP tới mỏy khỏch. Nhƣ vậy, đối tƣợng Response là tƣơng ứng với Request, tức đối tƣợng Request thu thập thụng tin từ mỏy chủ và mỏy khỏch., đối tƣợng Response gửi, hoặc gửi lại thụng tin tới mỏy khỏch bằng cỏch ghi vào luồng dữ liệu HTTP.
Tập hợp Diễn giải
Cookies Giỏ trị của tất cả cookie gửi đến trỡnh duyệt
Thuộc tớnh Diễn giải
Buffer Quyết định trang cú đƣợc tạo bộ đệm cho đến khi hoàn chỉnh hay khụng
CacheControl Quyết định mỏy chủ uỷ quyền (proxy) cú đƣợc phộp trữ dữ liệu do ASP xuất ra trờn vựng nhớ truy cập nhanh hay khụng
ContentType Kiểu nội dung HTTP (vớ dụ “Text/HTML”) dành cho phản hồi
IsClientConnected Cho biết khỏch hàng cú bị mỏy chủ ngắt kết nối hay khụng
Phƣơng thức Diễn giải
AddHeader Thờm hoặc thay đổi giỏ trị trong tiờu đề HTML AppendToLog Thờm văn bản vào nhật ký của Web server