Lập trình ứng dụng web - Chương II: Các lớp sử dụng trong Asp.net

Đố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.

 

ppt 65 trang dienloan 13880
Bạn đang xem 20 trang mẫu của tài liệu "Lập trình ứng dụng web - Chương II: Các lớp sử dụng trong Asp.net", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Lập trình ứng dụng web - Chương II: Các lớp sử dụng trong Asp.net

Lập trình ứng dụng web - Chương II: Các lớp sử dụng trong Asp.net
1 
CHƯƠNG II:  CÁC LỚP SỬ DỤNG TRONG ASP.NET 
Lý thuyết : 3 tiết 
Thực hành : 3 tiết 
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 
Lớp Http Request 
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; 
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 
Tập hợp QueryString(QueryString Collection ) 
	 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 
13 
Lớp Http Request 
Cách 2 : dùng action , tham số ghi sau dấu ? 
	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 = 
	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”]; 
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[ "txtP wd " ]; 
%> 
21 
Lớp Http Request 
Hoặc: Trong các HyperLink 
 Scholaship of IBM 
Var1=Request.QueryString[“ typeNews ”];// Var1=edu 
Var2=Request.QueryString[“ NewsID ”];// Var2=98708 
T ại ReadNews.aspx m uốn lấy giá typeNews and NewsID , s ử dụng cú pháp : 
22 
Lớp Http Request 
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]; 
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 ]. V alue; 
 } 
 %> 
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; 
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[ “ U s" ] = "abc" ; 
 ckInform[ "P wd " ] = "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 
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”); 
} 
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) 
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) 
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) 
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 
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; 
} 
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. 
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 
} 
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(); 
} 

File đính kèm:

  • pptlap_trinh_ung_dung_web_chuong_ii_cac_lop_su_dung_trong_asp_n.ppt