Thứ Năm, 23 tháng 1, 2014

Tài liệu Ngôn ngữ lập trình ASP - Phần 1 - Giới thiệu pptx

Chương 1: Giới thiệu ASP 5


Hình 1.4 Tạo Virtual Directory trên IIS

Sau khi kết thúc wizard này chúng ta đã có một Virtual Directory sẵn sàng
trên web server. Hãy save các trang asp vào thư mục “c:\Web”. Địa chỉ truy
cập vào website trong trường hợp này sẽ là: http://localhost/test/


Một cách khác cũng tương tự và dễ thao tác hơn là nhấn chuột phải vào thư
mục C:\web, chọn Properties => Web sharing => Share this folder=> Add
Alias.
1.3.2 Viết các file ASP

Script được viết trong cặp thẻ <% %>, bắt đầu bằng thẻ mở <% và kết
thúc bằng thẻ đóng %>
Chúng ta có thể soạn trang ASP bằng bất cứ chương trình soạn thảo nào như
notepad, Frontpage, Dreamweaver
Ví dụ, tạo 1 file Hello.asp để hiển thị lời chào Hello ra màn hình, save vào
thư mục “c:\Web”
<html>
<head>
<title>New Page 1</title>
</head>
<body>
<%
response.write "Hello!" ‘Hiển thị lời chào Hello
%>
</body>
6 ASP
</html>
Câu lệnh response.write sẽ cho phép hiển thị một chuỗi ra trang web.
Chú thích trong lập trình ASP được viết sau dấu nháy đơn ‘
Mã lập trình ASP <%response.write "Hello!" %> được viết trộn lẫn giữa các
thẻ HTML.

1.3.3 Dùng trình duyệt truy cập website
Mở trình duyệt (ví dụ Internet Explorer), trên thanh địa chỉ gõ địa chỉ sau đây
để truy cập vào trang Asp ta đã tạo ra:
http://localhost/test/Hello.asp

Lưu ý là trang asp phải chạy trên web server chứ không thể open trực tiếp
với browser như các trang html.

Webserver xử lý như thế nào khi người dùng yêu cầu một trang ASP: Không
giống như html, khi người dùng yêu cầu 1 trang html, web server sẽ tìm
trong kho dữ liệu và trả về file html đó để browser hiển thị lại phía client. Khi
người dùng yêu cầu 1 trang Asp, IIS server sẽ chuyển trang ASP đó cho một
bộ phận xử lý gọi là ASP engine. Engine sẽ đọc mã nguồn file asp theo từng
dòng, thực thi các script trong file. Cuối cùng file ASP đượ
c trả về cho người
dùng dưới dạng một trang html thuần túy (không còn mã script) giống như
trang web tĩnh. Nếu chúng ta xem lại mã nguồn của trang này trên browser
thì có thể thấy những đoạn code asp trong file đã được dịch thành các dữ liệu
html bình thường.




















Hình 1.5 ASP engine xử lý file asp trước khi trả về cho browser

Chương 1: Giới thiệu ASP 7


Hình 1.6 Trang ASP sau khi thực thi trả về cho client dưới dạng 1
trang web tĩnh.Browser không xem được mã nguồn của trang ASP

Bây giờ chúng ta quay lại bài toán Login ở trên. Ta có thể soạn thảo một
trang Login.html và một trang Result.asp như sau:

Login.html
<html>
<head>
<title>New Page 1</title>
</head>
<body>
<form method="POST" action="Result.asp">
<p>Username: <input type="text" name="username" ></p>
<p><input type="submit" value="Submit" name="submit"></p>
</form>
</body>
</html>

Result.asp
<html>
<head>
<title>New Page 1</title>
</head>
<body>
<%
dim x
x=request.form("username") 'biến x nhận lại giá trị username từ form login
response.write "Hello "&x 'hiển thị nội dung tùy theo giá trị nhận được do
‘người dùng điền vào form
%>
</body>
</html>

Một số ví dụ khác:
Hiển thị ngày giờ của server
<html>
<head>
8 ASP
<title>New Page 2</title>
</head>
<body>
<%response.write Now%>
</body>
</html>
Kết quả: 7/5/2005 12:21:57 PM
Hiển thị năm và tháng:
<%
response.write "Year: "&year(now)
response.write "Month:"&month(now)
%>
Kết quả: Year: 2005 Month:7

1.3 Tóm tắt các cú pháp VBScript

Mã lệnh ASP có thể viết bằng VBScript hoặc JavaScript (đọc thêm tài liệu về
ngôn ngữ này). Các script của ASP thực thi trên server và nằm trong cặp dấu
<% %>. Bên trong có thể chứa các biểu thức, hàm, toán tử, lệnh hợp lệ của
ngôn ngữ Script tương ứng. Ở đây chúng ta tìm hiểu vắn tắt cách sử dụng
ASP để lập trình web động bằng VBScript.

1.3.1 Response.write
để gửi nội dung về cho trình duyệt ta dùng lệnh Response.write
<%response.write “Hello World!”%>
hoặc có thể viết ngắn gọn hơn <%=“Hello World!”%>

1.3.2 Biến
Biến dùng để lưu trữ thông tin. Biến có phạm vi cục bộ, nếu nó được khai báo
bên trong 1 hàm hay thủ tục thì nó chỉ có tác dụng trong hàm hay thủ tục
đó, nếu nó khai báo trong phạm vi toàn trang ASP thì tác dụng của nó sẽ có
phạm vi trong toàn trang ASP, tuy nhiên không có tác dụng trong trang ASP
khác.
Ví dụ ở trang Hello.asp ta có một biến x có giá trị là 3, trang Index.asp ta
dùng lệnh <%response.write x %> thì sẽ không ra kết qủa là 3 vì biến x của
trang Hello.asp không được hiểu trong trang Index.asp. Tương tự như vậy khi
một biến được khai báo trong 1 hàm, sẽ không có tác dụng ở bên ngoài hàm
đó.

Biến được khai báo và sử dụng bên trong trang asp nào dùng nó.
<%
Dim x ‘khai báo biến, không bắt buộc
x=3
Response.write x
%>

Biến không bắt buộc phải khai báo.
Chương 1: Giới thiệu ASP 9
Trong asp không khai báo kiểu của biến. Asp sẽ căn cứ vào việc sử dụng biến
mà quyết định xem nên xử lý biến đó như là kiểu gì.
<%Dim a, b
a=”Hello” ‘a là một biến kiểu chuỗi
For b=1 to 10 ‘b là một biến kiểu số nguyên
Response.write b
Next%>

Để có thể kiểm soát chính xác một biến theo kiểu mình mong muốn, chúng
ta dùng các hàm chuyển đổi kiểu.

Để định nghĩa một biến có phạm vi sử dụng trong nhiều trang ASP của ứng
dụ
ng Web, ta dùng biến session và application (xem đối tượng session và
application)

1.3.3 Mảng
Mảng dùng để lưu trữ dữ liệu theo một dãy các phần tử.
<%
dim y(5) ‘khai báo mảng 6 phần tử đánh chỉ số từ 0 đến 5
y(0)=2
y(1)=13
response.write y(0)
response.write y(1)
%>

1.3.4 Ghép chuỗi
Để ghép các chuỗi với nhau ta dùng dấu &
<%Dim a, b
A=”Cộng hòa xã hội chủ nghĩa Việt Nam”
B=”Độc lập Tự do Hạnh phúc”
Response.write a&b
%>

1.3.5 Hàm có sẵn
VBScript hỗ trợ sẵn một số hàm cơ bản. Ví dụ hàm “now”sau đây sẽ trả về
thời gian trên server
<%response.write now%>

1.3.5.1 Các hàm chuyển đổi kiểu
Các hàm này cho phép chuyển đổi kiểu dữ liệu
Cdate: Chuyển sang kiểu ngày tháng
<%Dim a, b
a=”22/1/2004” ‘a đang được hiểu là một chuỗi
b=Cdate(a) ‘chuyển chuỗi a sang đúng kiểu ngày tháng
%>
Cint: Chuyển sang kiểu Integer
<% Dim a,b
a=”3”
10 ASP
b=cint(a)
%>
Cstr: Chuyển sang kiểu string
<% Dim a,b
a=3
b=Cstr(a) %>
Các hàm khác : Cbyte, Cdbl,CSng, Cbool, Ccur,

1.3.5.2 Các hàm format
Các hàm này cho phép định dạng dữ liệu
FormatDateTime
FormatCurrency
FormatNumber
FormatPercent

1.3.5.3 Các hàm toán học:
Int: lấy phần nguyên của một số
<% Dim x=14.9
Y=Int(x) ‘kết quả y=14
%>
Các hàm khác : Abs, Atn, Cos, Exp, Fix, Hex, Log, Oct, Rnd, Randomize,
Round, Sin, Sqr, Tan

1.3.5.4 Các hàm thao tác với chuỗi
Len: Lấy chiều dài chuỗi
<%dim a,b
a=”Cộng hòa xã hội chủ nghĩa Việt Nam”
b=len(a)
%>
Ucase, Lcase: Chuyển chữ hoa thành chữ thường và ngược lại
<%dim a,b,c,d
a=”hello”
b=Ucase(a) ‘b=”HELLO”
c=”GOODBYE”
d=Lcase(c) ‘d=”goodbye” %>
Ltrim, Rtrim, Trim: cắt bỏ các khoảng trắng thừa
<% dim a,b,c,d,e,f
a=” Hello”
b=Ltrim(a) ‘cắt bỏ hết các khoảng trắng bên trái
c=”Hello ”
d=Rtrim(a) ‘cắt bỏ hết các khoảng trắng bên phải
e=” Hello world ”
f=Trim(a) ‘cắt bỏ hết các khoảng trắng thừa 2 bên và ở giữa
%>
Left, Mid, Right: Lấy một chuỗi con trong chuỗ
i lớn

<%Dim a,b,c,d
a=”Hello World”
Chương 1: Giới thiệu ASP 11
b=left(a,5) ‘lấy 5 ký tự bên trái của a, kết quả b=”Hello”
c=right(a,5) ‘lấy 5 ký tự bên phải của a, kết quả c=”World”
d=mid(a,7,1) ‘lấy 1 ký tự của a từ vị trí thứ 7, kết quả d=”W”
%>

Các hàm khác: Space,String, StrReverse,StrComp,InStr,Replace,Split,join

1.3.5.5 Các hàm ngày tháng
Date, Time, Now: Lấy ngày, giờ hiện hành trên server
<%
Response.write “Hom nay la ngay: ” &Date ‘Date trả về ngày hiện hành
Response.write “Bay gio la”&Time ‘Time trả về giờ hiện hành
Response.write Now ‘Now trả về ngày và giờ hiện hành
%>
Các hàm khác: DateAdd, DateDiff, DatePart, Year, Month, Day, Weekday,
Hour, Minute, Second

1.3.5.6 Các hàm kiểm tra:
Các hàm này cho phép kiểm tra kiểu của biến và biểu thức
Isdate: Kiểm tra có phải đúng kiểu ngày tháng không?
<%Dim a
a=”1/1/2004”
If Isdate(a) then
Response.write “a đúng là kiểu ngày tháng ”
End if
%>
IsNumeric: Kiểm tra có phải đúng kiểu số không?
<%Dim a
A=”13”
If IsNumeric(a) then
Response.write “a đúng là kiểu số”
End if
%>
Các hàm khác: IsArray,IsEmpty,IsNull,IsObject

1.3.6 Rẽ nhánh
1.3.6.1 If
Chúng ta sử dụng if theo cú pháp như ví dụ sau:
<% h=hour(now)
If h >12 then
Response.write “Afternoon”
else
Response.write “Morning”
End if %>

Hoặc:

<% h=hour(now)
12 ASP
If h >12 then Response.write "Afternoon" else Response.write "Morning" %>

1.3.6.2 Select case else End select
Cấu trúc rẽ nhánh trong trường hợp có nhiều hơn 2 lựa chọn
<%
h=hour(now)
Select case h
Case "1"
Response.write "1 am"
Case "2"
Response.write "2 am"
Case else
Response.write "Other "
End select
%>

1.3.7 Lặp:

1.3.7.1 For…Next
Vòng lặp có số lần lặp xác định
<%Dim i
For i=1 to 10
Response.write i
Next
%>
1.3.7.2 Do While…Loop
Vòng lặp có số lần lặp không xác định
<% Dim i
i=1
Do while i<=10
Response.write i
i=i+1
Loop
%>
1.3.7.3 While Wend
Vòng lặp có số lần lặp không xác định
<% Dim i
i=1
While i<=10
Response.write i
i=i+1
Wend
%>

1.3.7.4 Do Loop Until
Vòng lặp có số lần lặp không xác định
<%
Chương 1: Giới thiệu ASP 13
i=1
do
response.write i
i=i+1
loop Until i>10
%>
1.3.8 Điều kiện and ,or, not

<% h=hour(now)
If (h >12) and (h<18) then
Response.write “Afternoon”
End if
%>

1.3.9 Thủ tục và hàm người dùng
Cũng như các ngôn ngữ lập trình khác, VBScript cho phép người dùng định
nghĩa và sử dụng các thủ tục ,hàm. Nhờ vậy chương trình có thể chia thành
các module nhỏ tạo nên cấu trúc lập trình sáng sủa (phương pháp chia để trị)
Chẳng hạn với một bài toán ASP cần thực hiện việc hiển thị dữ liệu từ
Database ra màn hình, ta có thể xây dựng các thủ tục hay hàm thực hiện
từng nhiệm vụ đó:
- Thủ t
ục KetNoi
- Thủ tục HienThi
- Thủ tục HuyKetNoi
Như vậy phần chương trình chính sẽ rất sáng sủa, chúng ta chỉ việc gọi 3 thủ
tục:
<%
KetNoi
HienThi
HuyKetNoi
%>
1.3.9.1 Thủ tục
Thủ tục thực hiện một nhóm các câu lệnh. Để viết một thủ tục chúng ta theo
cấu trúc sau:
<%Sub TenThuTuc(Tham so)
‘ Phần thân của thủ tục
End Sub
%>

Ví dụ sau đây xây dựng chương trình đăng nhập gồm 2 file: Form.asp (hiển
thị form để người dùng nhập username và password), Xulyform.asp (xử lý
form, nếu username=”test” và password=”test” thì thông báo đăng nhập
thành công, nếu không thì thông báo đăng nhập thất bại). File Xulyform.asp
sẽ viết thủ tục và gọi thủ tục này:
Form.asp
<html>
<body>
<form method="post" action="xulyform.asp">
14 ASP
<input type="text" name="user">
<input type="password" name="pass">
<input type="submit" name="submit">
</form>
</body>
</html>

Xulyform.asp
<%Sub CheckUser(username,password)
if (username<>"test") or (password <> "test") then
response.write "Dang nhap that bai!"
else
response.write "Dang nhap thanh cong!"
end if
End Sub
%>
<% dim a, b
a=request.form("user")
b=request.form("pass")
CheckUser a,b ‘gọi thủ tục
%>
1.3.9.2 Hàm
Hàm khác với thủ tục là nó trả về một kết quả. Để viết một hàm chúng ta
viết theo cấu trúc sau:
<%Function TenFunction(tham so)
‘ Phần nội dung của hàm
End Function
%>
Chú ý trong nội dung của hàm bao giờ cũng phải có một lệnh trả về kết quả:
TenFunction=
Với bài toán đăng nhập ở trên chúng ta có thể viết lại như sau (file
xulyform.asp dùng hàm)
Form.asp
<html>
<body>
<form method="post" action="xulyform.asp">
<input type="text" name="user">
<input type="password" name="pass">
<input type="submit" name="submit">
</form>
</body>
</html>

Xulyform.asp
<%Function CheckUser(username,password)
if (username<>"test") or (password <> "test") then
CheckUser="False"
else

Không có nhận xét nào:

Đăng nhận xét