1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu các công cụ xây dựng website

58 527 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 58
Dung lượng 1,04 MB

Nội dung

Tài liệu tham khảo công nghệ thông tin Tìm hiểu các công cụ xây dựng website

Trang 1

Phụ lục

2.1Kĩ thuật tạo trang bằng ngôn ngữ Script phía Server5

1.Tổng quan về các đối tượng Request và đối tượng Reponse8

1.Tại sao sử dụng ADO và ADO là gì?23

Trang 2

2.Lịch sử phát triển của PHP31

Phần II_Phân tích và thiết kế HTTT Quản lí nhân sự36

Trang 3

LỜI MỞ ĐẦU

Trong thời gian nghỉ hè vừa qua,nhờ sự hướng dẫn tận tình củaPGS_TS Đặng Minh Ất,cùng với sự giúp đỡ của các bạn cùng lớp,em đã cốgắng tìm hiểu lý thuyết và thực hành với mục tiêu là có được những kiếnthức cơ bản về xây dựng Web site Cụ thể, sau một tháng, em đã làm đượccác công việc sau:

- Tìm hiểu các khái niệm cơ bản về Web.- Tìm hiểu các công cụ xây dựng Web.

- Xây dựng thử nghiệm trang web Quản lý nhân sự với một số chứcnăng cơ bản như: quản lý nhân viên, quản lý phòng ban, quản lý quá trìnhcông tác và quá trình đào tạo nhân viên, quản lý hệ số lương nhân viên, tìmkiếm và trợ giúp.Tuy nhiên,do thời gian ngắn nên trong việc tìm hiểu lýthuyết và thực hành của em còn nhiều phần chưa đầy đủ Trong tìm hiểu vềcác công cụ xây dựng Web, em chưa thể tìm hiểu hết các công cụ xây dựngchính, cũng như với mỗi công cụ tìm hiểu thì cũng chưa thật sâu, thì cácchức năng còn đơn giản.Với ý nghĩa là bước đầu tìm hiểu về các công cụxây dựng Web site, em xin trình bày kết quả trong đợt thực tập này của em.Bao gồm các phần chính sau:

- Cơ bản về Web và các kiến thức cơ bản về ASP.- Giới thiệu sơ qua về PHP.

- Phân tích thiết kế hệ thống Quản lý nhân sự.

- Các chức năng và giao diện chính của trang Quản lý nhân sự.

Trang 4

Em xin chân thành cảm ơn thầy.

Sinh viên : Nguyễn Mạnh Hải

PHẦN I

CƠ BẢN VỀ WEB VÀ CÁC CÔNG CỤ XÂY DỰNG WEB

I KHÁI NIỆM CƠ BẢN VỀ WEB

Trong thực tế, ứng dụng Web luôn tồn tại hai loại là trang Web tĩnh và động.Trang Web tĩnh là trang HTML không kết nối cơ sở dữ liệu Ngược lại, trang web độnglà trang web có kết nối cơ sở dữ liệu Điều này có nghĩa là mỗi khi trang web động đượclàm tươi, dữ liệu trình bày trên trang Web được đọc từ cơ sở dữ liệu.

Nói các khác, cho dù đó là trang Web tĩnh hay động, nếu muốn người dùng sửdụng chúng để trình bày dữ liệu trên trình duyệt Web, cần phải khai báo các thẻ HTMLbên trong chúng theo một quy luật nhất định.

Để trang Web trình bày dữ liệu theo như ý của người thiết kế Web trên trìnhduyệt, cần phải khai báo các Client Script phù hợp với chuẩn HTML và Client Script.Ngoài ra, mỗi trình duyệt có thể hỗ trợ thêm những thẻ khác, nhằm cho phép người dùngphong phú hoá giao diện của trang Web.

Hai trình duyệt phổ biến hiện nay là IE (Internet Explorer của hãng Microsoft) vàNC (Netscape) Cả hai trình duyệt này đều cho phép duyệt các loại trang Web được xâydựng trên ngôn ngữ lập trình bất kì có hỗ trợ Web.

Để xây dựng một ứng dụng Web hoàn chỉnh và có tính thương mại, cần phải kếthợp cả Client Script (kịch bản trên trình khách) và Server Script (kịch bản trên trình chủ)với một loại cơ sở dữ liệu nào đó, chẳng hạn như MS Access, SQL Server, MySQL,Oracle…

Khi muốn triển khai ứng dụng Web trên mạng Intranet hay Internet, ngoài cácđiều kiện về cấu hình phần cứng, hệ điều hành, cần phải có trình chủ Web thường gọi làWeb Server Trên môi trường Windows, Web Server thường sử dụng là IIS ( InternetInformation Server) IIS sử dụng cho các Server Script như: ASP (Active Server Page),JSP (Java Server Page), Servlet, PHP, Perl, ASP.NET.

Trong môi trường Linux, Web Server thường dùng bao gồm Apache, JRUN,Web logic

Trang 5

Tóm lại, cho dù sử dụng bất kì Server Script với Web Server, thì Client Scriptkhông phụ thuộc vào chúng Điều này có nghĩa là có thể sử dụng một trong hai loạiClient Script ở trên là VBScript và JavaScript đều được.

II TẠO TRANG TÀI LIỆU ĐỘNG

2.1 Kỹ thuật tạo trang bằng ngôn ngữ Script phía Server

Cơ chế hoạt động Web tuân theo mô hình khách chủ client/server Trình kháchgửi yêu cầu đến trình chủ xử lí và trả về kết quả để trình khách hiển thị Trình chủ trongcác ứng dụng Web được gọi là Webserver Trình khách thường là browser (hay trìnhduyệt)

Hình: Yêu cầu và phản hồi tài trang tài liệu giữa Web Server và trình khácBrowser

Ở bước đầu của công nghệ Web, với các trang HTML, hoặc dữ liệu tĩnh như hìnhảnh hay tập tin văn bản (text file), trình chủ Webserver đơn giản chỉ đọc và lấy toàn bộnội dung của file trên máy chủ trả về trình khách Hoạt động của Web Server mang chứcnăng tương tự File Server Tuy nhiên, xuất phát từ nhu cầu xử lí động, trình chủ WebServer cho phép cài đặt các ứng dụng CGI (Common Gateway Interface) tiếp nhận yêucầu của trình khách, thực hiện thao tác xử lí dữ liệu trước khi đưa kết quả trở về trìnhduyệt phía máy khách Client CGI là các chương trình thực thi nhị phân (như file exe)viết bằng ngôn ngữ biên dịch (điển hình là C/C++) Với một số cầu hình cần thiết , WebServer sẽ gọi đến chương trình CGI và chuyển giao các yêu cầu từ trình khách chochương trình CGI xử lí Hoàn tất quá trình xử lí, CGI sẽ trả kết quả lại cho Web Server vàWeb Server lại tiếp tục trả về trình khách Quá trình triệu gọi xử lí của CGI hoàn toàntrong suốt (transparent) hay không thấy được đối với trình khách.

Trang 6

Hình: Xử lý CGI phía trình chủ

Viết CGI đòi hỏi phải sử dụng các ngôn ngữ biên dịch như C/C++, Pascel, VisualBasic… Trình CGI sau khi xây dựng xong muốn nâng cấp hay thêm vào những tính năngxử lí mới đòi hỏi phải biên dịch lại Công việc mở rộng và bảo trì ứng dụng Web viếtbằng CGI rất cực nhọc và không hiệu quả Một số chương trình CGI đã đi một bước xahơn nữa đó là cho phép người dùng sử dụng một số lệnh điều khiển cách kết xuất củaCGI trước khi trả kết quả cho trình chủ Web Server chuyển tiếp về máy khách Các lệnhđiều khiển này được đặt ngay trong trang tài liệu (chúng được gọi là Script hay kịch bản).Trình CGI sẽ đọc, diễn dịch và thực thi trực tiếp các Script này- cách hoạt động tương tựtrình thông dịch (interpreter) Đi tiên phong và phát triển mạnh mẽ nhất trong ứng dụngthông dịch CGI dạng này là các trang viết bằng ngôn ngữ Perl Perl là trình xử lí thôngdịch cực kì thông dụng trong thế giới UNIX và Linux Ứng dụng CGI cho phép Web sửdụng ngôn ngữ Perl cũgn hiện diện trên nền Windows.

2.2 Các kỹ thuật tạo trang động của Microsoft

Microsoft cung cấp trình chủ Web Server mang tên IIS (Internet InformationService) IIS cho phép sử dụng cách thức tạo trang Web động bằng CGI, ISAPI và tiến xahơn nữa là các trang ASP.

Các trình CGI thường viết bằng Visual C++, Delphi hay Visual Basic… (các trìnhbiên dịch file thực thi trên nền Windows) Chúng được dịch ra file thực thi exe và đặttrong thư mục /cgi-bin của trình chủ IIS Mỗi khi nhận được yêu cầu triệu gọi của trìnhkhách, Web Server IIS tìm đến chương trình CGI với trình chủ Web Server thực hiện

Trang 7

thông qua hai luồng xuất nhập chuẩn stdin và stdout của hệ điều hành (có thể hình dungstdin và stdout là hai file, stdin dùng để Web Server ghi dữ liệu vào giúp chương trìnhCGI đọc được yêu cầu của trình khách Stdout là file được trình CGI ghi kết quả trả về.Web Server sẽ lấy dữ liệu tử stdout gửi về trình khách).

Cơ chế CGI tỏ ra chậm chạp và kém hiệu quả Mỗi lần nhận được yêu cầu củatrình khách, Web Server phải khởi động, nạp lại trình CGI vào bộ nhớ, xử lý sau đó giảiphóng trình CGI chờ phiên triệu gọi tiếp theo Nếu có nhiều yêu cầu triệu gọi CGI cùnglúc, Web Server phải nạp nhiều phiên bản tách biệt của trình CGI để thực hiện xử lý Hailý do này làm giảm tốc độ thực thi của CGI và tiêu tốn rất nhiều tài nguyên quản lý củatrình chủ cũng như hệ điều hành.

Tại sao không giữ lại trình CGI trong bộ nhớ chờ phiên triệu gọi tiếp theo củatrình khách? Tại sao phải nạp cùng lúc nhiều thể hiện (instance) của cùng trình CGI chomỗi yêu cầu riêng biệt trong khi mã lệnh xử lý của chúng như nhau? Microsoft đưa ra cơchế xử lý mới nhanh hơn đó là cung cấp giao diện lập trình ứng dụng Internet ISAPI(Internet Server Application Programming Interface) gắn liền với trình chủ Web ServerIIS Thay vì thiết kế CGI xử lí trang động, các nhà phát triển cso thể sử dụng ISAPI đểxây dựng những đơn thể kết gắn và nạp trực tiếp vào trình chủ Web Server Đơn thểISAPI tồn tại cùng với Web Server trong suốt quá trình phục vụ chờ yêu cầu của trìnhkhách Các đơn thể ISAPI được viết ở dạng file thư viện DLL Mã lệnh của chúng hoạtđộng và trao đổi dữ liệu trong cùng không gian địa chỉ của trình chủ Web IIS Tốc độ xửlý của ISAPI do đó rất nhanh, tiết kiệm tài nguyên và hơn hẳn CGI.

Tuy nhiên, một trở ngại của đơn thể ISAPI cũng như CGI đó là phải sử dụng cácngôn ngữ biên dịch Khả năng bảo trì và thiết kế một ứng dụng Web chỉ dùng CGI hayISPAI là rất thấp Nếu ứng dụng CGI hỗ trợ kịch bản thông dịch ở dạng script, làm đơngiản hoá và loại bỏ quá trình viết mã của ngôn ngữ biên dịch cấp thấp thì kỹ thuật ISAPIcũgn cho phép bạn sử dụng các trang chứa script Các trang này chính là ASP (ActiveServer Page) Trang ASP đơn thuần là file văn bản chứa mã định dạng HTML kết hợp mãthông dịch như VBScript hay Jscript Đơn thể ASP.DLL (một ISAPI dùng cho xử lýtrang ASP) được tích hợp vào Web Server IIS Khi nhận được yêu cầu của tình khách cầnhiển thị trang asp, trình chủ Web Server sẽ triệu gọi đơn thể xử lý trang (ASP.DLL).

Trang 8

Trang được đọc, diễn dịch và thực thi các lệnh kịch bản Kết quả sau đó sẽ đượcASP.DLL gửi lại trình chủ để trả về theo yêu cầu của máy khách

Hình: Mô hình xử lý trang ASP và ISAPI thay cho CGI

III ĐỐI TƯỢNG REQUEST VÀ RESPONSE CỦA ASP1 Tổng quan về đối tượng Request và đối tượng Response

Chi tiết của yêu cầu máy khách (Client) và phản hồi từ máy chủ (Server) có thểtruy xuất bằng ASP qua hai đối tượng Request và Response.

Đối tượng Request cung cấp tất cả các thông tin mà Client cung cấp khi yêu cầumột trang hay submit (đệ trình) một form Điều này bao gồm các biến HTTP chỉ địnhbrowser và người dùng, các cookie được lưu trên browser và các giá trị bất kỳ được gắnvào URL với vai trò query string (chuỗi truy vấn) hay xác lập trong các control HTMLtrong một phân đoạn <FORM> trong một trang.

Đối tượng Response được sử dụng để truy xuất các đáp ứng mà server tạo ra đểgởi ngược về Browser Nó là các biến HTTP định danh Server và khả năng của nó, thôngtin về nội dung được gởi về browser và bất kỳ các cookie mới nào sẽ được lưu trênbrowser Nó cũng cung cấp các method chúng ta có thể sử dụng để tạo ra output nhưmethod Response.Write.

1.1 Các thành phần của đối tượng Request

1.1.1Các collection (tập hợp) của đối tượng Request

Query String: Một tập các cặp tên/giá trị được gắn vào URL trong yêu cầu của

người dùng, hay tất cả các giá trị của các control HTML trong phân đoạn <FORM> được

Trang 9

đệ trình khi đặt giá trị của thuộc tính METHOD là GET hay bỏ qua nó (tức GET là giá trịmặc định) Các thành phần của tập đều là giá trị chỉ đọc (read-only).

Form: Một tập các giá trị của các control HTML trong phân đoạn <FORM> được

đệ trình khi đặt giá trị của thuộc tính METHOD là POST Các thành phần của tập đều làgiá trị chỉ đọc (read-only).

ClientCertificate: Một tập các giá trị của tất cả các field hay entry trong client

certificate mà người dùng trình cho server khi truy xuất một trang tài nguyên Các thànhphần của tập đều là giá trị chỉ đọc (read-only).

Cookies: Môộ tập các giá trị cảu tất cả các cookie được gửi từ hệ thống của user

cùng với Request Các thành phần của tập đều là giá trị chỉ đọc.

ServerVariables: Một tập các giá trị của tất cả các header HTTP được gửi từ

client cùng với request, cùng với giá trị của một số biến môi trường của Web Server Cácthành phần của tập đều là giá trị chỉ đọc.

1.1.2 Thuộc tính của đối tượng Request

Đối tượng Request chí có một thuộc tính cung cấp thông tin về số byte dữ liệumà người dùng chuyển lên trình chủ Thuộc tính này ít được sử dụng, trừ một số trườnghợp xử lý đặc biệt phía trình chủ như dùng tiếp nhận dữ liệu nhị phân từ các file tải lênphía trình khách.

Thuộc tính TotalBytes: Chỉ đọc, trả lại tổng số Byte trong đối tượng request đượcgửi lên từ trình khách.

1.1.3 Phương thức của đối tượng Request

BinaryRead(count): Là phương thức duy nhất của Request cho phép truy xuất

toàn bộ nội dung yêu cầu của người dùng được POST lên server, nhận count byte dữ liệutừ yêu cầu client khi dữ liệu được gửi đến server là một phần của request POST Nó trảvề một mảng Variant Chú ý quan trọng là phương thức này sẽ thất bại nếu mã ASP đãtruy xuất đến tập Request.Form Tương tự, việc truy xuất tâp Request.Form sẽ khôngthành công nếu đã sử dụng phương thức BinaryRead.

1.2 Các thành phần của đối tượng Response1.2.1 Các tập hợp của đối tượng Response

Trang 10

Đối tượng Response cung cấp loại đối tượng tập hợp dùng để xác lập giá trị củabất kỳ cookie nào ta muốn đặt trên hệ thống của trình khách client Nó tương đương trựctiếp với tập Request.Cookies:

Cookies: Một tập chứa giá trị của tất cả các cookie sẽ được gửi ngược lại clienttrong đáp ứng hiện hành Các thành phần của tập đều là giá trị chỉ ghi (write-only).

1.2.2 Các thuộc tính của đối tượng Response

Buffer = True/False : Đọc/ghi Kiểu Boolean Giá trị True chỉ định

output được tạo bởi một trang ASP được giữ trong bộ đệm IIS cho đến khitất cả các Script Server trong trang hiện hành đã được xử lý, hay đến khiphương thức Response.Flush hay Response.End được gọi Nó cần đượcxác lập trước khi gởi bất kỳ output nào cho IIS, bao gồm cả thông tinheader HTTP, vì vậy nó nên là hàng đầu tiên của file .asp sau lệnh%@LANGUALE= % Chú ý là giá trị mặc định là True trong ASP 3.0,trong khi các phiên bản trước là False.

CacheControl”setting”: Đọc /ghi Kiểu String Đặt thuộc tính này bằng

Public cho phép proxy server thực hiện chức năng cache (kỹ thuật lưu giátrị cũ trong bộ nhớ để nạp lại) trang, hay Private để ngăn việc cache xảyra.

Charset=”value”: Đọc/ghi Kiểu String Nối thêm tên của tập ký tự vào

header HTTP Content Type tao ra bởi server cho mỗi đáp ứng.

ContentType=”Kiểu-MIME”: Đọc/ghi Kiểu String Chỉ định content

type của đáp ứng, là một chuẩn kiểu MIME Nếu bỏ qua, kiểu MIME“text/html” được sử dụng.

Expires minutes: Đọc/ghi Kiểu number Chỉ định chiều dài thời gian tính

bằng phút một trang còn hợp lệ Nếu người dùng trở lại trang trước khi nóhết hạn, bản cache được sử dụng Sau chu kỳ đó, nó hết hạn, và sẽ khôngđược giữ trong một vùng đệm cache.

ExpiresAbsolute #date[time]#: Đọc/ghi Kiểu Date/time Chỉ định ngày

và giờ tuyệt đối một trang sẽ hết hạn và không còn hợp lệ nữa

IsClientConnected: Chỉ đọc Kiểu Boolean Trả lại một chỉ định client có

còn kết nối và tải trang từ server xuống hay không? Có thể sử dụng để kết

Trang 11

thúc quá trình (với phương thức Response.End) nếu client di chuyển đếntrang khác trước khi trang hiện hành được xử lý xong.

Status = “code message”: Đọc/ghi Kiểu chuỗi Chỉ định giá trị trạng thái

và thông điệp sẽ được gửi đến client trong các header HTTP cảu đáp ứngđể một lỗi hay xử lý trang thành công.

1.2.3 Các phương thức của đối tượng Response

AddHeader(tên, nội dung): Tạo ra một header HTTP tuỳ biến sử dụng

các giá trị tên và nội_dung và thêm nó vào đáp ứng Không thể thay thếmột header đã tồn tại có cùng tên Một khi đã thêm header, không thể thuhồi nó Cần phải sử dụng trước khi gửi bất cứ trang nội dung nào (text hayHTML) đến client.

AppendToLog(“string”): Thêm một chuỗi vào cuối log file của trình chủ

Web server.

BinaryWrite(Array): Ghi nội dung của Array kiểu Variant vào dòng

output HTTP hiện hành mà không thực hiện bất cứ phép chuyển đổi ký tựnào Thường dùng để ghi những thông tin không phải chuỗi, như dữ liệunhị phân yêu cầu bởi một ứng dụng hay số byte để tạo một file ảnh.

Clear(): Huỷ bất cứ nội dung trang nào trong bộ đệm khi Response.Buffer

bằng True Không huỷ các header HTTP: có thể sử dụng một trang chưahoàn thành.

End(): Ngưng xử lý script và trả về nội dung đang tạo ra, không xử lý

thêm nữa.

Flush(): Gửi tất cả các nội dung trong bộ đệm IIS đến client nếu

Response.Buffer=True Có thể sử dụng để gửi từng phần riêng biệt củamột trang dài đến Client.

Redirect(“URL”): chỉ thị Browser nạp một trang trong thông số URL

bằng cách gửi một HTTP “302 ObjectMoved”.

WriteString(“string”): Viết chuỗi chỉ định vào dòng đáp ứng HTTP và

bộ đệm IIS để nó trở thành một phần của trang trả về.

Trang 12

2 Tập FORM và QueryString

2.1 Kỹ thuật chung truy xuất các collection ASP

Hầu hết các collection ASP đều giống các collection thông thường trong VisualBasic Chúng là một mảng các giá trị mà có thể truy xuất bằng một khoá chuỗi (khôngphân biệt chữ hoa chữ thường) cũng như một chỉ số nguyên.

2.1.1 Truy xuất toàn bộ các giá trị của collection

Có thể lấy toàn bộ của một collection vào một biến string bằng cách truy xuất têncollection không có khoá hay chỉ số: strAllFormContent=Request.Form

Chú ý là giá trị được cung cấp theo kiểu từng cặp tên/giá trị va các cặp được táchbởi ký tự “&”.

2.1.2 Duyệt qua một collection ASP

Có hai cách duyệt qua một collection của ASP, tương tự như chúng ta vẫn làm vớicác collection VB thông thường Mỗi collection cung cấp một thuộc tính Count trả về sốmục trong collection Có thể dùng nó để duyệt qua collection với chỉ số nguyên:

For i=1 to Request.Form.Count Response.Write Request.Form(i) & “<BR>”Next

2.1.3 Các thành phần quan trọng của collection

 HTML Radio Control ( hay Option Button Control): HTML List Box Control

 HTML Submit và Image Control

2.2 Truy xuất và cập nhật collection Cookies

Cookie là những mẫu text nhỏ được lưu trên máy của client bởi trình duyệt vàđược gởi đến máy chủ (server) đối với mỗi trang yêu cầu với domain tương ứng củachúng.

Chúng ta có thể lấy các giá trị của tất cả các Cookie được gửi tới request từcollection Request.Cookies, và tạo ra hay biến đổi cookies để gửi ngược về trình duyệtvới collection Response.cookies.

Cookies chứa các thông tin có thể cấu thành theo hai cách Các cookie một giá trị(single value) có thể truy xuất qua collection bình thường Tuy nhiên, mỗi thành phần của

Trang 13

collection cũng có thể là collection Các cookie kiểu này được gọi là các cookie nhiều giátrị (multiple-value).

Để tạo ra một cookie một giá trị:

Response.Cookies(“item-name”) = “item-value”Và cookie nhiều giá trị:

Response.Cookies(“item-name”) (“sub-item-name”) = “sub-item-value”

Để đặt domain và đường dẫn áp dụng cookie và ngày hết hạn (expire date) củanó:

Response.Cookies(“item-name”).domain= “domain-url”Response.Cookies(“item-name”).path= “virtual-path”Response.Cookies(“item-name”).expire= #date#

Thông thường, client chỉ gởi cookie đến server theo yêu cầu các trang cùng thưmục với trang tạo ra cookie Bằng cách đặt thuộc tính path cho cookie, chúng ta có thểchỉ định vị trí hợp lệ của cookie trên server và sẽ được gởi yêu cầu các trang Nếu muốncookie được gửi với mọi yêu cầu của toàn bộ site, ta đặt path bằng “/”.

Nếu thuộc tính expire không được đặt, cookie sẽ bị huỷ ngay khi người dùngđóng thể hiện (instance) hiện hành của trình duyệt.

2.3 Sự khác nhau giữa Form và QueryString

Có hai phương pháp đẻ yêu cầu một trang hay resource từ một Web Server quaHTTP Có thể GET resource trực tiếp hoặc POST các giá trị vào resource GET làphương pháp mặc định.

Nếu bạn cần gắn thêm một hay nhiều cặp tên/giá trị vào URL của trang đang yêucầu, chúng trở thành query string của yêu cầu và có thể truy xuất bằng ASP quacollection QueryString.

Việc click một hyperlink trong một trang Web, thông điệp email hay tài liệu khác,việc gõ một địa chỉ và thanh Address của một trình duyệt và ấn Enter, hay click vào cácbutton Links hay Favorites trong trình duyệt, tất cả đều sử dụng phương thức GET Cáchduy nhất gửi các giá trị đến Server từ những hành động này là qua CollectionQueryString bằng cách gắn thêm URL.

Trang 14

Khi chúng ta sử dụng phân đoạn <FORM> trong một trang, chúng ta có thể đặtthuộc tính METHOD của <FORM> là GET hay POST Nếu chúng ta sử dụng GET (haybỏ qua vì GET là giá trị mặc định của METHOD), trình duyệt sẽ lấy các giá trị trong tấtcả các control để xây dựng thành query string và gắn vào URL của trang được yêu cầukhi submit trang hiện tại Khi trang này đến Server, các giá trị của nó nằm ở collectionRequest.Form.

Nói chung, nên sử dụng phương thức POST trong tất cả các form HTML Thứnhất, chiều dài của chuỗi URL bị giới hạn nên nếu dùng query string sẽ có nguy cơ bịtràn và bị cắt bớt Thứ hai, query string đưa các giá trị tường minh vào URL và sẽ đượcghi lại trong file log khi đi qua các Server, điều mà bạn không thích lắm.

Hình: Sự khác nhau giữa hai method GET và POST

Trang 15

IV CÁC ĐỐI TƯỢNG TRONG ASP1 ĐỐI TƯỢNG SESSION

Đối tượng Session được dùng để chứa thông tin hoặc các thay đổi thiết lập chomột phiên kết nối của người dùng Biến lưu trong đối tượng session nắm giữ thông tinchỉ cho một người dùng tách biệt và có thể nhìn thấy được bởi tất cả các trang ASP trongứng dụng.

Khi làm việc với một ứng dụng thông qua việc mở trang ASP nào đó, thực hiệnmột số tương tác (như xem thông tin, cập nhật dữ liệu…), đóng ứng dụng Các thao tácnày được xem là hoạt động trong một phiên làm việc (session) Đối với các ứng dụngdesktop truyền thống, từ khi bắt đầu khởi động cho đến khi chấm dứt chương trình, máytính có thể hiểu được chủ thể đang tương tác với nó Tuy nhiên, với Internet và các máychủ Web Server thì không thể biết được bạn là ai và những trạng thái gì bạn đang thựchiện Nguyên do là giao thức HTTP của Internet là giao thức phi trạng thái Khi một yêucầu về tài nguyên hoàn tất giữa trình duyệt và trình chủ Web Server, trình duyệt sẽ đóngkết nối HTTP và không nhớ gì về trạng thái trước đó Trình chủ phải có cách nào đó biếtđược sự kết nối này và lưu lại các trạng thái phục vụ cho lần kết nối tiếp theo.

Để giải quyết vấn đề này, ASP tạo ra một định danh duy nhất gọi là cookie chomỗi kết nối của người dùng Khi trình duyệt phía máy khách yêu cầu một trang thông tin,trình chủ sẽ trả về trang thông tin cùng với mẩu cookie Trình duyệt phía máy khách sẽkhông hiển thị cookie khi nhận được phản hồi từ trình chủ Thông tin của cookie là thôngtin ẩn sẽ được trình duyệt trả về cho trình chủ trong lần kết kế tiếp Sựa vào cookie trìnhchủ Web Server sẽ lưu thông tin trạng thái của tập hợp các trang được gọi trong nhữnglần kết nối sau đó Giao tiếp quản lý công việc này được thực hiện thông qua đối tượngSession Trình chủ Web Server sẽ tạo mới một đối tượng Session cho mỗi kết nối và duytrì Session này trong suốt quá trình làm việc vaàcòn hiệu lực của Session Thông thườngSession được dùng để lưu thông tin riêng biệt của người dùng thông qua các biến (gọi làbiến Session) Các biến này cũng sẽ được huỷ khi Session hết hạn.

1.1 Bắt đầu và kết thúc một Session

Trang 16

Trình chủ bắt đầu một Session khi:

Người dùng lần đầu tiên triệu gọi file asp

Trang ASP khai báo lưu trữ biến vào đối tượng Session.

Trình chủ kết thúc và huỷ bỏ đối tượng Session khi:

Người dùng không triệu gọi các trang của ứng dụng hoặc cập nhật làm mới(refresh) lại thông tin của trang trong một thời gian nhất định (thời gian này còn gọi làtimeout của Session) Khi một Session hết thời gian hiệu lực nó sẽ được xem như hết hạnsử dụng (expire), tất cả các biến lưu trong Session và bản thân đối tượng Session sẽ bịhuỷ bỏ Bạn có thể kiểm tra và tăng thời gian Timeout của Session tính bằng giây nhưsau:

Session.Timeout = 500%>

Việc quyết định thời gian tồn tại của Session là tuỳ theo mục đích của ứng dụng.Nếu bạn quy định thời gian sống của Session quá dài, trình chủ phái cấp nhiều tài nguyênđể quản lý Session Tuy nhiên nếu thời gian Session lưu quá ngắn, người dùng sẽ khôngđủ thời gian tương tác và làm việc với ứng dụng Web.

1.2 Lưu trữ và truy xuất biến Session

Một trong những tính năng thường dùng nhất cảu đối tượng Session là lưu trữbiến có giá trị cục bộ trong phiên kết nối Ví dụ:

Session(“username”) = “name” Session(“password”) =”pass” Session(“age”) = 24

Trang 17

Để loại bở một biến Session không sử dụng nữa, có thể sử dụng thuộc tínhContents của Session Thuộc tính Contents nắm giữ tất cả cá tên và nội dung hiện hànhcủa biến mà Session quản lý

1.3 Duyệt nội dung đối tượng Session

Có thể duyệt qua tấ cả các biến Session chứa trong tập hợp Contents bằng vònglặp For each như sau:

<%Dim 1

Session(“Myvar”) = “Here”Session(“Myage”) = 24

For Each I in Session.Contents

Response.Write(Session.Contents(i) & “<br>”)Next

1.4 Định danh Session

Mỗi Session mang một định danh (SessionID) phân biệt với các Session đanghoạt động khác Có thể gọi thuộc tính SessionID để lấy về định danh của Session

2 ĐỐI TƯỢNG APPLICATION

Trong ASP, ứng dụng (application) được định nghĩa là một tập hợp các file và tàinguyên (như asp, html, gif, txt …) kết hợp với nhau để xử lý hay phục vụ cho một mụcđích nào đó ASP xử dụng Application để biểu diễn cho ứng dụng, thông qua ứng dụngApplication có thể ràng buộc và chuyển đổi thông tin giữa các trang ASP trong ứng dụngvà giữa các phiên kết nối Session với nhau.

2.1 Biến Application

Khác với biến Session chỉ có giá trị cục bộ đối với mỗi phiên kết nối của ngườidùng, biến Application có giá trị toàn cục đối với tất cả các trang và nhìn thấy cũng nhưtruy xuất được bởi tất cả Session khác nhau Do phạm vi toàn cục nên biến Application

Trang 18

thường dùng để lưu giữ các biến sử dụng cho toàn bộ Web site như bộ đếm Counter chobiết hiện tại có bao nhiêu khách đã viếng thăm trang Web, lưu các biến chứa thông tin vềkết nối cơ sở dữ liệu … Có thể khởi tạo biến Application bất kỳ khi nào, ngay trong trangASP hiện hành hoặc trong file global.asa dựa vào sự kiện Application_OnStart( ).

2.2 Duyệt qua nội dung các biến Application

Tương tự đối tượng Session, có thể sử dụng thuộc tính Contents để duyệt qua tậphợp các biến Application hoặc sử dụng thuộc tính Count để đếm số biến mà đối tượngApplication hiện đang nắm giữ Ví dụ:

<%Dim iDim j

j = Application.Contents.CountFor i=1 to j

Response.Write(Application.Contents (i) &”<br>”)Next

2.3 Khóa thao tác truy xuất biến của Application

Do đối tượng Application cung cấp cơ chế truy xuất toàn cục nên có thể xảy ratranh chấp biến hoặc không đồng bộ hóa nội dung biến Ví dụ, nếu người dùng trong mộtSession thử tăng giá trị cảu biến Application trong khi người dùng trong Session lại giảmgiá trị của biến Để an toàn, có thể thực hiện thao tác khóa (lock) trước khi truy cập biếnchứa trong Application Bằng cách này, các Session khác sẽ không thể thay đổi được nộidung biến Application trừ Session đang tương tác Sau khi quá trình thay đổi đã hoàn tất,gọi phương thức UnLock để tháo khóa cho phép các Session khác tiếp tục quyền truyxuất Ví dụ:

Trang 19

‘ Thoát khóa Hoàn tất tác vụ thay đổi nội dung biến Application

Application.UnLock%>

Trang 20

3.TÌM HIỂU FILE CẤU HÌNH KHỞI ĐỘNG GLOBAL.ASA3.1 Xử lý sự kiện và khởi tạo biến trong file global.asa

ASP cung cấp file cấu hình global.asa, nơi cho phép đặt các đoạn mã script xử lýsự kiện hay triệu gọi các hàm, thủ tục, biến mang tính toàn cục Lưu ý, file global.asaphải được đặt trong thư mục gốc của ứng dụng Mỗi ứng dụng Web chỉ được phép có duynhất một file global.asa Khi lần đầu tiên trang asp của ứng dụng được yêu cầu, trình chủIIS sẽ đọc và nạp thông tin trong file global.asa Phát sinh và xử lý các sự kiện được càiđặt trong file global.asa, sau đó chuyển giao quyền xử lý lại cho trang ASP Fileglobal.asa cho phép cài đặt và xử lý các sự kiện sau:

Application_OnStart: Sự kiện này phát sinh khi người dùng đầu tiên triệu gọi bấtkỳ trang nào trong ứng dụng Web Khi trình chủ IIS khởi động lại hoặc khi nội dung fileglobal.asa bị hiệu chỉnh thì sự kiện này sẽ được phát sinh trở lại Sau khi sự kiện này kếtthúc quá trình xử lý, trình chủ IIS sẽ bắt đầu thực thi đến sự kiện Session_OnStart chuẩnbị cho phiên kết nối Các biến Application thường được khởi tạo bên trong sự kiện này.

Session_OnStart: Sự kiện này phát sinh mỗi khi có một người dùng mới yêu cầutrang ASP của ứng dụng Web trong lần đầu tiên.

Session_OnEnd: Sự kiện này được gọi khi phiên làm việc Session của người dùngchấm dứt Phiên làm việc được xem là chấm dứt khi nó hết hạn (timeout hay expired),mặc định cho thời gian hết hạn là 20 phút.

Application_OnEnd: Sự kiện này phát sinh khi không còn người dùng nào tươngtác với ứng dụng Web của bạn nữa Thông thường sự kiện này được gọi khi trình chủ IISngừng hoạt động (Stop) Sự kiện này giúp ứng dụng Web lưu các thông tin trạng thái cầnthiết xuống đĩa cứng phục vụ cho quá trình hoạt động của trình chủ sau đó.

Cài đặt thủ tục xử lý các sự kiện này trong file global.asa như sau:<Script language = “vbscript” runat=”server”>

Sub Application_OnStart……… Code

End sub

Sub Application_OnEnd……… Code

End sub

Trang 21

Sub Session_OnStart……… Code

End sub

Sub Session_OnEnd……… vnscript codeEnd sub

4 CÁC ĐỐI TƯỢNG NỘI TẠI CỦA ASP (BUILD-IN OBJECT)

Tóm tắt ASP cung cấp cho ta 7 đối tượng nội tại cơ bản sau:

Đối tượng Request: Đối tượng này cung cấp các thông tin và tham số người

dùng chuyển lên trình chủ thông qua thao tác submit dữ liệu trong thẻ Form của tranghoặc truyền bằng chuỗi QueryString trên địa chỉ URL.

Đối tượng Response: Đối tượng này thực hiện phản hồi, chuyển kết xuất từ trình

chủ về trình khác.

Đối tượng Application: Đối tượng Application dùng lưu giữ các thông tin toàn

cục của ứng dụng Web Có thể chuyển thông tin trao đổi giữa các trang ASP và cácSession thông qua biến lưu trữ của Application.

Đối tượng Session: Đối tượng session dùng lưu giữ các thông tin chỉ có tác dụng

đối với kết nối của một người dùng trong khoảng thời gian nào đó

Đối tượng Server: Đối tượng Server được dùng thực hiện các thao tác đặc biệt

tác động lên trình chủ Server cung cấp các phương thức và thuộc tính tiện ích sau:

 CreateObject(objectname): Tạo một đối tượng thuộc dạng COM củaWindows thực thi phía trình chủ.

 MapPath(path): Chuyển đường dẫn URL ảo thành đường dẫn vật lý của ổđĩa trên máy chủ.

 Execute(path): Thực thi trang asp trong đường dẫn.

 HTMLEncode (string): Mã hóa chuỗi string thành dạng hiểu và thông dịch đượcbởi ngôn ngữ HTML (thường dùng khi dữ liệu chứa các ký tự điều khiển đặc biệt)

 URLEncode (string): Mã hóa chuỗi string theo qui tắc chuyển đổi của URL hiểuđược bởi các trình duyệt phía máy khách.

Trang 22

Phương thức mà đối tượng Server thường sử dụng nhất là CreateObject Phươngthức này có thể giúp tạo ra các đối tượng khác dựa vào tên định danh Ví dụ, có thể dùngphương thức Server.CreateObject tạo ra đối tượng FileSystemObject.

Đối tượng Dictionary: Đối tượng Dictionary được dùng để lưu trữ một mục

thông tin dựa trên khóa Đối tượng này tương tự cách truy xuất băm (Hash table) Có thểhình dung bảng băm hoặc Dictionary tương tự cách tra cứu của từ điển Trong đó khóađược xem là từ cần tra và mục dữ liệu chính là nội dung của từ được tra trong từ điển.Đối tượng Dictionary cung cấp các phương thức và thuộc tính để xử lý sau:

 Add: Thêm một mục dữ liệu và khóa vào bảng Dictionary. Exists: Trả về true nếu một khóa tồn tại.

 Items: Trả về một mảng các mục dữ liệu chứa trong Dictionary. Keys: Trả về một mảng các khóa chứa trong Dictionary.

 Remove: Loại một khóa và mục dữ liệu khỏi Dictionary. RemoveAll: Xóa bỏ tất cả các khóa trong Dictionary.

 Count: Trả về tổng số mục dữ liệu hoặc khóa có trong Dictionary. Item: Thiết lập hoặc nhận trị trả về của một mục dữ liệu dựa vào khóa. Key: Thiết lập hoặc thay đổi khóa cho mục dữ liệu.

Đối tượng ASPError: Trong quá trình xử lý, trang ASP cung cấp đối tượngASPError chứa các thông tin lỗi phát sinh mới nhất Có thể dựa vào ASPError để đưa racác thông báo lỗi thân thiện với người dùng hơn các lỗi trang do trình chủ IIS trả về.

5 CÁC ĐỐI TƯỢNG TIỆN ÍCH (INSTALLABLE – COMPONENT)

Ngoài các đối tượng nội tại, trình chủ IIS cung cấp các đối tượng tiện ích nhưAdRotator, BrowserCap, Counters… Có thể chọn thêm vào hoặc bỏ đi các đối tượng nàytrong quá trình cài đặt IIS.

Đối tượng AdRotator: Đối tượng này cho phép hiển thị các ảnh quảng cáo trên

Web site một cách ngẫu nhiên Quảng cáo là một trong những cách tạo ra lợi nhuận chonhững Web site nổi tiếng Giả sử có rất nhiều khách hàng muốn quảng cáo trên một Website, không gian để đặt quảng cáo trên trang Web thì có giới hạn AdRotator giúp chọnngẫu nhiên ảnh quảng cáo mỗi khi khách hàng ghé thăm trang Web.

Đối tượng BrowserCap:

Trang 23

Khi người dùng gõ một điạ chỉ URL gọi trang asp, phía trình chủ có thể kiểm traloại trình duyệt mà trình khách đang sử dụng Công việc này được thực hiện dễ dàngthông qua đối tượng tiện ích BrowserCap Đối tượng này sẽ cho biết các thông tin như:hệ điều hành mà trình duyệt phía máy khách đang chạy, tên trình duyệt (ví dụ Netcapehay IE), phiên bản của trình duyệt, các đặc tính hỗ trợ JavaScript, phiên bản HTML màtrình duyệt có khả năng diễn dịch…Tất cả những yếu tố này rất hữu ích để các trang ASPsinh mã tương thích với trình duyệt khi phản hồi kết quả.

Đối tượng Counters:

Đối tượng Counter cho phép đếm số lần người dùng triệu gọi trang Web của ứngdụng Thường đối tượng Counter chỉ cần tạo ra một lần duy nhất trong file global.asa vàhoạt động trong suốt chu kỳ sống của ứng dụng Tạo đối tượng Counter bằng thẻ<OBJECT> trong file global.asa như sau:

<OBJECT ID=”objCounter” RUNAT=”Server” SCOPE=”Application”

PROGID=”MSWC.Counters”></OBJECT>

Ở đây objCounter là tên đối tượng Counter có phạm vi toàn cục(SCOPE=”Application”) Tất cả các trang asp trong ứng dụng có thể gọi phương thứcIncrement để tăng giá trị của Counter Cũng có thể thiết lập giá trị mới cho Counter bằngphương thức Set hoặc lấy về giá trị hiện hành bằng phương thức Get Muốn loại bỏCounter, gọi phương thức Remove.

Đối tượng FileSystemObject:

Đối tượng FileSystemObject cho phép xử lý các thao tác trên hệ thống file phíamáy chủ Có thể thực hiện những tác vụ như xem danh sách hay liệt kê nội dung của thưmục, sao chép, xoá hoặc đổi tên file công thư mục, tạo file hay thư mục mới… Ví dụ,thay vì dùng đối tượng Counter, mỗi khi người dùng mở trang Web, đối tượngFileSystemObject sẽ được gọi để mở file, đọc số đếm của Counter, tăng giá trị biếnCounter lên 1 và lưu trở lại file

FileSystemObject cung cấp các phương thức xử lý sau:

 BuildPath: Thêm một tên file hay thư mục vào đường dẫn thư mục hiệnhành.

Trang 24

 CopyFile: Copy file.

 CopyFolder: Copy thư mục.

 GetAbsolutePathName: Trả lại đường dẫn tuyệt đối của file hoặc thư mục. GetBaseName: Trả lại đường dẫn cơ sở của file hoặc thư mục.

 GetParentFolderName: Trả về tên của thư mục cha. OpenTextFile: Mở file hoặc tạo file mới.

 Drivers: Trả về danh sách các ổ đĩa.

Các ứng dụng ASP thường sử dụng đối tượng FileSystemObject cho các mụcđích như quản lý file, thực hiện các thao tác đọc ghi trên file, cho phép ngườidùng tải (upload) các file từ trình khách lên máy chủ…

V ADO (ACTIVEX DATA OBJECT)

1.TẠI SAO SỬ DỤNG ADO VÀ ADO LÀ GÌ?

Trải qua một quá trình phát triển khá dài, công nghệ tin học đã chứng tỏ cơ sở dữliệu là cực kỳ quan trọng và cần thiết đối với hầu hết các ứng dụng máy tính Khởi thuỷ,các chương trình đơn giản sử dụng file văn bản (text file) làm nơi lưu trữ dữ liệu Nhữngứng dụng hiện đại như Foxpro, Access sử dụng hẳn tập tin với cấu trúc đặc biệt làm nơichứa dữ liệu Những file này được gọi là cơ sở dữ liệu Phát triển hơn nữa, các hệ cơ sởdữ liệu quan hệ chuyên nghiệp hơn ra đời phục vụ cho nhu cầu lưu trữ dữ liệu lớn và truyxuất nhanh như SQL Server, Oracle, DB2…Khó khăn lớn nhất khi lập trình truy xuất cơsở dữ liệu là cơ chế kết nối, đọc và xử lý dữ liệu từ các file của những hệ cơ sở dữ liệu.Chúng có cấu trúc khác nhau và có cách xử lý riêng biệt.

Điểm chung nhất mà các hệ cơ sở dữ liệu có thể tương đồng là khả năng sử dụngngôn ngữ truy vấn chuẩn SQL Tuy nhiên, để kết nối và sử dụng được câu lệnh SQL tácđộng vào cơ sở dữ liệu, lập trình viên cần sử dụng các trình điều khiển do mỗi hệ cơ sởdữ liệu cung cấp Học cách sử dụng các hàm của trình điều khiển là công việc không mấydễ dàng đối với nhà phát triển ứng dụng Microsoft đã giải quyết vân đề này bằng cáchxây dựng một tập các hàm giao tiếp tổng quát (API-Application Programming Interface)dành cho kết nối và truy xuất dữ liệu Các hệ dữ liệu muốn những chương trình Windowscó khả năng truy xuất dữ liệu của mình một cách thống nhất cần viết trình điều khiển càiđặt theo giao tiếp của những hàm API này Đây chính là mô hình hoạt động của cơ chế

Trang 25

cầu nối ODBC (Open Database Conectivity) ODBC cho phép ứng dụng dùng một cáchtruy xuất duy nhất kết nối đến mọi hệ cơ sở dữ liệu Nó được xem là cầu nối giứa ứngdụng và dữ liệu Sử dụng ODBC, lập trình viên không cần quan tâm đến sự khác biệt củacác hệ cơ sở dữ liệu Trình điều khiển ODBC do nhà phát triển hệ dữ liệu cung cấp sẽchịu trách nhiệm giao tiếp với lập trình viên thông qua ngôn ngữ SQL do các ham APIcủa Windows quản lý.

Tuy nhiên, ODBC tỏ ra chậm và không hiệu quả Microsoft tiến xa hơn nữa, xâydựng cầu nối và tập các hàm truy xuất dữ liệu tổng quan ở dạng đối tượng gọi là OLEDB Đây là các đối tượng xây dựng theo mô hình COM (Component Object Model) hoạtđộng gắn liền với hệ điều hành, cho phép truy xuất trực tiếp đến mọi nguồn dữ liệu theomột giao tiếp tổng quát nhất Tuy nhiên, sử dụng OLE DB khá phức tạp, thường chỉthuận tiện cho lập trình viên C và C++ ADO (ActiveX Data Object) là lớp đối tượng đơngiản hoá hơn cho giao tiếp OLE DB cấp thấp Thật sự ADO đơn thuần chỉ là đối tượngCOM tập trung vào xử lý dữ liệu thông qua OLE DB của Windows.

1.1 Kiến trúc ADO

Để hiểu rõ cách sử dụng ADO, cần tìm hiểu kiến trúc của ADO.

Hình: Kiến trúc ADO và OLE DB

Lưu ý là ta dùng khái niệm Data Store để chỉ mọi loại dữ liệu và nơi chứa thôngtin có thể truy xuất được ADO thiết kế cho mục đích truy xuất dữ liệu tổng quát, không

Trang 26

chỉ dùng xử lý các hệ cơ sở dữ liệu thuần tuý Có thể dùng ADO để truy xuất dữ liệumail, dữ liệu file hay bất kỳ dữ liệu nào hỗ trợ cơ chế cho phép giao tiếp thông qua OLEDB.

1.2 Trình tiêu thụ (consumer) và trình cung cấp (provide)

Mô hình kiến trúc ADO cho thấy cách ADO làm việc nằm giữa tầng ứng dụng vàtầng dữ liệu chứa các loại dữ liệu như dữ liệu email, dữ liệu file, cơ sở dữ liệu…

Trong lập trình, chương trình mà chúng ta viết chính là trình tiêu thụ dữ liệu (dataconsumer) bởi nó cần truy xuất vào các nguồn dữ liệu để xử lý Thế còn trình cung cấpdữ liệu là gì? Đây chính là tập lệnh cho phép truy xuất vào nguồn dữ liệu (data store) theocách đặc trưng của chúng Provider cho phép giao tiếp giữa nguồn dữ liệu và tầng điềukhiển OLE DB Các nhà thiết kế nguồn dữ liệu cung cấp lớp giao tiếp giữa Provider vàOLE DB ADO chỉ trao đổi với nguồn dữ liệu thông qua OLE DB và không cần quan tâmđến cách thức làm việc của Provider Chính điểm này làm cho ADO mang tính tổng quátvà không phụ thuộc vào nguồn dữ liệu Để giúp OLE DB biết được Provider nào cần phảigiao tiếp, khi mở kết nối ADO cần chỉ định trình cung cấp dữ liệu Provider tương ứng.Microsoft cung cấp sẵn một số Provider cho phép truy xuất dễ dàng vào các nguồn dữliệu đang thông dụng như sau:

 Jet OLE DB 4.0: Cơ sở dữ liệu MS Access.

 DST Packages: Dịch vụ chuyển đổi dữ liệu trong SQL server.

 ODBC Driver: Provider cho phép truy xuất nguồn dữ liệu quaODBC.

 SQL Server : Cơ sở dữ liệu SQL Server. Oracle: Cơ sỏ dữ liệu Oracle.

 Simple Provider: Truy xuất dữ liệu dạng text.

 Index Service: Sử dụng cho truy xuất dịch vụ thư mục của Windows. Microsoft Dicrectory Service: Sử dụng cho truy xuất dịch vụ thư mục củaWindows 2000.

Trang 27

1.3 Trình cung cấp (provider) và trình điều khiển (driver)

Một lưu ý khác đó là cần phân biệt trình cung cấp và trình điều khiển-driver Thậtra về ý nghĩa Provider và Driver đều có mục đích như nhau, đó là cho phép các chươngtrình ngoài cùng như hệ điều hành giao tiếp với nguồn dữ liệu thông qua hàm xử lý trựctiếp (native) Tuy nhiên Provider hướng đến tính tổng quát của OLE DB trong khi trìnhđiều khiển cơ sở dữ liệu Driver lại nhắm vào giao tiếp chung cho thành phần kết nối theokiến trúc ODBC Điều quan trọng đó là Provider mang tính tổng quát hơn Driver Chúngta có thể dùng ODBC Provider để truy xuất dữ liệu thông qua các trình điều khiển Drivercho cơ chế ODBC

Do ODBC đã khá phổ biến và nhiều trình điều khiển hỗ trợ nó nên cho đến khinhà cung cấp đưa ra một Provider mới tương thích với cơ sở dữ liệu của họ, chúng ta chỉcó cách sử dụng ADO kết nối vào nguồn dữ liêu thông qua ODBC Provider ODBCProvider sẽ chuyển lời gọi và truy xuất đến tầng ODBC yêu cầu các trình điều khiểnDriver bên dưới tiếp cận với cơ sở dữ liệu mà nó quản lý.

Hình: Provider và Driver

Rõ ràng sử dụng ODBC Provider sẽ chậm hơn trình cung cấp OLE DB Providercho phép truy xuất trực tiếp (do phải qua lớp trung gian của trình điều khiển ODBC) Tuynhiên ODBC Provider giúp ADO tiếp cận với mọi nguồn dữ liệu thông dụng nhất trên

Trang 28

Windows dựa vào trình điều khiển ODBC sẵn có trong khi chờ nhà cung cấp đưa ra mộtphiên bản tiếp cận với dữ liệu bằng OLE DB Provider khác.

2 MÔ HÌNH ĐỐI TƯỢNG ADO 2.52.1 Đối tượng Connection

Đối tượng Connection cho phép thực hiện việc mở kết nối đến nguồn dữ liệu cầntruy xuất Thông qua đối tượng Connection, người lập trình chỉ định trình cung cấp OLEDB Provider sẽ dùng để tiếp cận dữ liệu Các thông tin kết nối bổ sung khác như: tênđăng nhập cơ sở dữ liệu (username), mật khẩu (password), tên máy chủ (server) …Tất cảnhững thông tin này thường được lưu vào một chuỗi gọi là chuỗi kết nối (ConnectionString)

Lưu ý là để có thể kết nối và truy xuất nguồn dữ liệu, không bắt buộc phải tạo đốitượng Connection Các đối tượng như Command, Recordset, Record… cũng cho phépmở trực tiếp kết nối Tuy nhiên, sử dụng đối tượng Connection sẽ cho phép tách biệt thaotác kết nối và thao tác truy cập dữ liệu Hơn nữa, đối tượng Connection còn cung cấpthêm một số chức năng chuyên dụng khác như cho phép thực thi câu lện SQL tác độngdữ liệu (INSERT, UPDATE, DELETE, gọi thủ tục nội Store Procedure…) hoặc kiểmsoát giao dịch (transaction) như Rollback, Commit…

2.2 Đối tượng Command (lệnh thực thi)

Mặc dù người lập trình có thể sử dụng đối tượng Connection để thực thi các lệnhSQL nhưng tốt nhất nên dùng Connection cho mục đích kết nối Đối tượng Command sẽđược dùng cho mục đích thực thi lệnh tốt hơn Khi đối tượng Connection thực thi lệnh,mặc định Connection sẽ khởi tạo và gọi đến đối tượng Command.

Đối tượng Command cho phép chuyển tham số vào các lệnh thực thi SQL Thamsố có thể chỉ định kiểu hoặc giá trị tường minh Các tham số cso thể nhận giá trị trả vềsau khi thực thi… Command có thể dùng cho cả hai mục đích: thực thi các lệnh SQLkhông cần nhận kết quả trả về (như INSERT, DELETE, UPDATE, các Store Procedure)hoặc thực thi các lệnh trả về tập Recordset như lệnh SELECT.

2.3 Đối tượng Recordset (tập các mẩu tin)

Recordset có thể nói là đối tượng được sử dụng thường xuyên nhất trong ADO.Đối tượng này cung cấp kết quả trả về từ câu lệnh truy vấn một tập các mẩu tin TrangASP có thể dùng vòng lặp duyệt qua các mẩu tin này và hiển thị dữ liệu kết xuất ra trang

Trang 29

Web phía trình duyệt Ngoài ra Recordset còn cho phép lọc dữ liệu từ tập các mẩu tin,truy xuất đến từng trường cụ thể của mẩu tin thông qua đối tượng Field hoặc danh sáchcác trường trong mẩu tin thông qua đối tượng Field.

2.4 Đối tượng Record

Đối tượng Record cho phép truy cập chi tiết đến thông tin của từng mẩu tin Cóthể hỏi đối tượng Recordset đã cung cấp cách thức truy cập đến từng trường của mẩu tinthì tại sao lại dùng thêm đối tượng Record? Thật sự nếu chỉ dùng loại dữ liệu dạng bảngcủa cơ sở dữ liệu thì có thể không cần dùng đến đối tượng Record Tuy nhiên đối tượngRecord giúp truy xuất tổng quát đến mọi nguồn dữ liệu không riêng gì dữ liệu dạng bảng.Hãy hình dung nếu muốn truy xuất nội dung của nguồn dữ liệu là một thư mục Thư mụccó thể xem là một bảng dữ liệu với danh sách file là các mẩu tin (record) Tuy nhiên mỗimẩu tin của file trong thư mục không đơn thuần chỉ chứa các trường như tên file, ngàygiờ tạo file, kích thước file…Thông tin về mỗi mẩu tin biểu diễn cho file có thể khácnhau về quyền truy xuất trên file, nội dung file Đối tượng Record sẽ giúp thể hiện sựkhác biệt này của từng mẩu tin thông qua phương thức và thuộc tính Nếu chỉ sử dụng vàtruy xuất mẩu tin thông qua Recordset theo cách thông thường thì sẽ không xử lý được.

2.5 Đối tượng Stream (luồng)

Đối tượng Stream cho phép biểu diễn nội dung của một nut (node) dữ liệu Cụthể, thông qua Stream, có thể xem và truy xuất được các loại dữ liệu nhị phân khôngthuộc dạng bảng như nội dung file, e-mail, trang Web, dữ liêu XML… Đối tượng Streamthường được kết hợp xử lý thông qua đối tượng Record và Recordset.

2.6 Đối tượng Collection (tập hợp)

Thư viện ADO cung cấp rất nhiều loại tập hợp Mỗi loại có thể nắm giữ một hoặcnhiều đối tượng khác thậm chí có thể là một tập hợp rỗng không chứa phần tử nào cả

3 KẾT NỐI VỚI NGUỒN DỮ LIỆU

Để tiếp cận và bắt đầu xử lý dữ liệu bằng các đối tượng ADO, chúng ta hãy xemcách thức kết nối vào những nguồn dữ liệu khác nhau thông qua chuỗi kết nối.

3.1 Chuỗi kết nối

Chuỗi kết nối dùng để cung cấp thông tin cho đối tượng Connection biết đặc điểmcủa cơ sở hay nguồn dữ liệu mà ADO cần truy xuất Sau đây là một số kết nối đến cácloại cơ sở dữ liệu thông dụng:

Ngày đăng: 22/11/2012, 15:15

HÌNH ẢNH LIÊN QUAN

Cơ chế hoạt động Web tuân theo mô hình khách chủ client/server. Trình khách gửi yêu cầu đến trình chủ xử lí và trả về kết quả để trình khách hiển thị - Tìm hiểu các công cụ xây dựng website
ch ế hoạt động Web tuân theo mô hình khách chủ client/server. Trình khách gửi yêu cầu đến trình chủ xử lí và trả về kết quả để trình khách hiển thị (Trang 5)
Hình: Xử lý CGI phía trình chủ - Tìm hiểu các công cụ xây dựng website
nh Xử lý CGI phía trình chủ (Trang 6)
Hình: Mô hình xử lý trang ASP và ISAPI thay cho CGI - Tìm hiểu các công cụ xây dựng website
nh Mô hình xử lý trang ASP và ISAPI thay cho CGI (Trang 8)
Hình: Sự khác nhau giữa hai method GET và POST - Tìm hiểu các công cụ xây dựng website
nh Sự khác nhau giữa hai method GET và POST (Trang 14)
Hình: Kiến trúc ADO và OLEDB - Tìm hiểu các công cụ xây dựng website
nh Kiến trúc ADO và OLEDB (Trang 24)
Hình: Provider và Driver - Tìm hiểu các công cụ xây dựng website
nh Provider và Driver (Trang 26)
8. THIẾT KẾ CÁC BẢNG (CSDL) 8.1 tblLyLich (Lý lịch) 8.1 tblLyLich (Lý lịch)  - Tìm hiểu các công cụ xây dựng website
8. THIẾT KẾ CÁC BẢNG (CSDL) 8.1 tblLyLich (Lý lịch) 8.1 tblLyLich (Lý lịch) (Trang 45)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w