Sử dụng các Script trong ASP

Một phần của tài liệu Xây dựng website du lịch Angkor (Trang 37 - 45)

a) Netscape Navigator :

2.2.6-Sử dụng các Script trong ASP

a). Sử dụng ngôn ngữ Script

Để sử dụng đợc các ngôn ngữ Script thì trên máy phải có một động cơ Script thích hợp (Script Engine) đợc cài đặt trên Web Server. Động cơ Script là một chơng trình xử lý các lệnh đợc viết trong một ngôn ngữ riêng biệt. Active Server Pages có 2 động cơ Script là Microsoft Visual Basic Scripting Editor (VBScript) và Microsoft Jscript. Nhng cũng có thể cài đặt và sử dụng các động cơ Script khác nh REXX, PERL. Các ngôn ngữ Script có cú pháp, luật không chặt chẽ và phức tạp nh các ngôn ngữ lập trình biên dịch, dễ sử dụng và thuận tiện. Với những ai đã từng học ngôn ngữ Visual Basic thì sẽ dễ dàng thấy sự quen thuộc trong ngôn ngữ VBScript. Còn với ai đã biết

Browser - Call ASP - Read file - Execute Script Commands Request.asp file Web page Server

Mô hình hoạt động của ASP Hình 2.1

ngôn ngữ C++, Java thì cũng tìm thấy sự giống nhau trong ngôn ngữ Jscript. Tuỳ thuộc ngời viết biết hoặc a thích ngôn ngữ nào thì có thể sử dụng ngôn ngữ đó.

Để thiết lập ngôn ngữ Script nào đợc sử dụng trên trang ASP cần sử dụng cú pháp đã biết ở phần trên nh sau :

<%@ LANGUAGE=Tên ngôn ngữ Script %>

Ngôn ngữ Script ngầm định đợc đặt trong phần App Options của Internet Service Manager.

Tuy nhiên vì file .asp đợc thực hiện trên Server-Side nên một số thủ tục giao tiếp với ngời sử dụng sẽ bị bỏ qua ví dụ nh :

InputBox MsgBox

Và cũng cần chú ý rằng mỗi ngôn ngữ Script có một quy ớc riêng. Ví dụ quy ớc về tên VBScript không phân biệt chữ hoa và chữ thờng nhng Jscript thì có, quy ớc về thêm các lời chú giải.

b). Sử dụng biến

Trong chơng trình biến và hằng là những thành viên không thể thiếu đợc. Trong phần này sẽ đề cập đến cách khai báo, phạm vi, sử dụng các biến và hằng.

Khai báo biến

Khai báo biến có thể không bị bắt buộc nhng việc khai báo biến sẽ là đem lại hiệu quả tốt hơn trong một số trờng hợp nh dự báo lỗi hoặc phân biệt về một phạm vi của biến nhất là chơng trình có sử dụng #include để bao hàm các file include vào trong file .asp.

Việc khai báo biến phụ thuộc vào từng ngôn ngữ cụ thể.

+ Trong ngôn ngữ VBScript khai báo biến có thể dùng các từ khoá : Dim, Public, Private. Ví dụ :

<% Dim Name %>

<% var Name; %>

) Phạm vi của biến (Varialbe Scope)

Cũng nh các ngôn ngữ lập trình khác, các biến trong ASP có một phạm vi hay thời gian sống (lifetime) nhất định.

1) Biến đợc khai báo bên trong chơng trình con gọi là biến cục bộ (local scope ) chỉ có chơng trình con đó đợc phép truy nhập. Biến đợc khai báo bên ngoài chơng trình con có phạm vi toàn cục (global scope) và đợc truy nhập ở mọi nơi bởi bất kỳ một Script nào trong trang. Khi biến toàn cục và biến cục bộ trùng tên nhau thì biến toàn cục sẽ tạm thời bị che trong chơng trình con tơng ứng.

2) Trong ASP một biến toàn cục chỉ đợc truy nhập trong một trang ASP tơng ứng. Để biến đó đợc truy nhập bởi mọi trang thì cần phải đặt biến đó trong phạm vi khác. Đó là : phạm vi phiên và phạm vi ứng dụng ( Session et Application Scope ).

- Phạm vi phiên : biến sẵn sàng truy nhập trong tất cả các trang của một ứng dụng nhng chỉ đợc yêu cầu bởi một ngời sử dụng (user). Biến này thích hợp trong việc lu trữ thông tin của mộ ngời sử dụng nh Username, Identifier, ...

- Phạm vi ứng dụng : nh phạm vi phiên chỉ khác là biến này có thể đợc yêu cầu từ nhiều ngời sử dụng. Biến này thích hợp cho việc lu trữ thông tin của mọi ngời sử dụng trong một ứng dụng cụ thể. Ví dụ nh các lời chào, khởi tạo các biến mức ứng dụng.

Hai đối tợng đã đợc định nghĩa sẵn phục vụ cho việc khai báo các biến này là đối tợng Session và Application.

Ví dụ để lu trữ 2 biến ở mức phiên có :

<%

Session("FirstName") = "Jeff" Session("LastName") = "Smith" %>

FirstName, LastName đợc gọi là các named entry. Và để lấy thông tin thông qua tên đối tợng và named entry. Sử dụng định hớng ra (<%=) hoặc Response.Write có :

Welcome <%= Session("FirstName") %>

Tơng tự với các biến ở mức ứng dụng :

<% Application("Greeting") = "Welcome to Exploration Air" %>

<%= Application("Greeting") %>

c). Sử dụng hằng

Các hằng đợc khai báo và sử dụng. Đối với VBScript thông qua từ khoá: const còn với Jscript thông qua từ khoá : var.

Nếu các hằng đợc sử dụng trong nhiều file .asp thì nên đặt trong một file riêng và đợc bao hàm vào trong file .asp bởi #include.

Ngoài ra có một số hằng đã đợc định nghĩa trớc và đợc đặt trong các component cơ sở (nh các hằng ActiveX Data Objects (ADO)) đợc gọi là

component type library. Nếu đã khai báo th viện kiểu (type library) trong file Global.asa thì có thể sử dụng các hằng này trong bất cứ một Script nào của ứng dụng.

Khai báo một th viện kiểu thông qua trờng <METADATA>. Ví dụ khai báo th viện kiểu ADO :

<!--METADATA TYPE="typelib"

FILE="c:\program files\common files\system\ado\msado15.dll" -->

d). Viết các chơng trình con (Procedures)

Các chơng trình con là cần thiết nhằm thực hiện một công việc xác định . Khi các chơng trình con đợc gọi bởi nhiều file .asp thì nên tách riêng thành một file nên đặt tên là .inc để phân biệt với các file khác . Các file .asp nếu muốn sử dụng các chơng trình con này thì phảI sử dụng từ khoá

định hớng SSI (Server – Side Include) #include nh sau để bao hàm file chứa các chơng trình con đó :

<!-- #include virtual | file="filename -->

trong đó :

+ filename : có thể là đờng dẫn tới file .

+ virtual : cho biết đờng dẫn bắt đầu với một th mục ảo (virtual directory)

ví dụ : có file app1.inc nằm trong th mục ảo "/myapp"

<!-- #include virtual="/myapp/app1.inc -->

+ file : cho biết đờng dẫn tới file là một đờng dẫn quan hệ (relative path) đờng dẫn quan hệ bắt đầu từ file chứa #include (tức là file bao hàm) .

Giả sử có một file Name1.asp trong th mục /Myapps và file Header1.inc

trong th mục /Myapps/Headers . Khi đó trong file Name1.asp sử dụng #include nh sau :

<!-- #include file ="headers\header1.inc" -->

Đôi khi chúng ta muốn sử dụng file .inc trong một block <Script> </Script>

có thể sử dụng cú pháp nh sau :

<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="Utils\datasrt.inc"> </SCRIPT>

với quy ớc ‘\’ là đờng dẫn quan hệ và ‘/’ là đờng dẫn ảo. Đây cũng là một cách để chèn nội dung của một file vào một file khác.

Định nghĩa chơng trình con

Một chơng trình con có thể đợc định nghĩa nh sau :

Định nghĩa chơng trình con </Script>

Có 2 thuộc tính là RUNAT và LANGUAGE đợc ấn định trong trờng <Script>.

+ RUNAT=SERVER : báo cho Web Server biết Script này đợc xử lý trên Server . Nếu không có thuộc tính này thì Script này sẽ đợc xử lý ở Browser.

+ LANGUAGE : để xác định ngôn ngữ đợc sử dụng trong Script . Nếu không có thuộc tính này thì ngôn ngữ sẽ là ngôn ngữ Script chính. Ví dụ :

<HTML>

<SCRIPT RUNAT=SERVER LANGUAGE=JSCRIPT> function MyFunction()

{

Response.Write("MyFunction Called") }

</SCRIPT>

Với những chơng trình con (CTC) sử dụng ngôn ngữ khác với ngôn ngữ Script chính (primary scripting language) thì sử dụng trờng <Script> </Script> còn với những CTC sử dụng ngôn ngữ Script chính thì sử dụng cặp dấu phân các (<% và %>)

Gọi chơng trình con

CTC đợc gọi thông qua tên của CTC . Một CTC Jscript đợc gọi từ VBScript thì phải sử dụng cặp ngoặc đơn sau tên CTC , nếu không có tham số thì vẫn phải chứa ngoặc rỗng . Nêu CTC là Jscript hoặc VBScript đợc gọi từ Jscript thì luôn luôn phải chứa cặp ngoặc đơn .

Gọi CTC từ VBScript bằng từ khoá Call . Nếu một hàm (function) đợc gọi thông qua từ khoá này thì giá trị trở về của hàm sẽ bị bỏ qua.

Ví dụ về sử dụng từ khoá Call gọi 2 CTC VBScript và Jscript từ VBScript : <%@ LANGUAGE = VBSCRIPT %> <HTML> <BODY> <% Call Echo %> <BR> <% Call PrintDate() %> </BODY> </HTML> <% Sub Echo Response.Write "<TABLE>" Response.Write "<TR><TH>Name</TH><TH>Value</TH></TR>" Set Params = Request.QueryString

For Each p in Params

Response.Write "<TR><TD>" & p & "</TD><TD>" & _ Params(p) & "</TD></TR>"

Next

Response.Write "</TABLE>" End Sub

%>

<SCRIPT LANGUAGE=JScript RUNAT=Server> function PrintDate() { var x x = new Date() Response.Write(x.toString()) } </SCRIPT>

Tạo ra các trang ASP

- Các file ASP là sự trộn lẫn của 3 thành phần :

+ Các trờng HTML

+ Các lệnh Script của ASP + Các dòng văn bản

Có thể dùng tất cả các trình soạn thảo văn bản nào để tạo ra các files ASP. Trong bộ Visual Studio có công cụ mạnh hỗ trợ ASP là Visual InterDev hoặc cũng có thể sử dụng Front Page để tạo các file ASP.

Theo ngầm định các lệnh Script trong ASP là các lệnh VBScript nhng vẫn có thể sử dụng các ngôn ngữ Scritp khác. Các lệnh script của ASP nằm trong cặp <% ... %>

Ví dụ :

<HTML> <BODY>

This page was last refreshed on <%= Now %>. </BODY>

</HTML>

Now là một hàm của VBScript trả về ngày tháng và giờ hiện tại. Khi Web Server xử lý nó sẽ thay thế <%= Now %> bằng ngày (date) và giờ (time) hiện tại. Kết quả là :

This page was last refreshed on 10/9/2000 2:20:00 PM.

- Các lệnh Script cũng có thể đợc trộn lẫn trong HTML:

Ví dụ với lệnh If ... then ... else sau đây có 2 cách biểu diễn tơng đơng :

Cách 1 :

<% If Time >= #12:00:00 AM# And Time < #12:00:00 PM# Then Greeting = "Good Morning!"

Else Greeting = "Hello!" End If

%>

<%= Greeting%>

Lệnh cuối cùng <%= Greeting%> gửi trả kết quả cho Browser Cách 2 :

<% If Time >= #12:00:00 AM# And Time < #12:00:00 PM# Then %> Good Morning!

<% Else %> Hello!

<% End If %>

Một ví dụ khác trong ngôn ngữ Jscript :

<% if (screenresolution == "low") { %> This is the text version of a page.

<% } else { %>

This is the multimedia version of a page. <% } %>

Một phần của tài liệu Xây dựng website du lịch Angkor (Trang 37 - 45)