Các phương thức của lớp HttpRequest
SaveAs(): Là phương thức lưu toàn bộ yêu cầu lên đĩa.
public void SaveAs(string filename, bool includeHeaders)
MapPath(): Là phương thức ánh xạ đường dẫn ảo sang
đường dẫn vật lý.
ĐỐI TƯỢNG REQUEST VÀ
LỚP HttpRequest
public string MapPath(string virtualPath)
MapImageCoordinates(): Ánh xạ tọa độ của ảnh
public int[ ] MapImageCoordinates Một Response là sự tương tác
giữa browse và server trong đó
server “trả lời” yêu cầu HTTP
được gửi từ browse.
ĐỐI TƯỢNG RESPONSE VÀ
LỚP HttpResponse
Đối tượng Response thuộc lớp
HttpResponse. Lớp
HttpResponse được dùng để
điều khiển Output của HTTP
Reques
50 trang |
Chia sẻ: thanhle95 | Lượt xem: 486 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng Lập trình web - Chương 3: Các đối tượng trong ASP.NET - Chu Thị Hường, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LẬP TRÌNH WEB
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT
CÁC ĐỐI TƯỢNG TRONG ASP.NET
Đối tượng Request
Đối tượng Respose
Đối tượng Server
Đối tượng Application
NỘI DUNG
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 2
Đối tượng Session
Đối tượng Cookies
File Global.asax
Giới thiệu ngôn ngữ lập trình .NET
Đối tượng Request ?
Một Request (yêu cầu)
là sự tương tác giữa
browse và server trong
đó browse “hỏi” server
ĐỐI TƯỢNG REQUEST VÀ
LỚP HttpRequest
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 3
cho web page.
Đối tượng Request
thuộc lớp HttpRequest
Các thuộc tính của
lớp HttpRequest
ApplicationPath
Browse
ContentLength
ĐỐI TƯỢNG REQUEST VÀ
LỚP HttpRequest
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 4
FilePath
QueryString
RequestType
Các thuộc tính của lớp HttpRequest
ApplicationPath: Trả về đường dẫn ảo của ứng dụng trên
Server.
PhysicalApplicationPath: Trả về đường dẫn vật lý của
ứng dụng trên Server.
ĐỐI TƯỢNG REQUEST VÀ
LỚP HttpRequest
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 5
Browse: Trả về các thuộc tính của client’s Browse.
ContentLength: Là thuộc tính trả về độ dài nội dung client
request (tính bằng bytes)
FilePath: Trả về đường dẫn ảo của trang trên server
RequestType: Dùng để nhận loại phương thức truyền
HTTP data là POST hay GET được sử dụng bởi client.
Các thuộc tính của lớp HttpRequest
QueryString: QueryString được định nghĩa là một chuỗi
nằm sau dấu? trong chuỗi URL trên phần địa chỉ của trình
duyệt khi triệu gọi đến một trang Web.
Ví dụ: Ta gọi triệu địa chỉ sau:
ID=18&page=cust
ĐỐI TƯỢNG REQUEST VÀ
LỚP HttpRequest
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 6
Trong đó, QueryString bao gồm các cặp tham số và giá trị
sau: ID=18&page=cust
Chú ý:
Nếu tham số không có dấu bằng theo sau, giá trị của tham số đó
sẽ được trả về khi sử dụng Request.QueryString là null.
Trong trường hợp có dấu bằng nhưng không tồn tại giá trị thì kết
quả trả về khi sử dụng Request.String là rỗng.
Các thuộc tính của lớp HttpRequest
Form: Lấy tập các biến 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.
UserName:
ĐỐI TƯỢNG REQUEST VÀ
LỚP HttpRequest
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 7
Password:
//Hienthi.aspx
protected void Page_Load(object sender, EventArgs e)
{
lblUser.Text = Request.Form["txtUser"];
lblPass.Text = Request.Form["txtPwd"];
}
Các phương thức của
lớp HttpRequest
SaveAs
MapPath
MapImageCoordinates
ĐỐI TƯỢNG REQUEST VÀ
LỚP HttpRequest
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 8
Các phương thức của lớp HttpRequest
SaveAs(): Là phương thức lưu toàn bộ yêu cầu lên đĩa.
public void SaveAs(string filename, bool includeHeaders)
MapPath(): Là phương thức ánh xạ đường dẫn ảo sang
đường dẫn vật lý.
ĐỐI TƯỢNG REQUEST VÀ
LỚP HttpRequest
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 9
public string MapPath(string virtualPath)
MapImageCoordinates(): Ánh xạ tọa độ của ảnh
public int[ ] MapImageCoordinates
Một Response là sự tương tác
giữa browse và server trong đó
server “trả lời” yêu cầu HTTP
được gửi từ browse.
ĐỐI TƯỢNG RESPONSE VÀ
LỚP HttpResponse
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 10
Đối tượng Response thuộc lớp
HttpResponse. Lớp
HttpResponse được dùng để
điều khiển Output của HTTP
Request.
Thuộc tính lớp HttpResponse:
BufferOutput
Charset
ContentEncoding
ContentType
ĐỐI TƯỢNG RESPONSE VÀ
LỚP HttpResponse
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 11
Cookies
IsClientConnected
Thuộc tính lớp HttpResponse:
BufferOutput
Charset
ContentEncoding
ContentType
ĐỐI TƯỢNG RESPONSE VÀ
LỚP HttpResponse
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 12
Cookies
IsClientConnected
Thuộc tính lớp HttpResponse:
BufferOutput: dùng để chỉ định Output của HTTP
Request được chứa trong Buffer và sau đó được
gửi toàn bộ khi trang kết thúc tiến trình xử lý.
ĐỐI TƯỢNG RESPONSE VÀ
LỚP HttpResponse
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 13
Charset: Thuộc tính cho phép nhận và thiết lập
tập character set của Response.
ContentEncoding: nhận và thiết lập HTTP
character set của Response
Thuộc tính lớp HttpResponse:
ContentType: Cho phép nhận và thiết lập kiểu
Multipurpose Internet Mail Extension (MIME) của
Response (mặc định là “text/html”).
ĐỐI TƯỢNG RESPONSE VÀ
LỚP HttpResponse
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 14
Cookies: Cho phép nhận tập hợp các cookies
dược truyền tới client trong Response
IsClientConnected: Thuộc tính kiểm tran xem
client có đang kết nối với server hay không?
Phương thức lớp HttpResponse:
Clear: Xóa tất cả nội dung của buffer
streame hiện tại.
ClearContent: Xóa tất cả nội dung
của buffer streame.
ĐỐI TƯỢNG RESPONSE VÀ
LỚP HttpResponse
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 15
Close: Đóng kết nối tới client
End: Gửi tất cả buffered output tới
client
Redirect: Gửi tới client một URL mới
Write: Viết thông tin tới HTTP
Response
Đối tượng Server thể hiện các
phương thức tiện ích đa dạng để
truyển đổi điều khiển giữa các trang,
giải mã HTML text, nhận thông tin
lỗi,
Đối tượng Server thuộc lớp
ĐỐI TƯỢNG SERVER VÀ LỚP
HttpServerUtility
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 16
HttpServerUtility thuộc không
gian miền System.Web
Lớp HttpServerUtility cung
cấp hai thuộc tính:
MachineName: Trả về
tên Server mà ứng dụng
ĐỐI TƯỢNG SERVER VÀ LỚP
HttpServerUtility
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 17
đang chạy.
ScriptTimeout: Lấy hoặc
thiết lập thời gian (tính
bằng giây) mà một
Request timeout.
Lớp HttpServerUtility
cung cấp các phương thức
cho các tác vụ như tiến trình
xử lý các yêu cầu, mã hóa và
giải mã các chuỗi URL, truy
ĐỐI TƯỢNG SERVER VÀ LỚP
HttpServerUtility
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 18
cập các thông tin lỗi,
Execute
HtmlEncode
MapPath
UrlEncode
Các phương thức lớp HttpServerUtility:
Execute: Là phương thức xử lý trang Web được
chỉ định trên ngữ cảnh (context) của current
Request.
HtmlEncode: Là phương thức mã hóa chuỗi ký
ĐỐI TƯỢNG SERVER VÀ LỚP
HttpServerUtility
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 19
tự để hiển thị trên trình duyệt.
MapPath: Là một hàm trả về đường dẫn vật lý.
UrlEncode: Là phương thức mã hóa chuỗi URL:
Đối tượng Application được sử dụng
để tham chiếu đến thể hiện của lớp
HttpApplicationState.
Một Application State (trạng thái
ĐỐI TƯỢNG APPLICATION
VÀ LỚP HttpApplicationState
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 20
ứng dụng) lưu trữ toàn bộ thông tin
sử dụng qua lại nhiều phiên giao
dịch (Session) và các yêu cầu
(request).
Lớp HtttpApplicationState thuộc không gian miền System.Web.
Lần đầu tiên Client yêu cầu tài nguyên URL từ thư mục ảo
của ứng dụng ASP.NET thì một thể hiện của lớp
HttpApplicationState được tạo.
ĐỐI TƯỢNG APPLICATION
VÀ LỚP HttpApplicationState
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 21
Thuộc tính của lớp “HttpApplicationState”:
AllKeys
Contents
Count
ĐỐI TƯỢNG APPLICATION
VÀ LỚP HttpApplicationState
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 22
Item
Các thuộc tính của lớp HttpApplicationState.
AllKeys property: Truy xuất các Access Keys từ
tập các trạng thái ứng dụng.
String[] strKeys = new String[Application.Count];
strKeys = Application.AllKeys;
ĐỐI TƯỢNG APPLICATION
VÀ LỚP HttpApplicationState
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 23
Contents property: Truy xuất tham chiếu đến
đối tượng HttpApplicationState.
Count property: Đếm và truy xuất số các đối
tượng.
Item property: Truy xuất đến từng đối tượng
HttpApplicationState.
Phương thức của lớp “HttpApplicationState”:
Add
Clear
Remove
ĐỐI TƯỢNG APPLICATION
VÀ LỚP HttpApplicationState
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 24
RemoveAll
RemoveAt
Các phương thức của lớp HttpApplicationState.
Add Method: Là phương thức thêm một đối tượng mới
vào tập trạng thái ứng dụng.
public void Add(string name, Object value);
Application.Add(“UserName”, “Huongct”);
ĐỐI TƯỢNG APPLICATION
VÀ LỚP HttpApplicationState
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 25
Clear Method: Là phương thức xóa tất cả đối tượng
trong tập trạng thái ứng dụng.
Application.Clear();
Remove Method: Là phương thức xóa một đối tượng
chỉ định trong tập trạng thái ứng dụng. Cú pháp (C#)
của phương thức là:
public void Remove(string name);
Các phương thức của lớp HttpApplicationState.
RemoveAll Method: Là phương thức xóa tất cả đối
tượng trong tập trạng thái ứng dụng. Cú pháp (C#) của
phương thức là:
public void RemoveAll();
ĐỐI TƯỢNG APPLICATION
VÀ LỚP HttpApplicationState
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 26
Application.RemoveAll();
RemoveAt Method: Là phương thức xóa một đối tượng
chỉ định trong tập trạng thái ứng dụng. Cú pháp (C#)
của phương thức là:
public void RemoveAt(int index);
Application.RemoveAt(0);
Phương thức Lock.
Khi nhiều người dùng cùng truy cập
vào một ứng dụng ASP.NET, ứng
dụng không thể cho phép họ đồng thời
truy cập thay đổi cùng một dữ liệu.
ĐỐI TƯỢNG APPLICATION
VÀ LỚP HttpApplicationState
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 27
Phương thức Lock(), thuộc lớp
HttpApplicationState, ngăn cản người
dùng khác thay đổi các biến lưu trữ
trong đối tượng Application. Cú pháp
của phương thức Lock():
public void Lock()
Phương thức UnLock.
Phương thức UnLock() được sử dụng để
mở khóa cho các biến lưu trữ trong đối
tượng Application. Các biến khi đã được
mở khóa thì các người dùng khác có thể
ĐỐI TƯỢNG APPLICATION
VÀ LỚP HttpApplicationState
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 28
thay đổi chúng.
Phương thức Lock() được mở tương ứng
bởi phương thức UnLock().
Phương thức UnLock.
Trong trường hợp không gọi phương thức
UnLock(), .NET Framework tự động xóa
Lock() khi Request được hoàn thành,
hoặc Request đến thời gian TimeOut,
ĐỐI TƯỢNG APPLICATION
VÀ LỚP HttpApplicationState
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 29
hoặc khi xuất hiện ngoại lệ (Request fail).
public void UnLock()
Application.Lock();
Application["VisitorsCount"] =
(int)Application["VisitorsCount"]+1;
Application.UnLock();
Session Cookies.
Một Session được định nghĩa là một
khoảng thời gian bắt đầu và kết thúc
tương tác của người dùng với ứng
dụng. Các thông tin của Session như
COOKIES
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 30
Login, Logout và các trang được viếng
thăm được lưu trữ trên file temporary,
được gọi là Session Cookies.
Session Cookies.
Một Session Cookie có thể
xem như là một cookie tạm
thời. Session Cookies
được lư trữ tạm trên bộ
nhớ. Khi trình duyệt bị
COOKIES
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 31
đóng, các session cookies
này không được giữ lại. Do
đó, lần tiếp theo, người
dùng này viếng thăm cùng
một site thì anh ta được
đối sử giống như một
người khách mới.
Tạo và đọc Session Cookies.
Ví dụ sau minh họa cách tạo và đọc Session Cookie:
protected void btnAdd_Click(object sender, EventArgs e)
{
Response.Cookies["Login"]["User"] = txtUser.Text;
}
COOKIES
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 32
protected void btnView_Click(object sender, EventArgs e)
{ if (Request.Cookies["Login"] == null)
{ Response.Write("Không Cookies");}
else
{ Response.Write("Thông tin Cookies:" +
Request.Cookies["Login"]["User"]); }
}
“Persistent” Cookies
Xét các trang Login của các dịnh vụ
e-mail phổ biến như Hotmail và
Yahoo mail.
Khi bạn Login vào mail thì bạn được
nhắc có lưu thông tin login trên máy
COOKIES
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 33
tính không?
Nếu chọn Yes, lần sau đăng nhập?
“Persistent” Cookies
Các Cookies lưu trữ thông tin mà
được ghi nhớ thông qua nhiều
phiên giao dịch được gọi là
Persistent Cookies (Cookie bền).
Persistent Cookies được xem như
COOKIES
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 34
là các cookies thường xuyên hay
các cookies lưu trữ. Các Persistent
Cookies có thời gian sống (Expiry
date) và được lưu trữ trên đĩa
cứng của người sử dụng cho đến
khi hết thời gian sống hoặc cho
đến khi được xóa thủ công.
“Persistent” Cookies
Các Cookies lưu trữ thông tin mà
được ghi nhớ thông qua nhiều
phiên giao dịch được gọi là
Persistent Cookies (Cookie bền).
Persistent Cookies được xem như
COOKIES
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 35
là các cookies thường xuyên hay
các cookies lưu trữ. Các Persistent
Cookies có thời gian sống (Expiry
date) và được lưu trữ trên đĩa
cứng của người sử dụng cho đến
khi hết thời gian sống hoặc cho
đến khi được xóa thủ công.
“Persistent” Cookies
Tạo Persistent Cookies:
HttpCookie userInfoCookie = new
HttpCookie("UserInfo");
userInfoCookie.Values["UserName"]="Huongct";
COOKIES
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 36
userInfoCookie.Values["LastVisit"] =
DateTime.Now.ToString();
userInfoCookie.Expires =
DateTime.Now.AddDays(15);
Response.Cookies.Add(userInfoCookie);
“Persistent” Cookies
Đọc Persistent Cookies:
if (Request.Cookies["UserInfo"] == null)
{
Response.Write("Không Persitent Cookies ");
COOKIES
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 37
}
else
{
Response.Write("Persitent Cookies :" +
Request.Cookies["UserInfo"]["UserName"]);
}
Session (phiên làm việc) là khoảng
thời gian bắt đầu và kết thúc tương
tác của người dùng với ứng dụng.
SESSION STATE
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 38
Session Variables được được sử
dụng để lưu trữ thông tin về phiên làm
việc của một người sử dụng. Các thông
tin này có thể sử dụng cho tất cả các
trang trong ứng dụng.
SESSION STATE
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 39
Các thông tin lưu như vậy thường là các
thông tin gì?
Các Session Variables được xóa ngay
khi phiên làm việc của người dùng với Site
kết thúc.
Session Variables được lưu trữ trong
lớp SessionStateItemCollection
SESSION STATE
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 40
thuộc không gian miền
System.Web.SessionState.
Các biến này được biểu diễn thông qua
thuộc tính
System.Web.HttpContext.Session.
Tạo biến Session.
Session["UserID"] = “Huongct";
Đọc biến Session:
if (Session["UserID"] == null)
{
SESSION STATE
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 41
Response.Write("Page has expired");
}
else
{
Response.Write("Session User ID:“
+Session["UserID"]);
}
Session State Events:
Session_OnStart Event:
Sự kiện này nổ tại thời
điểm bắt đầu một Session.
Session_OnEnd Event:
SESSION STATE
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 42
Sự kiện này nổ tại thời
điểm Session timeout.
Hai sự kiện này được điều khiển
bởi các thủ tục Session_OnStart
và Session_OnEnd trên file
Global.asax.
Session Identifiers:
Sessions được nhận dạng bởi Session Identifiers, với
giá trị duy nhất.
Session Identifiers được đọc thông qua thuộc tính
SessionID.
SESSION STATE
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 43
Session Identifiers:
Khi trạng thái của Session được Enable, mỗi request một
trang trong ứng dụng đều được kiểm tra giá trị SessionID.
Nếu giá trị SessionID không được cung cấp thì một
Session mới được khởi tạo. Sau đó SessionID được gửi
cho Session tới Browse cùng với Response
SESSION STATE
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 44
Giá trị của SessionID được lưu trữ trên một Cookie.
Global.asax file được xem như là file ứng dụng
ASP.NET. File này chứa code cho việc trả lời ứng
dụng hoặc các modul sự kiện trong một vị trí trung
tâm.
File Global.asax là file lựa chọn, nó được tạo chỉ khi
Global.asax
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 45
nếu cần điều khiển các sự kiện của ứng dụng hoặc
Session.
Mỗi một ứng dụng ASP.NET chỉ có một và chỉ một
file Global.asax. File này không được Request và
sử dụng bởi người sử dụng.
Trong file tự động
khởi tạo 4 sự kiện
liên quan đến việc
khởi tạo và kết thúc
ứng dụng hoặc
Global.asax
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 46
phiên làm việc.
public void Application_OnStart()
{ Application["UsersOnline"] = 0; }
public void Session_OnStart()
{ Application.Lock();
Global.asax
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 47
Application["UsersOnline"] =
(int)Application["UsersOnline"] + 1;
Application.UnLock(); }
public void Session_OnEnd()
{ Application.Lock();
Application["UsersOnline"] = (int)Application["UsersOnline"] - 1;
Application.UnLock(); }
Sinh viên thực hiện củng cố lại ngôn ngữ lập trình
.NET đã được cung cấp:
Khai báo sử dụng không gian miền
Khai báo biến
Các toán tử
NGÔN NGỮ LẬP TRÌNH
.NET
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 48
Các cấu trúc điều khiển
Xây dựng hàm/ thủ tục
Xây dựng Class
...
THẢO LUẬN – CÂU HỎI
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 49
Thực hành các ví dụ
Thực hành thao tác với các đối tượng.
Ứng dụng các đối tượng vào bài tập lớn
được phân công
BÀI TẬP
Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT 09:50 - 50