Đối tượng Request nhận tất cả giá trị mà trình
duyệt của client gởi đến server thông qua HTTP
request.
 Request đại diện cho Client khi yêu cầu trang
Web, Server sẽ dùng vừa Response vừa
Request để đáp ứng yêu cầu hay đòi hỏi thông
tin từ Client.
                
              
                                            
                                
            
                       
            
                 17 trang
17 trang | 
Chia sẻ: lylyngoc | Lượt xem: 1753 | Lượt tải: 1 
              
            Bạn đang xem nội dung tài liệu Chương IV: Các lớp sử dụng trong Asp.net, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
5/10/2013
1
1
CHƯƠNG IV:
CÁC LỚP SỬ DỤNG 
TRONG ASP.NET
2
Lớp Http Request
 Request là một thể hiện của lớp HttpRequest,
Browser dùng Request object để gửi thông tin
cần thiết tới Server
Data
3
Lớp Http Request
 Đối tượng Request nhận tất cả giá trị mà trình
duyệt của client gởi đến server thông qua HTTP
request.
 Request đại diện cho Client khi yêu cầu trang
Web, Server sẽ dùng vừa Response vừa
Request để đáp ứng yêu cầu hay đòi hỏi thông
tin từ Client.
4
Lớp Http Request
Các thuộc tính
 RequestType: trả về phương thức truyền dữ
liệu từ client đến server gồm 2 phương thức
POST và GET
Cú pháp
valMethode=Request.RequestType;
5/10/2013
2
5
Lớp Http Request
1. Tập hợp Form (Form collection )
Form collection đựơc sử dụng để tập hợp dữ
liệu được chứa trong các phần tử của form
chuyển từ client đến server bằng phương thức
POST.
 Lấy dữ liệu từ các phần tử của form:
Cú pháp
VarName= Request.Form[“FieldName”];
6
Lớp Http Request
 Ví dụ:
UserName: 
Password: 
txtUser
txtPwd
Default.aspx
7
Lớp Http Request
Ví dụ (tt):
Tại trang CheckUser.aspx, lấy giá trị của UserName và 
Password trên form
UserName:
Password
8
Lớp Http Request
Các thuộc tính của form Collection:
 Count: trả về số phần tử của form chuyển từ 
client đến server
Cú pháp:
Numelement=Request.Form.Count;
5/10/2013
3
9
Lớp Http Request
 Keys[i]: trả về tên của phần tử tại vị trí thứ i, 
trong đó i có giá trị từ 0 đến n-1 
với n=Request.Form.Count
 Cú pháp: 
Varfield=Request.Form.Keys[i];
10
Lớp Http Request
 Ví dụ: 
<% int i, num;
string varField, varName;
num = Request.Form.Count;
for (i = 0; i < num; i++)
{
varField = Request.Form.Keys[i];
varName = Request.Form[varField];
} 
%>
11
Lớp Http Request
2. Tập hợp QueryString
(QueryStringCollection)
Request.QueryString dùng để lấy dữ liệu
được gửi từ client đến server bằng phương
thức GET hoặc truyền dữ liệu có chứa tag
liên kết Hyperlink.
QueryString được định nghĩa là chuỗi nằm
sau dấu ? trong chuỗi URL (Uniform Resource
Locator) trên phần Address của trình duyệt.
12
Lớp Http Request
Các phần tử của form
Có 3 cách truyền tham số và gọi file xử lý 
 Cách 1 : dùng action , tham số truyền qua 
phần tử của form
5/10/2013
4
13
Lớp Http Request
 Cách 2 : dùng action , tham số ghi sau dấu ?
<Form method=”Get or Post” 
action=”FileName.aspx?var1=value1&var2=value2&
…”>
Các phần tử của form
14
Lớp Http Request
 Cách 3 : dùng chuỗi link , tham số ghi sau dấu ? 
 Các tham số được khai báo cách nhau bởi dấu &,
giá trị của mỗi tham số đặt sau dấu =
<a 
href=”FileName.aspx?var1=value1&var2=value2&…”>
Text hoặc image
15
Lớp Http Request
 Nếu tham số không có giá trị thì giá trị trả về
của tham số khi sử dụng Request.QueryString
là NULL.
 Với 3 cách truyền dữ liệu từ Client nêu trên,
phía Server sẽ dùng tập hợp QueryString để
nhận dữ liệu
16
Lớp Http Request
 Lấy dữ liệu từ các phần tử của form hay 
:
Cú pháp:
Request.QueryString[“varName”];
5/10/2013
5
17
Lớp Http Request
Các thuộc tính của QueryStringCollection:
 Count: trả về số phần tử của form chuyển từ
client đến server
Cú pháp:
Numelement=Request.QueryString.Count;
18
Lớp Http Request
 Keys[i]: trả về tên của phần tử tại vị trí thứ i, 
trong đó i có giá trị từ 0 đến n-1 với 
n=Request.QueryString.Count
 Cú pháp: 
Ví dụ:
Varfield=Request.QueryString.Keys[i];
19
Lớp Http Request
UserName: <br /
Password: 
txtUser
txtPwd
20
Lớp Http Request
 Tại Server (file CheckUser.aspx), lấy giá trị của 
UserName và Password 
<% string strUser, strPws;
strUser = Request.QueryString["txtUser"];
strPws = Request.QueryString["txtPwd"];
%>
5/10/2013
6
21
Lớp Http Request
 Hoặc: Trong các HyperLink
<a
href=“ReadNews.aspx?typeNews=edu&NewsID=98708”>
Scholaship of IBM
Var1=Request.QueryString[“typeNews”];//Var1=edu
Var2=Request.QueryString[“NewsID”];//Var2=98708
Tại ReadNews.aspx muốn lấy giá typeNews and 
NewsID, sử dụng cú pháp:
22
Lớp Http Request
3. Tập hợp Cookies (CookiesCollection)
 Cookies là một mẫu thông tin nhỏ dùng để lưu trữ
thông tin của người dùng trên máy client
 Cookies có 2 dạng:
 Cookies[“varcookies”].Value: trả về giá trị 
chứa biến cookies là varcookies (1 chiều)
 Cookies[“varcookies”] [“Subvarcookies”]: 
trả về giá trị chứa biến cookies là subvarcookies 
(nhiều chiều)
 Cookies[“varcookies”] 
[“Subvarcookies”][“hhhhhh”]:
23
Lớp Http Request
Thuộc tính của Cookies:
 Count: Xác định máy client có bao nhiêu phần
tử cookies
Cú pháp:
Numelement=Request.Cookies.Count;
24
Lớp Http Request
 Keys[i]: trả về tên của phần tử tại vị trí thứ i, 
trong đó i có giá trị từ 0 đến n-1 với 
n=Request.Cookies.Count
Cú pháp: 
Varfield=Request.Cookies.Keys[i];
5/10/2013
7
25
Lớp Http Request
Ví dụ:
<% int i, num;
string varField, varName;
num = Request.Cookies.Count;
for (i = 0; i < num; i++)
{
varField = Request.Cookies.Keys[i];
varName = Request.Cookies.[varField].Value;
} 
%> 
26
Lớp Http Response
Http Response được sử dụng để truyền dữ liệu
webserver đến webBrowser
Data
27
Lớp Http Response
Các thuộc tính
 Buffer: có 2 giá trị true và false quy định cách 
truyền tải dữ liệu:
 True: Hoàn tất công việc và gửi một lần
 False: Thực hiện xong đến đâu thì gửi đến 
đó
28
Lớp Http Response
Cú pháp:
 isClientConnected: Kiểm tra máy client có yêu
cầu kết nối đến server, kết quả trả về giá trị
true/false
 Cookies: được sử dụng để ghi Cookies. Cookies 
được thể hiện trong asp.Net là lớp Httpcookies
Response.Buffer=true/false;
5/10/2013
8
29
Lớp Http Response
 Khởi tạo biến cookies:
 Ghi cookie vào client
Httpcookies varck= new Httpcookies(“CkName”);
varck.Value =value;
30
Lớp Http Response
 Server ghi vào máy trạm 1 biến cookies
 Xóa cookies
Response.Cookies.Add(varck);
Response.Cookies.Clear();
31
Lớp Http Response
 Ví dụ:khởi tạo biến cookie và gán giá trị
<% string v, v1,v2,v3; 
HttpCookie ckInform = new HttpCookie("Infor");
ckInform[“Us"] = "abc";
ckInform["Pwd"] = "xyz";
ckInform["Author"] = "123";
Response.Cookies.Add(ckInform); // server add cookies 
vào máy client
%>
32
Lớp Http Response
// Đọc Cookies
v = Request.Cookies[“Infor”].value ;
// result :v=”abc”,”xyz”,”123”
// hay dùng
v1 = Request.Cookies[“Infor”] [“Us”];//abc
v2 = Request.Cookies[“Infor”] [“Pwd”];//xyz
v3 = Request.Cookies[“Infor”] [“Author”];//123
5/10/2013
9
33
Lớp Http Response
Các phương thức
 Clear(): Xóa vùng tạm
Cú pháp:
 End(): Kết thúc tiến trình xử lý trên Server và 
đẩy dữ liệu tới Client
 Flush(): Kết thúc tiến trình, quay lại thực hiện 
tiếp
Response.Clear()
34
Lớp Http Response
<%
int i;
Response.Buffer = true;
for (i = 1; i < 10000; i++)
{%>
<%if (i % 10000 == 0)
Response.Flush();%> 
Ví dụ:
35
Lớp Http Response
 Redirect(url) : dùng để chuyển client sang
một URL khác
 Redirect(url, Boolean): dùng để chuyển
client sang một URL khác, trong đó:
 Nếu tham số Boolean =true thì khi thực hiện
xong lệnh Response sẽ thực hiện tiếp
 Nếu số Boolean =false thì khi thực hiện xong
lệnh Response sẽ dừng
36
Lớp Http Response
 Ví dụ:
Response.Redirect(“T1.aspx”);
m=m+1;
Try
{
Response.Redirect(“T1.aspx”, false);
m=m+1;
}
Catch
{
Response.Redirect(“T2.aspx”);
}
5/10/2013
10
37
Lớp Http Response
 Write(“Data”): Ghi dữ liệu ra trang web 
hoặc
Response.Write(strname)
38
Lớp Http Server
 Đối tượng Server cung cấp các phương thức giúp
chuyển điều khiển giữa các trang với nhau, lấy
thông tin về mã lỗi, encode, …
 Các thuộc tính
 MachineName: tên server
 ScriptTimeout: thiết lập thgian xử lý tối đa 1 
file
Ví dụ: 
Server.ScriptTimeout=100s //thiết lập thgian mặc định
39
Lớp Http Server
Các phương thức
 MapPath(“URL”): ánh xạ đường dẫn ảo thành
đường dẫn vật lý cho một tập tin trên Server
 Cú pháp:
 Path là chuỗi thực hiện đường dẫn tương đối
của tập tin trên ứng dụng Web
 Phương thức sẽ trả về chuỗi hiện thực đường
dẫn vật lý của tập tin đó.
Server.MapPath(path)
40
Lớp Http Server
 HtmlEncode(str): dùng để mã hoá HTML
thành chuỗi
Cú pháp:
Server.HTMLEncode(str)
5/10/2013
11
41
Lớp Http Server
 Khi mã hoá chuỗi HTML sang chuỗi bình thường
nếu gặp các ký tự như sau sẽ chuyển sang ký
tự tương ứng:
 Ký tự <chuyển thành <
 Ký tự >chuyển thành >
 Ký tự & chuyển thành &
 Dấu đôi “ chuyển thành "
42
Lớp Http Server
 HtmlDecode(strcontent):giải mã các thẻ HTML
Ví dụ:
Str=”n>5”
Str=server.HtmlDecode(str); // kết quả n>5
43
Lớp Http Server
 Transfer: gửi tất cả thông tin mà nó đã xử lý
từ trang ASP hiện hành sang trang ASP khác
Cú pháp:
Trong đó, tham số path là đường dẫn của tập 
tin ASP cần chuyển điều khiển. 
Server.Transfer(path)
44
Lớp Http Server
 Phương thức URLEncode: Tương tự như
phương thức HTMLEncode, phương thức
URLEcode dùng để mã hoá URL thành chuỗi
Cú pháp
Server.URLEncode(str)
5/10/2013
12
45
Lớp Http Server
 Khi mã hoá chuỗi URL sang chuỗi bình thường
nếu gặp các ký tự như sau, sẽ chuyển sang ký
tự tương ứng:
 Ký tự khoảng trắng chuyển thành dấu +
 Ký tự không thuộc ký tự chữ và số sẽ chuyển 
thành số hexadecimal.
46
Lớp Http Server
 Phương thức CreateObject: Phương thức
này (không có giá trị trả về) dùng để tạo đối
tượng thành phần trên Server
 Cú pháp
 Tham số progid chỉ định loại đối tượng cần
tạo với định dạng
[Vendor.] Component[.Version]
Server.CreateObject(progid)
47
Lớp Http Server
Ví dụ: 
Tạo đối tượng ADODB.Connection, 
ADODB.Recordset, MSWC.AdRotator, ... 
<%
Set myAd=Server.CreateObject(MSWC.AdRotator)
Set myCon=Server.CreateObject(ADODB.Connection)
Set myCon=Server.CreateObject(ADODB.Recordset)
%>`
48
Lớp Http Server
 Phương thức Execute: không có giá trị trả về,
dùng để gọi một tập tin .asp và xử lý nó như một
phần của kịch bản ASP
 Cú pháp
 Path là đường dẫn và tên tập tin asp cần thực
thi, tương tự như gọi thủ tục trong nhiều ngôn
ngữ lập trình khác.
Server.Execute(path)
5/10/2013
13
49
Session
 Đối tượng Session là một websever cơ bản sử
dụng trong ASP và ASP.NET được dùng để lưu
trữ trạng thái.
 Thông tin được lưu trữ trong Session là của một
người dùng trong một phiên làm việc cụ thể.
 Web Server sẽ tự động tạo một đối tượng
Session cho mỗi người dùng mới kết nối vào ứng
dụng và tự động hủy chúng nếu phiên làm việc
kết thúc
50
Session
 Khởi tạo:
 Lấy giá trị từ biến Session 
Session[“SessionName”]=Session[“SessionName”] 
+value + @
@: dùng để tách các giá trị (có thể chọn tùy ý)
Session[“SessionName”]=value
varName=Convert.ToString(Session[“SessionName”])
51
Session
Thuộc tính:
 Timeout: Qui định khoảng thời gian (tính
bằng phút) Web Server duy trì Session nếu
người dùng không gởi yêu cầu nào về lại
Server.
 Giá trị mặc định của Timeout là 20. Nếu không
có yêu cầu nào kể từ lần yêu cầu sau cùng một
khoảng thời gian là phút, đối tượng
Session mà Web server cấp cho lần làm việc đó
sẽ tự động được giải phóng.
52
Session
 Những yêu cầu sau đó, web server coi như là
một người dùng mới, và sẽ cấp một đối tượng
Session mới
Ví dụ:
Session.TimeOut = 100 //Thiết lập thời gian 
cho 1 phiên làm việc của user là 100 phút 
 Có thể thiết lập thuộc tính này trong tập tin 
Web.config trong 
5/10/2013
14
53
Session
 SessionID: chứa ID của session đang kích
hoạt, mỗi user đựơc phân biệt bởi sessionID gọi
là mã phiên làm việc.
 Count: trả về số session trong một ứng dụng
54
Session
Phương thức
 Abandon(): giải phóng vùng nhớ được dùng
để duy trì đối tượng Session trên Web Server
ngay khi được gọi thực hiện. Những yêu cầu
sau đó được Web server coi như là một người
dùng mới.
 Remove(“SessionName”): xoá dữ liệu trên 
biến “VarSession” 
 RemoveAll(): Xoá dữ liệu, nhưng sessionID 
vẫn tồn tại 
55
Session
Ví dụ: Tạo chức năng đăng nhập và thoát
Từ Menu chọn Website Add new item  Web 
User Control, đặt tên là Login.aspx 
Thiết kế giao diện như sau: 
56
Session
Khởi tạo và Huỷ thông tin đăng nhập của người dùng 
trong Session 
void Session_Start(object sender, EventArgs e) 
{ 
// Tăng số khách viếng khi có 1 phiên làm việc của user
Application["SoKhachVieng"] = 
(int)Application["SoKhachVieng"] + 1; 
// Thiết lập thời gian TimeOut cho mọi phiên là 30 phút
Session.Timeout = 30; 
// Đặt trạng thái ban đầu của user là chưa đăng nhập
Session["LOGIN_OK"] = false; 
}
5/10/2013
15
57
protected void btnLogin_Click(object sender, EventArgs e) 
{ 
if (Authority(txtUserName.Text, txtPassword.Text)) 
{ 
// Lưu thông tin đăng nhập thành công vào Session
Session["LOGIN_OK"] = true; 
// Ẩn chức năng Login
panelLogin.Visible = false; 
// Hiển thị chức năng logout và lời chào mừng 
LblGreeting.Text = "Chào mừng bạn " + txtUserName.Text 
+ " đã đăng nhập website!"; 
} 
else 
{ 
// Lưu thông tin đăng nhập thất bại vào Session 
Session["LOGIN_OK"] = false; 
} 
} 58
Session
protected bool Authority(string user, string pwd) 
{ 
if (user == "aaa" && pwd == "1234") 
{ 
return true; 
} 
return false; 
} 
59
Application
 Đối tượng Application được sử dụng để quản lý
tất cả các thông tin của một ứng dụng web, bao
gồm các file, trang web, sự kiện, module và code
trong thư mục web ảo(virtual directory) và các thư
mục con của nó
 Application chia sẻ thông, nghĩa là một Application
sau khi khởi tạo thì mọi người sử dụng có thể truy
cập đối tượng này
60
Application
 Sự kiện: global.asax
 Application_Start: Khi ứng dụng web lần 
đầu tiên được gọi 
 Application_End: Khi ứng dụng web kết 
thúc. 
5/10/2013
16
61
Application
 Khởi tạo: 
Đối tượng Application được tạo khi client yêu 
cầu bất kỳ trang nào trong ứng dụng
Application[“TenBien”] = “Value” ;
62
Application
 Lấy giá trị:
string s = (string) Application[“chuoi”] ;
int count = (int) Application[“count”] ;
63
Application
Ví dụ: Khởi tạo và lưu thông tin Số người duyệt 
website khi website được kích hoạt lần đầu tiên 
void Application_Start(object sender, EventArgs e) 
{ 
Application["SoKhachVieng"] = 0;
// Khởi tạo số khách viếng ban đầu là 0 
}
64
Application
 Mở trang Global.asax ở chế độ View Code 
void Session_Start(object sender, EventArgs e) 
{ 
Application["SoKhachVieng"] = 
int)Application["SoKhachVieng"]+1;
// Tăng số khách viếng khi có 1 phiên làm việc của user 
} 
5/10/2013
17
65
Application
Ví dụ :Lấy thông tin số khách viếng website và 
hiển thị ra màn hình 
Mở trang Index.aspx ở chế độ View Code, Xử lý 
trong hàm Page_Load như sau: 
protected void Page_Load(object sender, 
EventArgs e) 
{ 
lbtCount.Text = "Số khách viếng thăm :" + 
Application["SoKhachVieng"].ToString(); 
}