Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.35 MB, 125 trang )
Kết quả khi duyệt trang web này với a=1, b=2, c=1
5.4.2. MỘT SỐ HÀM THƯỜNG DÙNG TRONG VBSCRIPT
HÀM
CHỨC NĂNG
VÍ DỤ
KẾT QUẢ
HÀM TOÁN HỌC
Abs(x)
|x|
Abs(-1)
1
98
Sqr(x)
Sqr(4)
x
2
HÀM CHUYỂN ĐỔI KIỂU
CBool(Biến)
CByte(Biến)
CCur(Biến)
CDate(Biến)
CInt(Biến)
CStr(Biến)
Chuyển kiểu biến thành kiểu
bool
Chuyển kiểu biến thành kiểu
byte
Chuyển kiểu biến thành kiểu
Currency
Chuyển kiểu biến thành kiểu
ngày tháng
Chuyển kiểu biến thành kiểu
nguyên
Chuyển kiểu biến thành kiểu
chuỗi
HÀM THỜI GIAN
Date()
Now()
Second(BTthời gian)
Minute(BTthời gian)
Hour(BT thời gian)
Day(BT thời gian)
WeekDay((BTThờiGian)
Month(BTThờiGian)
Year(BT thời gian)
WeekDayName(n)
MonthName(n)
Ngày tháng năm hiện tại
Thời điểm hiện tại
Lấy giây của BTThờiGian
Lấy phút của BTThờiGian
Lấy giờ của BTThờiGian
Lấy ngày của BTThờiGian
Ngày trong tuần của
BTThờiGian
Lấy tháng của BTThờiGian
Lấy năm của BTThờiGian
Tên của ngày thứ n trong tuần
Tên của tháng thứ n trong năm
WeekDayName(2) Monday
MonthName(6)
June
HÀM KIỂM TRA
IsDate(Biểu thức)
IsEmpty(Biểu thức)
IsNull(Biểu thức)
IsNumeric(Biểuthức)
IsObject(Biểu thức)
Có phải là biểu thức ngày
không
Biểu thức có rỗng không? BT
rỗng là BT chưa chứa giá trị
Biểu thức có giá trị là NULL
không?
Biểu thức có là số không
Biểu thức có là đối tượng
không?
HÀM XỬ LÝ CHUỖI
LCase(Chuỗi)
UCase(Chuỗi)
Left(Chuỗi, n)
Right(Chuỗi, n)
Len(Chuỗi)
LTrim(Chuỗi)
RTrim(Chuỗi)
Trim(Chuỗi)
Chuyển chuỗi thành chữ
thường
Chuyển chuỗi thành chữ hoa
Lấy n kí tự bên trái chuỗi
Lấy n kí tự bên phải chuỗi
Độ dài của chuỗi
Cắt hết kí tự trắng bên trái
chuỗi
Cắt hết kí tự trắng bên phải
chuỗi
Cắt hết kí tự trắng hai đầu
chuỗi
LCase("heLLo")
"hello"
UCase("heLLo")
Left("heLLo",2)
Right("heLLo",2)
Len ("heLLo",2)
LTrim(" heLLo ")
"HELLO"
"he"
"Lo"
5
"heLLo "
RTrim(" heLLo ")
" heLLo"
Trim(" heLLo ")
"heLLo"
ASC("A")
65
MỘT SỐ HÀM KHÁC
Asc(kí tự)
Mã kí tự ASCII của biến
99
Chr(n)
Kí tự có mã ASCII là n
Chr(65)
"A"
5.4.3. ĐOẠN MÃ DÙNG CHUNG
Khi tiến hành xây dụng chương trình ở nhiều trang khác nhau, để tránh phải gõ lại, cập
nhật khi có thay đổi các đoạn mã trong mỗi trang người ta có thể sử dụng lại các đoạn mã ở
các trang khác để chèn vào trang hiện thời.
Cú pháp:
hoặc
Nếu sử dụng INCLUDE VIRTUAL thì thư mục chứa file cần chèn vào phải là
một thư mục ảo trên server và phần mở rộng của file phải là .INC, còn nếu dùng
INCLUDE FILE thì phải chỉ ra đường dẫn vật lý của file cần chèn.
100
5.5. Tệp cấu hình GLOBAL.ASA
Global.asa là một file được đặt trong thư mục gốc của một ứng dụng web, nó là file
được thực thi chỉ một lần đầu tiên vào lúc trình duyệt đầu tiên phát yêu cầu đến ứng dụng
web. Lúc này Global.asa được web server tìm trên thư mục gốc của ứng dụng và thực thi nó.
File này thường được dùng để nạp các cấu hình cần thiết, khai báo đối tượng và đặt các thủ
tục đáp ứng sự kiện.
5.5.1. Các sự kiện
a. Sự kiện Application_OnStart
Sự kiện Application_OnStart phát sinh khi người dùng đầu tiên gửi yêu cầu đến ứng
dụng web. Application_OnStart chỉ xảy ra một lần đối với người đầu tiên. Muốn sự kiện này
xảy ra lại chỉ có cách khởi động lại IIS.
Viết lệnh đáp ứng sự kiện này thường dùng để khởi tạo giá trị các biến ở mức toàn cục
và hiệu lực với mọi người dùng chẳng hạn như: số người ghé thăm trang web, đường dẫn đến
CSDL,...
b. Sự kiện Session_OnStart
Phát sinh khi người dùng yêu cầu trang đầu tiên trong ứng dụng từ trình duyệt. Ta sử
dụng sự kiện này để khởi tạo các gía trị biến, các đối tượng cần thiết.
Sự kiện này có thể xảy ra nhiều lần với mỗi người dùng
c. Sự kiện Session_OnEnd
Sự kiện này phát sinh khi phiên làm việc của người dùng chấm dứt nghĩa là nó hết hạn
hoặc người dùng đóng cửa sổ trình duyệt lại.
Trong sự kiện này ta thường viết các thủ tục để xóa các biến nhớ hoặc có thể lưu lại các
trạng thái thông tin nếu cần.
Tương tự như sự kiện Session_OnStart, sự kiện Session_OnEnd cũng có thể xảy ra
nhiều lần với mỗi người dùng.
d. Sự kiện Applicaton_OnEnd
Sự kiện này phát sinh khi ứng dụng ASP được tải xuống bằng MMC (Microsoft
Management Console), hoặc khi ứng dụng bị ngừng một cách vô thức bởi một lý do nào đó
(dịch vụ web bị ngừng trên web server)
Tương tự như Application_OnStart, Application_OnEnd chỉ phát sinh một lần duy nhất,
các mã lệnh được viết để xử lý sự kiện này sẽ được gọi sau cùng. Ta thường dùng sự kiện này
để lưu lại các giá trị cần thiết ngay trước khi dịch vụ web ngừng làm việc.
5.5.2. Khai báo đối tượng
File cấu hình Global.asa là nơi duy nhất ta có thể khai báo các đối tượng COM bằng cặp
thẻ
Cú pháp
101
Nếu ta sử dụng trình soạn thảo VisualInterDev trong bộ VisualStudio thì việc thêm các
đối tượng vào Global.asa rất đơn giản, thao tác còn lại chỉ là kéo-thả. Ta cần lưu ý rằng các
đoạn mã trên không đặt trong <%...%>
- Scope là phạm vi của biến: là Application hoặc Session
- ID: Tên ta đặt cho đối tượng
- ProgID hoặc ClassID là định danh của đối tượng COM ta muốn chèn.
Ví dụ về chèn một đối tượng
5.5.3. Một file cấu hình Global.asa đơn giản
5.5.2. TẬP HỢP (COLLECTION) TRONG ASP
5.5.2.1. Khái niệm
Tập hợp là một khái niệm thường xuyên phải sử dụng trong ASP. Hiểu một cách đơn
giản, tập hợp là một số các biến, đối tượng thuộc cùng một đối tượng nào đó. Trong ASP đa
số các đối tượng đều có các tập hợp bên trong nó.
102
5.5.2.2. Cách truy cập các phần tử trong tập hợp
Một tập hợp trong ASP có tính chất như một mảng các giá trị. Chúng ta có thể truy cập
thông qua một khóa hoặc một số nguyên coi như chỉ số của mảng đó. Một tập hợp thông
thường có 3 thuộc tính cơ bản đó là Item, Key và Count trong đó thuộc tính Item là "thuộc
tính mặc định" nghĩa là trong một số trường hợp ta có thể không cần thiết viết tên thuộc tính
này khi truy cập.
a. Thuộc tính Item
Được dùng để truy cập đến một phần tử nào đó trong tập hợp. Ta có thể xác định vị trí
của phần tử đó bằng một chuỗi hay có thể là một số.
Ví dụ: Ta có thể truy cập vào tập hợp QueryString của đối tượng Request như sau:
hoặc ta có thể
Vì thuộc tính Item là thuộc tính mặc định của tập hợp nên ta có thể bỏ qua thuộc tính
này cho đơn giản trong khi viết như sau:
b. Thuộc tính Key
Thuộc tính này trả ra tên cụ thể của một phần tử trong tập hợp.
Ta có công thức:
- Nếu i là chỉ số của phần tử trong một tập hợp A thì name = A.Key(i) là tên của
phần tử này. Khi đó cách viết A.Item(i) và A.Item(Name) là hoàn toàn tương
đương.
c. Thuộc tính Count
Thuộc tính này trả về tổng số phần tử trong một tập hợp.
103
5.6. Xử lý các FORM dữ liệu
5.6.1. Mở đầu
Các form dữ liệu là nơi người dùng có thể nhập dữ liệu vào và gửi về phía Server. Một
form chứa một hoặc nhiều điều khiển và người sử dụng có thể nhập các giá trị vào. Sau khi
nhập xong dữ liệu người sử dụng sẽ ra lệnh gửi form đi, form chứa các dữ liệu này sẽ được
gửi tới địa chỉ được chỉ định trong form để xử lý. Kết quả trả về cho người dùng phụ thuộc
vào trình xử lý trên server.
Để định nghĩa một form ta sử dụng đoạn mã
Phương thức: Cách thức gửi form đi, có thể sử dụng GET hoặc POST
5.6.2. Sử dụng phương thức GET
5.6.2.1. Định nghĩa form dùng phương thức GET
Để định nghĩa form dùng phương thức GET ta dùng đoạn mã sau
Ví dụ
5.6.2.2. Đặc điểm form dạng GET
Khi định nghĩa form dạng GET thì các dữ liệu mà form gửi đến trình xử lý sẽ được gửi
đi theo phương thức GET. Nghĩa là các dữ liệu này sẽ được đưa thêm vào phần sau của chuối
URL trên trình duyệt.
Với cách làm này có đôi phần tiện dụng vì ta có thể nhập giá trị các biến trực tiếp lên
URL của trình xử lý. Tuy nhiên có một nhược điểm là dung lượng kí tự có thể nhập lên URL
là khá nhỏ (dưới 2000 kí tự). Do đó người ta chỉ dùng cách này khi lượng thông tin cần truyền
là đơn giản, dung lượng ít.
5.6.2.3. Cách lấy dữ liệu từ form dạng GET
Để lấy dữ liệu từ form dạng GET người ta dùng tập hợp QueryString của đối tượng
Request.
Cú pháp: Request.QueryString("
Chi tiết về đối tượng này sẽ được đề cập trong các bài sau. Ta có thể tam hiểu
thông qua ví dụ sau đây:
5.6.2.4. Ví dụ
Trong ví dụ này ta làm một form cho phép người sử dụng nhập thông tin về Họ và tên
rồi gửi về trình xử lý theo phương thức GET, trình xử lý sẽ hiện một câu thông báo chào
người đó.
FORMGET.HTM
104
Sau khi nhập dữ liệu trên trình duyệt và nhấn Gửi đi chú ý chuỗi trên URL
5.6.3. Sử dụng phương thức POST
5.6.3.1. Định nghĩa form dùng phương thức POST
Để định nghĩa form dạng POST ta dùng đoạn mã sau
Ví dụ:
5.6.3.2. Đặc điểm form dạng POST
Khi định nghĩa form dạng POST các dữ liệu sẽ được gửi thẳng đến trình xủ lý theo
phương thức POST, không qua URL do đó lượng dữ liệu được gửi đi là không hạn chế.
Người ta thường dùng phương thức POST để truyền các dữ liệu lớn.
5.6.3.3. Cách lấy dữ liệu từ form dạng POST
Để lấy dữ liệu từ form được gửi đến theo phương thức POST người ta dùng tập hợp
FORM của đối tượng Request.
Cú pháp: Request.Form("
Chi tiết về đối tượng này sẽ được đề cập trong các bài sau. Ta có thể tam hiểu thông qua
ví dụ sau đây:
5.6.3.4. Ví dụ
Trong ví dụ này ta làm lại ví dụ trong phần 2.4 của bài này nhưng có khác là dữ liệu
trong form được gửi đi theo phương thức POST.
FORMPOST.HTM
105
Sau khi nhập dữ liệu trên trình duyệt và nhấn Gửi đi chuỗi trên URL không có dữ liệu
của form
106
5.7. Các đối tượng cài sẵn trong ASP
5.7.1. Các đối tượng ASP
Thực chất ASP được xây dựng trên cơ sở hướng đối tượng và nó có một tập các đối
tượng được cài đặt sẵn làm cơ sở cho người lập trình, có các đối tượng tiện ích (có thể cài đặt
hoặc không) và bản thân chúng cũng có những đối tượng cho riêng mình đó là các đối tượng
ActiveX/COM
Một số đối tượng cài sẵn thông dụng:
o Request
o Response
o Application
o Session
o Server
Các đối tượng có các tập hợp, các thuộc tính và các phương thức, để truy cập vào một
thuộc tính hoặc một phương thức nào đó của đối tượng ta sử dụng:
Ví dụ:
Response.Write("Hello World")
5.7.2. Đối tượng REQUEST
Một trong những mục đích của ASP là cho phép nhận thông tin từ phía client và người
sử dụng. Đối tượng Request được dùng để nhận các thông tin đó được dễ dàng. Đối tượng
Request quản lý các thông tin được gửi từ phía web browser lên server như dữ liệu của các
form, cookies...
Đối tượng Request giúp chúng ta truy cập vào đoạn đầu và thân các yêu cầu HTTP của
người sử dụng. Đây là đối tượng rất quan trọng vì ta phải thông qua nó để nhận được và đáp
ứng các yêu cầu người sử dụng đưa ra. Sử dụng đối tượng Request chúng ta mới có thể xây
dựng được trang web động và thực hiện được các hoạt động khác có ý nghĩa hơn ở máy chủ
như cập nhật các dữ liệu ở máy khách vào cơ sở dữ liệu...
5.7.2.1. Một số tập hợp thông dụng trong đối tượng Request
TÊN TẬP HỢP
QueryString(
Form(
Cookies(
ServerVariables(
MIÊU TẢ
Chứa các giá trị được gửi lên từ các yêu cầu HTTP
Get (hiểu đơn giản là từ các URL)
Chứa các giá trị trong form được gửi đến (với điều
kiện form phải sử dụng phương pháp POST
Chứa các thông tin của các cookies được gửi trong
yêu cầu HTTP
Chứa danh sách các giá trị của các biến môi trường
đã được xác định trước
a. Tập hợp QueryString
Tập hợp QueryString cho phép ta lấy thông tin từ máy khách gửi đến, có thể là một
form được gửi theo phương pháp GET hoặc dữ liệu được gắn với URL khi trang web được
yêu cầu.
107
Để đưa được các biến vào chương trình, sau phần cuối của địa chỉ thông thường ta thêm
dấu (?) rồi sau đó đến từng cặp
Ví dụ: để truyền ba biến a, b, c có giá trị lần lượt là 1, 2, 1 về trang
PTBAC2.ASP trên server thì chuỗi URL khi đó như sau.
http://localhost/ptbac2.asp?a=1&b=2&c=1
Tập hợp này có tính năng tương đối hạn chế về số lượng các kí tự có thể gửi được trong
tiêu đề và trong yêu cầu HTTP. Giới hạn dữ liệu này ở khoảng dưới 2000 kí tự. Nêu số lượng
kí tự vượt quá số lượng giới hạn thì chúng sẽ không được sử dụng mặc dù script vẫn chạy.
Ví dụ: ta quay lại ví dụ Giải phương trình bậc 2 ở bài trước. Các biến a, b, c được lấy
vào trong chương trình bằng cách lấy từ QueryString.
Và các biến này được truyền vào từ URL của trình duyệt:
b. Tập hợp Form
Tập hợp này cho phép nhận thông tin đầu vào từ các form được gửi đến thông qua
phương thức POST. Phương thức này có ưu điểm hơn phương thức GET ở chỗ là có thể
truyền được lượng dữ liệu lớn.
* Ví dụ: Ta có thể sửa lại chương trình giải phương trình bậc 2 trong phần trên để cho
phép người sử dụng nhập dữ liệu từ trang PTBAC2.HTM và gửi dữ liệu sang trang
GIAIPTB2.ASP để xử lý như sau:
- Mã lệnh PTBAC2.HTM
- Kết quả PTBAC2.HTM
108