Giáo trình ASP

47 544 0
Tài liệu đã được kiểm tra trùng lặp
Giáo trình ASP

Đ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

ASP I. Active Server Pages (ASP) là gì? Microsoft Active Server Pages (ASP) là một môi trường kịch bản dựa trên server (server-side scripting) cho phép tạo hoặc xây dựng các ứng dụng Web mạnh chứa các thẻ HTML, văn bản và các lệnh script hay các ứng dụng Web động, giao tiếp giữa Client và server một cách hiệu quả. Các trang ASP có thể gọi các thành phần ActiveX để thực hiện các công việc như kết nối với một database hoặc thực hiện một tính toán kinh doanh. Với ASP, bạn có thể đưa nội dung tương tác với các trang Web của bạn hoặc xây dựng toàn bộ các ứng dụng Web sử dụng các trang HTML như giao tiếp với khách hàng của bạn. Trang ASP: Mỗi trang .asp có thể bao gồm một trong các thành phần sau: HTML, Script của ngôn ngữ VB Script hoặc Jscript, Text trong đó các tag HTML và Text sẽ được xử lý bình thường như đối với các văn bản HTML (.html) thông thường, các script sẽ được một bộ phận (engine) của ASP thông dịch và thi hành trên server. Có thể xem trang ASP như một trang HTML có bổ sung các ASP Script Command Hoạt động của trang ASP: Sau khi môi trường ASP thực hiện việc thực thi các file .asp xong nó sẽ trả lại kết quả ở dạng HTML cho Web Server, tiếp theo Browser sẽ nhận được nội dung cần trình bày từ Web Server thông qua giao thức HTTP. Một trang ASP cũng sẽ được Brower tham khảo tới bình thường như là nó đã tham khảo tới một trang HTML của Web. Trang Asp khi ở trên Web Server và khi được đưa ra Browser Sơ đồ một ứng dụng trên Web ASP: Web Server: là nơi tiếp nhận và trả lời các yêu cầu của Web user, đồng thời cũng thực hiện việc kết nối đến hệ DBMS trên Database Server theo yêu cầu truy cập dữ liệu của 1 trang ASP. ADO cung cấp giao diện lập trình cho người phát triển xây dựng các lệnh truy cập CSDL, các lệnh này được chuyển đến cho hệ DBMS để thực thi thông qua các thành phần OLEDB (và ODBC). Kết quả truy vấn dữ liệu sẽ được Web Server đưa ra hiển thị trên Browser. Database Server: nơi diễn ra việc thực thi các thao tác CSDL như truy vấn, cập nhật cũng như bào đảm tính toàn vẹn dữ liệu của hệ DBMS. Browser: giao diện với người dùng, tiếp nhận các yêu cầu của người sử dụng cũng như hiển thị kết quả yêu cầu. Một vài đặc điểm của ASP: - Việc chèn các Script vào file HTML làm cho quá trình xử lý tạo ra văn bản HTML (Dynamic Pages) đồng thời với việc xử lý các Script, điều bày sẽ làm cho hoạt động của trang Web sẽ trở nên linh động hơn, uyển chuyển hơn. - Các file .asp cũng tương thích với file HTML, và việc viết các script đơn giản, không phải biên dịch hay liên kết như việc lập trình thông thường, ASP cung cấp các đối tượng tiện lợi cho nhiều thao tác như: Request, Response, Server, Apllication, Session. Các đối tượng có sẵn này của môi trường ASP sẽ giúp cho việc giao tiếp dữ liệu giữa Client và Server thực sự tiện lợi, cũng như việc quản lý ứng dụng một cách linh hoạt nhờ vào các biến Session, Application. 2 Sơ đồ một ứng dụng trên WEB II. Các thành phần & cú pháp ASP: ASP bao gồm các thành phần sau: 1. Các bộ dịch ngôn ngữ VBScript và Jscript. 2. Thư viện các đối tượng, chuyên dùng để truy xuất Database thông qua ODBC Driver (Active Server Data Object – ADO). Thư viện các đối tượng hỗ trợ cho việc viết các trang ASP. Một file ASP thực chất là một văn bản, nó có thể bao gồm các thành phần sau: + Văn Bản (Text) + Các HTML tag + Các Script. Mỗi Script này sẽ thực hiện một công việc nào đó, giống như các phát biểu của một ngôn ngữ lập trình. Một Script là một chuỗi các lệnh script, nó có thể là: 1. Một phép gán giá trị cho một biến 2. Một yêu cầu Web server gửi thông tin đến Brower. 3. Tổ hợp các lệnh riêng rẽ thành một thủ tục hay một hàm giống như trong các ngôn ngữ lập trình. Việc thi hành một script là quá trình gửi chuỗi các lệnh tới Scripting Engine, tại đây ASP sẽ thông dịch các lệnh này và chuyển tiếp cho máy tính. Script được viết bằng một ngôn ngữ với các luật được đặt tả nào đó, nếu ta muốn sử dụng một script language nào thì trên server phải chạy Script Engine cho ngôn ngữ đó. Trong ASP cung cấp hai Script Engine là VBScript và Jscript (với VBSCRIPT là mặc nhiên). Tuy nhiên ASP không phải là ngôn ngữ Script, mà nó chỉ cung cấp một môi trường để xử lý các Script mà ta chèn vào trong các file .asp, việc chèn này phải tuân theo một cú pháp nhất định của ASP. Cú pháp 1. Dấu ngăn cách (Delimiter): Trong văn bản ASP ta sử dụng các dấu <% và %> để ngăn cách phần văn bản HTML với phần Script, hay cụ thể là bất cứ một phát biểu Script nào cũng đều phải nằm giữa hai ngăn cách <% và %> Ví dụ: <% say = "Hello" %> là một script thực hiện việc gán chuỗi Hello vào biến say Biểu thức đơn: Bạn cần đưa vào (include) bên trong dấu ngăn cách ASP nhiều biểu thức cho ngôn ngữ scripting đầu tiên. Ví dụ, với dòng sau là kết quả cuối cùng của văn bản với thời gian hiện hành của server: This page was last refeshed at <% =now %> Trong trường hợp này, Web server trả về giá trị now của hàm VBScript từ browser với text. 2. Câu lệnh (Statement): Một câu lệnh trong VBScript hay trong ngôn ngữ script khác là một cấu trúc dùng để thực hiện một thao tác, câu lệnh phải được khai báo hoặc định nghĩa trong ngôn ngữ 3 scripting. Các ngôn ngữ script trong ASP cung cấp cho ta hầu hết các cấu trúc điều khiển: IF… ELSE, For, While, DO WHILE… cùng với những kiểu dữ liệu cơ bản như integer, char, string, Array … sau sử dụng Ví dụ: sử dụng câu lệnh If của VBScript <% if Time >=#12:00:00 AM# And Time < #12:00:00 PM# then greeting ="Good Morning!" else greeting ="Hello!" end if %> dòng sau sẽ gởi giá trị trong Green tơí Client browser <FONT COLOR= "Green"> <%=greeting%> </FONT> 3. SCRIPT tag: Các phát biểu, biểu thức, lệnh, hay thủ tục mà bạn sử dụng bên trong hai dấu ngăn cách <% và %> phải được nhìn nhận bởi ngôn ngữ Script mặc định hoặc ngôn ngữ Script được khai báo ở đầu trang ASP. Ngôn ngữ scripting mặc định của ASP là VBScript, tuy nhiên với ASP ta vẫn có thể sử dụng các ngôn ngữ lập trình khác bên trong bằng cách sử dụng thẻ <SCRIPT> và </SCRIPT> Ví du: <SCRIPT LANGUAGE="JSCRIPT"> <!-- hide Script from old browsers for(i=0;i<10;i++ ) document.write("for loop"+ i+"<br>") document.write("second line of for loop"+ i+"<br>") //end script hiding--> </SRIPT> </BODY> </HTML> trong file ASP sau xử lý JScript trong hàm MyFunction <HTML > <BODY> <%Call MyFunction %> </BODY> </HTML> <SCRIPT RUNAT=SERVER LANGUAGE=JSCRIPT> function MyFunction () { Response. Write("MyFunction Called") 4 } </SCRIPT> Chú ý: bên trong tag <SCRIPT></SCRIPT> phải là các thủ tục, không có một biểu thức xuất hay phát biểu nào nằm bên ngoài các thủ tục. 4. Include file: Khi tạo một ứng dụng Web, bao gồm nhiều trang ASP, nếu như toàn bộ các trang đều cần sử dụng những thông tin chung nào đó chẳng hạn như các hằng, giá trị… để tránh lại việc định nghĩa lại các giá trị này ta có thể sử dụng cơ chế include file của ASP (giống như trong ngôn ngữ lập trình cổ điển). Để include một file trong trang ASP ta sử dụng cú pháp sau: <!--#include Virtual/File="filename" -- > Ví dụ: <!--#include Virtual="whatever.asp"-- > Bạn phải định nghĩa kiểu Virtual hoặc file. Trong đó qui định file được include phải có phần mở rộng là .inc hoặc .asp, phần filename bao gồm cả đường dẫn và tên file. sử dụng từ khóa virtual: Tham sốVirtual dùng để chỉ định rằng đường dẫn được bắt đầu với một thư mục ảo (Virtual Directory) Vd: <!--# include virtual = " /whatever.asp" -- > Sẽ include bất kỳ tập nào trên site của bạn (whatever là nằm trên thư mục gốc của web server) nhưng bạn phải cung cấp tên tập tin với 1 đường dẫn sử dụng từ khóa file Tham số file dùng để chỉ định đường dẫn Relative, được bắt đầu với tên thư mục chứa file cần include. Chẳng hạn nếu bạn có 1 file trong thư mục myapp và file header1.inc trong myapp/header, dòng sau sẽ chèn header1.inc vào trong file của bạn. <!--#include file ="header/header1.inc"--> Chú ý rằng đường dẫn để include file headers/header1.inc thì có liên quan đến việc include file, nếu nội dung của script này có cú pháp include là thư mục /myapp, cú pháp sẽ không hoạt động. ASP includes files trước khi thực thi lệnh script. Vì thế, bạn không thể sử dụng một lệnh script để xây dựng tên của 1 file include. chẳng hạn script sau không thể mở file Header1.inc bởi vì ASP chiếm để thực thi chỉ thị include trước khi gán một tên file cho giá trị name <!-- This script will fail --> <% name=(header1 & ".inc") %> <!--#include file="<%= name %>"--> Lệnh script và thủ tục phải hoàn toàn bao hàm dấu ngăn cách <% và%> trong script, tag HTML <SCRIPT> và </SCRIPT> hoặc tag HTML <OBJECT> và </OBJECT>. sử dụng server script: Để bổ sung 1 client Script, mặc dù ASP sử dụng Script server site để xử lý văn bản, bạn có thể mở rộng bằng cách sử dụng nó để phát sinh ra client side script sau được xử lý 5 bởi client browser. ASP làm điều này bằng cách kết hợp client_side script bao gồm những chú thích HTML của server _side script và bao gồm cả dấu ngăn cách: <SCRIPT LANGUAGE="VBScript"> <!-- client script <% server script %> client script <% server script %> client script . --> </SCRIPT> Với chức năng trong scripts của bạn, bạn có thể tạo ra 1 ứng dụng thú vị. Chẳng hạn script sau sử dụng một database để cung cấp mẫu tin script client như là kết quả hành động của user. Trong Script sau ASP tìm dữ liệu từ Database và phát ra mỗi chương trình con cho mỗi dòng dữ liệu. Chương trình con đó điều khiển cái gì xảy ra khi 1 user click vào liên kết trong trang hiển thị trong client browser. Chú ý: Trong script này sẽ không có hàm của chính bản thân nó. Nó cho thấy ở đây chỉ minh họa chức năng của ASP nếu sử dụng trang liên kết với Database, server-side scripting và client-side scripting. Lưu ý: Việc include file có thể gây nên một vòng lặp nếu file được include lại gọi include một file khác, hay file ban đầu. Vì Asp sẽ include file trước khi xử lý các Script cho nên ta không thể sử dụng một lệnh mà lệnh này lại tạo ra một lời gọi include, hoặc sử dụng include như sau là sai: <% name =(header1&".inc")%> <!--#include file ="<%=name %>"-- > Ta cũng không thể mở dấu <% trong một file include và đóng %> trong một file include khác, ví dụ sau là sai: <!-- This script will fail --> <%For i = 1 To n statements in main file <!--#include file="header1. inc" --> Next %> Script sau sẽ hoạt động được: <!-- This script would work--> <% For i = 1 to n statements in main file 6 %> <!--#include file="header1. inc" --> <% Next %> III. CÁC ĐỐI TƯỢNG CƠ BẢN CỦA ASP: ASP cung cấp cho người lập trình các đối tượng có sẵn, mỗi đối tượng này sẽ thực hiện một chức năng riêng nào đó, các đối tượng có sẵn (built-in object) bao gồm: Tên đối tượng Chức năng Request Lấy thông tin từ một user Respone Gửi thông tin tới một user Server Điều khiển môi trường hoạt động của ASP Session Lưu giữ thông tin về một session của user Application Chia sẻ thông tin giữa các user trong cùng một ứng dụng. III. 1. Đối tượng Request Với đối tượng Request, các ứng dụng ASP có thể dễ dàng lấy được thông tin gửi tới từ user. Đối tượng Request cho phép truy xuất chi tới bất kỳ thông tin nào user gửi tới bằng giao thức HTTP như: 1. Các thông tin chuẩn nằm trong các biến Server (Server Variable) 2. Các tham số được gửi tới bằng phương thức POST 3. Các thông tin được gửi tới bằng phương thức GET 4. Các cookies (là thông tin của user được gửi kèm theo) tới từ Browser 5. Các Client Certificates Đối tượng Request tìm kiếm các giá trị mà client browser đưa vào server trong khi có một yêu cầu HTTP Cú pháp: Request.collection|property|method Collections Cookies Giá trị của các cookie gởi trong yêu cầu HTTP Form Giá trị các phần tử form trong thân của yêu cầu HTTP QueryString Giá trị của các biến trong chuỗi truy vấn HTTP ServerVariables Giá trị của các biến môi trường đã được xác định trước Properties TotalBytes Tổng số byte client đang gởi trong thân của yêu cầu Các tham số biến là chuỗi ký tự chỉ rõ mục (item) được tìm kiếm từ một collection hoặc được sử dụng như là mục vào đối với một phương thức (method) hoặc một property Ghi chú: 7 Tất cả các biến có thể được truy cập một cách trực tiếp bằng cách gọi cú pháp Request (variable) mà không cần tên collection. Trong trường hợp này, Web server tìm kiếm các collection theo thứ tự sau: 1. QueryString 2. Form 3. Cookies 4. ClientCertificate 5. ServerVariables III.1. Làm việc với các HTML FORM Sử dụng đối tượng Request, bạn có thể tạo và xử lý thông tin với HTML FORM, HTML FORM là cách thức thông thường để trao đổi thông tin giữa Web server và user, nó cung cấp nhiều cách nhập thông tin của user: Text boxes, Buttons, Check boxes cho phép user tương tác với trang Web và Submit thông tin tới một Web Server. Ví dụ: Tạo một FORM để user có thể nhập vào họ tên, tuổi và đưa vào một nút để submit thông tin tới Web server. FORM cũng chứa một điều khiển hidden để đưa thêm thông tin tới Web server. <FORM METHOD="POST" ACTION="myfile.asp"> <INPUT TYPE="text" NAME="firstname"> <INPUT TYPE="text" NAME="lastname"> <INPUT TYPE="text" NAME="age"> <INPUT TYPE="hidden" NAME="userstatus" VALUE= "new"> <INPUT TYPE="submit" VALUE="Enter"> </FORM> III. 2 Xử lý FORM nhập vào với ASP Khi một FORM submit thông tin tới Web server, Web browser của user yêu cầu file .asp chỉ định trong thuộc tính ACTION của thẻ HTML <FORM>. File .asp chứa đoạn script thực hiện việc xử lý giá trị FORM như hiển thị một bảng nội dung kết quả hoặc truy vấn thông tin từ một cơ sở dữ liệu. Bạn có thể sử dụng file .asp để thu thập giá trị HTML FORM một trong 3 cách: File .html chứa các form và submit giá trị của nó tới một file .asp.  File .asp có thể tạo form và chuyển giá trị tới một file asp khác.  File .asp có thể tạo form và gửi thông tin tới chính nó đó là đến file .asp mà chứa đựng form. III. 3 Lấy thông tin nhập vào FORM Sử dụng QueryString Collection QueryString collection lấy lại các giá trị form đưa vào Web server của bạn như là một chuỗi sau một dấu? trong yêu cầu URL. Việc sử dụng Querystring collection làm cho việc truy xuất thông tin trở nên dễ dàng hơn Cú pháp 8 Request. QueryString(variable)[(index)|. Count] Các tham số Variable tên của biến trong chuỗi query HTTP. Index Cho phép bạn truy vấn một trong các giá trị cho variable. Nó có thể là bất kỳ số nguyên nào trong khoảng từ 1 tới Request. QueryString(variable).Count. Nếu phương thức gởi từ form là POST thì Querystring chứa tất cả thông tin gửi tới như là 1 tham số sau trang URL. Nếu phương thức gởi từ form là GET thì Querystring Collection chứa toàn bộ thông tin gửi tới như là các tham số đi đằng sau dấu “?” trong URL. Như vậy nếu phương thức là GET thì toàn bộ thông tin gởi tới sẽ nằm trong Querystring Collection. Ví dụ: nếu ví dụ trước đó sử dụng phương thức GET(ACTION= “GET”) và người sử dụng gõ vào Jeff, Smith, và 30, sau đó yêu cầu URL sẽ được gởi tới server là: http://scripts/Myfile.asp?firstname=Jeff&lastname=Smith&age=30&userstatus=new Myfile.asp có thể chứa đoạn script xử lý như sau: Hello, <%= Request. QueryString("firstname") %> <%= Request. QueryString("lastname") %>. You are <%= Request. QueryString("age") %> years old. <% If Request. QueryString("userstatus") = "new user" then Response. Write"This is your first visit to this Web site!" End if %> Trong trường hợp này, Web sever của bạn sẽ trả về đoạn văn bản sau tới Web browser của user: Hello, Jeff Smith. You are 30 years old. This is your first visit to this Web site! Khi có nhiều biến cùng một tên và mỗi biến có giá trị khác nhau. Khi đó, QueryString collection có một tham số dùng để truy cập nhiều giá trị xuất hiện trong thân của yêu cầu. Bạn có thể sử dụng đặc tính Count để đếm số lần mà một kiểu đặc trưng giá trị xuất hiện. Ví dụ: một FORM chứa một list box với nhiều mục có thể trả lại như sau: Để hiển thị nhiều kiểu giá trị, List.asp có thể chứa đoạn script sau: <%Total = Request.QueryString("food").Count%> <%For i = 1 to Total%> <%= Request.QueryString("food")(i) %> <BR> <%Next%> và kết quả hiển thị là: apples olives 9 bread III. 4. Sử dụng Form Collection Form collection chứa toàn bộ các giá trị mà user nhập vào FORM sau đó gửi bằng phương thức POST. Phương thức POST gởi dữ liệu FORM trong thân yêu cầu HTTP, có thể gởi không giới hạn số ký tự tới server Cú pháp Request. Form(element)[(index)|.Count] Các tham số Element tên của phần tử form collection cần truy vấn. Index Một tham số lựa chọn cho phép bạn truy vấn một trong các giá trị đối với một tham số. Nó có thể là bất kỳ số integer nằm trong vùng từ 1 đến Request.Form(thamsố).Count. Ghi chú Form collection được chỉ mục bởi tên trong thân của yêu cầu. Giá trị của Request. Form (element) là một dãy của tất cả các giá trị của element xuất hiện trong thân của yêu cầu. Bạn có thể xác định số giá trị của một tham số bằng cách gọi Request.Form(element).Count. Để tham khảo một giá trị đơn của một phần tử form có nhiều giá trị, bạn phải chỉ định một giá trị cho index. Tham số index có thể là bất kỳ số nào giữa 1 và Request.Form(element).Count. Ví dụ: nếu user điền vào FORM bằng cách đưa vào một danh sách tên thì bạn có thể lấy lại các tên với đoạn script sau: <% For i = 1 to Request. Form. Count %> <% =Request. Form("names")(i) %> <% Next %> 2. Sử dụng ServerVariables collection ServerVariables collection lấy lại các giá trị các biến môi trường đã được xác định trước. ServerVariables cung cấp thông tin từ tiêu đề HTTP với một yêu cầu của user. Cú pháp Request.ServerVariables (server environment variable) Tham số server environment variable: là tên của biến môi trường. Bạn có thể sử dụng vòng lặp để lặp thông qua tên các biến server. Ví dụ, đoạn script sau sẽ in ra tất cả các giá trị của các biến môi trường trong một bảng. <TABLE> <TR><TD><B>ServerVariable</B></TD><TD><B>Value</B></TD></TR> <% For Each name In Request.ServerVariables %> <TR><TD><%=name%> </TD> <TD> <%= Request. ServerVariables(name) %> </TD> </TR> </TABLE> <% Next %> 10 [...]... Request ServerVariables("SERVER_NAME") %> /scripts/MyPage .asp" >Link to MyPage .asp III 5 Gửi thông tin trong cùng một file .asp: - Với ASP bạn phải định nghĩa động 1 form trong 1 file asp mà đặt giá trị đầu vào trả lại chính bản thân nó - ASP cho phép một file .asp có chứa From, khi user điều khiển các giá trị vào From rồi gửi (Submit) thì chính file asp sẽ nhận được các thông tin này và xử lý III 6 Đối... “register .asp -regresults .asp Registration Results Chú ý: Nếu sử dụng Response.Redirect sau khi một nội dung đã được gửi về cho user thì sẽ xảy ra lỗi III.6.4 Đệm trang Bình thường, khi một trang ASP được... thành phần hoặc biến có giá trịtrong ASP Một biến mà có session scope thì nó chỉ có thể bên trong session đó III.8.5 Đối tượng Application Đối tượng Application dùng để chia sẻ thông tin giữa tất cả người sử dụng của một ứng dụng Một ứng dụng trên ASP được định nghĩa như toàn bộ các tập tin asp trong một thư mục ảo và các thư mục con của nó Một số đặc điểm của ứng dụng ASP: Dữ liệu có thể được chia sẻ... (“occuption” )= “Unknow” End Sub 25 -Display .asp ‘hiển thị thông tin để user truy cập tập tin Display .asp có thể xem Thank you, You are -Change .asp ‘ thay đổi giá trị mới và nhấn Send để thay đổi Please enter your name: VI CÁC THÀNH PHẦN (COMPONENT) CỦA ASP Ngoài các đối tượng cơ bản có sẵn trong môi trường ASP, ASP việc tạo các trang Web động bằng ASP còn được trợ giúp nhờ một số thư viện các đối tượng (Active X Component) của ActiveX Server Các thành phần được thiết kế để chạy trên Web Server như... hướng điều khiển tới Ví dụ: Bạn muốn khi khách thăm Website của bạn thì họ đăng ký trước khi sử dụng nó Ta tạo một Form có tên là register .asp: -register .asp Register Registration: Please enter your first name: Please enter your last name: News Sport Music -jump .asp ... Response.Buffer = True %> III.6.5 Thiết lập kiểu nội dung của trang ContentType property chỉ rõ kiểu nội dung của thân đáp ứng (kiểu MIME) 15 Các kiểu phổ biến... đầu và kết thúc Session Một Session có thể bắt đầu bằng 3 cách: User muốn yêu cầu một URL được định nghĩa trong tập tin .asp và tập tin Global.asa cho ứng dụng bao gồm cả thủ tục Session_OnStart User lưu trữ giá trị trong đối tượng Session User yêu cầu một tập tin asp trong một trình ứng dụng và tập tin Global.asa của ứng dụng sử dụng thẻ để khởi tạo một đối tượng với session scope Một session . /scripts/MyPage .asp& quot;>Link to MyPage .asp& lt;/A> III. 5. Gửi thông tin trong cùng một file .asp: - Với ASP bạn phải định nghĩa động 1 form trong 1 file .asp. khai báo ở đầu trang ASP. Ngôn ngữ scripting mặc định của ASP là VBScript, tuy nhiên với ASP ta vẫn có thể sử dụng các ngôn ngữ lập trình khác bên trong

Ngày đăng: 18/09/2013, 04:10

Tài liệu cùng người dùng

Tài liệu liên quan