Bài 2: Các lớp sử dụng trong
ASP.NET
2.1. Request 2.2. Response 2.3. Cookies 2.4. Server 2.5. Session 2.6. Application 2.7. Chu trình sống của một trang web
1
2.1 Lớp Http Request
Khái niệm Các thuộc tính
2
Khái niệm
Request là một đối tượng của ASP.NET, nó cho phép đọc các thông tin do các trang khác gửi (Submit) đến
3
Các thuộc tính
RequestType Request.Form Request.QueryString Cookies
4
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 Namespace: System.Web Assembly: System.Web (in System.Web.dll) Type Value: System.String Cú pháp:
public string RequestType { get; set; }
5
Request.Form
Form collection 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
Cúpháp:
Request.Form( element )[(index)|.Count];
Request.Form.Keys[i];
6
Ví dụ 1 - Request.Form( element )
7
Default.aspx
8
CheckUser.aspx
UserName:
<% =Request.Form["txtUser"] %>
Password:
<% =Request.Form["txtPwd"] %>
9
Request.Form.Count;
Trả về số phần tử của form chuyển từ Client đến
Server
Request.Form.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
10
CheckUser.aspx
UserName:
<%=Request.Form["txtUser"] %>
Password:
<%=Request.Form["txtPwd"] %>
Số phần tử:
<%=Request.Form.Count %>
<% int i, num;
string s1;
num = Request.Form.Count;
for (i = 0; i < num; i++)
{
s1 = Request.Form.Keys[i]; Response.Write(Request.Form[s1]);
} %>
11
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
http://
Cú pháp:
Request.QueryString( variable )[(index)|.Count]
12
Cách truyền tham số
Text hoặc image
2
13
1
Default.aspx
14
1
CheckUser.aspx
<% string strUser, strPws;
strUser = Request.QueryString["txtUser"]; strPws = Request.QueryString["txtPwd"];
%>
UserName:
<%=strUser%>
Password:
<%=strPws %>
15
2
Default.aspx
Tin tứcÂm nhạc
16
2
CheckUser.aspx
Tin tuc
Music
<% string strUser, strPws;
strUser = Request.QueryString["txtUser"]; strPws = Request.QueryString["txtPwd"];
%>
UserName: <%=strUser%>
Password: <%=strPws %>
17
2
New.aspx
<% String strID, strType;
strID = Request.QueryString["Id"]; strType = Request.QueryString["type"];
%>
Ban chon ma so : <%=strID%>
Kieu hien thi : <%=strType%>
18
Request.QueryString.Count;
Trả về số phần tử của form chuyển từ client đến
server
Request.QueryString.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
19
2.2 Lớp Http Response
Khái niệm Các thuộc tính Các phương thức
20
Khái niệm
Http Response được sử dụng để truyền dữ liệu từ webserver đến webBrowser
Data
21
Các thuộc tính
Buffer:
Quy định cách truyền tải dữ liệu:
Response.Buffer=true/false;
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 đó
isClientConnected
Kiểm tra máy client có yêu cầu kết nối đến server Response.isClientConnected=true/false;
22
Các phương thức
• Xóa vùng tạm; • Cú pháp: Response.Clear();
• Kết thúc tiến trình xử lý trên Server và đẩy dữ
liệu tới Client;
• Cú pháp: Response.End();
Clear End Flush Redirect Write
• Kết thúc tiến trình, quay lại thực hiện tiếp; • Cú pháp: Response.Flush();
• Dùng để chuyển client sang một URL khác; • Cú pháp: Response.Redirect(url, boolean);
• Dùng để ghi dữ liệu ra web; • Cú pháp: Response.Write(strname);
Hoặc <% = strname %>
2.3 Lớp HttpCookies
Được sử dụng để ghi Cookies Cookies trong asp.Net ở lớp Httpcookies Ví dụ:
Khởitạobiếncookies: Httpcookies varCk = new Httpcookies(“CkName”); Ghigiátrịvàobiếncookie: varCk.Value =value; Server ghi vào Client một biến Cookie:
Response.Cookies.Add(varck);
Xóa Cookie: Response.Cookies.Clear(varck);
24
Ví dụ: <% string v, v1,v2,v3;
HttpCookie ckInform = new HttpCookie("Infor");
ckInform[“Us"] = "abc";
ckInform["Pwd"] = "xyz";
ckInform["Author"] = "123";
Response.Cookies.Add(ckInform);
%>
25
Ví dụ: <% string v, v1,v2,v3;
v = Request.Cookies[“Infor”].value ;
Hoặc:
v1 = Request.Cookies[“Infor”] [“Us”]; v2 = Request.Cookies[“Infor”] [“Pwd”]; v3 = Request.Cookies[“Infor”] [“Author”];
%>
26
2.4 Lớp Http Server
Khái niệm Các thuộc tính Các phương thức
27
Khái niệm
Đố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, …
Đối tượng Server cung cấp thông tin của
Server cho ứng dụng
28
Các thuộc tính
MachineName
• Cho tên server • Cú pháp: Server.MachineName();
ScriptTimeout
• Thiết lập thời gian xử lý tối đa 1 file • Cú pháp: Server. ScriptTimeout=100s;
29
Các phương thức
• Á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: Server.MapPath(path);
• Gửi tất cả thông tin mà nó đã xử lý từ trang
MapPath Transfer HtmlEncode HtmlDecode
ASP hiện hành sang trang ASP khác • Cú pháp: Server.Transfer(path);
• Dùng để mã hoá HTML thành chuỗi • Cú pháp: Server.HTMLEncode(str);
• Giải mã các chuỗi thành HTML thành • Cú pháp: Server.HTMLDecode(str);
• 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
"
30
2.5 Session
Khái niệm Thuộc tính và phương thức
31
Khái niệm
Dùng để lưu trữ thông tin của người dùng trong ứng
dụng
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 người dùng còn không làm việc với ứng dụng nữa
32
Thuộc tính và phương thức
Timeout Abandon
• Qui định khoảng thời gian (tính bằng phút) mà Web Server duy trì đối tượng 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 thuộc tính này là 20 phút
• 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à
Session.TimeOut = 100;
• 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
Session.Abandon();
33
Thuộc tính và phương thức
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
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
34
Thuộc tính và phương thức
Tạo biến Session:
Session.Add("Tên_Biến","Giá trị khởi tạo");
Đọc giá trị của một biến sesstion:
Session.Contents[“Tên_Biến”]; hoặc dùng chỉ số: Session.Contents[i];
Ghi (thay đổi) giá trị của biến session:
Session.Contents[“Tên_Biến”] =
35
Thuộc tính và phương thức
Các sự kiện tự động được gọi mỗi khi một
phiên làm việc được tạo ra : On_Start On_End Các sự kiện được đặt trong file Global.asax:
36
Ví dụ:
Tại trang Login, người dùng nhập user name và
mật khẩu : Nếu đúng : asp.net và 123456 thì được phép truy
cập các trang Home.aspx
Nếu sai : Thì ở nguyên trang Login.aspx
Trang Home.aspx (chỉ có 1 dòng giới thiệu)
37
Thực hiện
Thiết kế Login.aspx : Trang Login.aspx Trang Login.aspx.cs
Thiết kế Home.aspx :
Thiết kế Home.aspx Thiết kế Home.aspx.cs
Thiết kế Golbal.asax :
38
Trang Login.aspx Trang Login.aspx.cs
public partial class Login : System.Web.UI.Page
{User name:
Password:
Session.Contents["TrangThai"] = "DaDangNhap"; Response.Redirect("Home.aspx");