Bài 9:Server Object
Lê Quang Lợi Email: loilequang@gmail.com loilq@utehy.edu.vn
Bài 09: Server Object
» Server
» State mangement
» Sesstion
» Application
» ViewState
Lê Quang Lợi: loilequang@gmail.com
CNPM-CNTT-ĐHSPKT HY
» Cookies
Môn học : Công nghệ WEB (ASP.NET)
9.1 Quản lý trạng thái(State Management)
» Biến trạng thái: giá trị được lưu trữ trong bộ nhớ
» Mỗi biến thể hiện dạng: key => value
» Phân loại
Client Side: View State, Hidden Field, Cookies, Control State
Server Side : Session, Application, Caching, Database
Chú ý: Mỗi đối tượng có một timeout riêng
Timeout là khoảng thời gian quy định hoạt động nếu không có
tương tác từ giữa Server và Brower
Lê Quang Lợi: loilequang@gmail.com
CNPM-CNTT-ĐHSPKT HY
Môn học : Công nghệ WEB (ASP.NET)
9.1 Quản lý trạng thái(State Management)
Application
Session
» Thời gian/ phạm vi hoạt động
ViewState
ViewState
Session
Session
time
Lê Quang Lợi: loilequang@gmail.com
CNPM-CNTT-ĐHSPKT HY
Môn học : Công nghệ WEB (ASP.NET)
9.2 Application
Tồn tại khi khởi động ứng dụng hoặc khởi động lại
Mất đi khi ứng dụng ngừng hoạt động
» Biến Application
» Phạm vi: toàn bộ ứng dụng web(kể cả các phiên làm việc)
» Lưu trữ trạng thái của ứng dụng: server state
» Truy xuất: có thể truy xuất tất cả các trang
Lê Quang Lợi: loilequang@gmail.com
CNPM-CNTT-ĐHSPKT HY
» Ứng dụng: Đếm số người online và số lần truy cập …
Môn học : Công nghệ WEB (ASP.NET)
9.2 Application(file Global.ASCX)
Bắt đầu Kết thúc ứng dụng
Sự kiện khi ứng dụng bị lỗi
Bắt đầu Kết thúc phiên làm việc
» Chứa các sự kiện của ứng dụng web <%@ Application Language="C#" %>
Lê Quang Lợi: loilequang@gmail.com
CNPM-CNTT-ĐHSPKT HY
Môn học : Công nghệ WEB (ASP.NET)
9.2 Application
» Tạo biến Application: Application.Add(key,value); » Thay đổi giá trị:
Application[index/name]= Value; Application.Content[index/name]= Value; Application.Set(key/name, value);
» Sử dụng: var = Application[index/name] » Loại bỏ biến: RemoveAll, Remove
Application.Remove(name);
Lê Quang Lợi: loilequang@gmail.com
CNPM-CNTT-ĐHSPKT HY
» Các sự kiện: Applcation_start, Application_End » Thuộc tính: Count, Keys » Phương thức: Lock, UnLock, Get
Môn học : Công nghệ WEB (ASP.NET)
9.2 Application
void Application_Start (object
sender, EventArgs e) {
Tạo biến
Application.Add("counter",0);
Lấy dữ liệu
if (Application["Counter"] == 0) {
Application["Counter"] = 1;
Thiết lập
}
Loại bỏ
Application.Remove("Counter");
}
Lê Quang Lợi: loilequang@gmail.com
CNPM-CNTT-ĐHSPKT HY
Môn học : Công nghệ WEB (ASP.NET)
9.3 Session
Bắt đầu : khi triệu gọi ứng dụng lần đầu Kết thúc: thực sự dời bỏi ứng dụng/ vượt TimeOut
» Thể hiện một phiên truy cập
» Tác dụng trong phiên và trên toàn ứng dụng
» Vùng biến nhỏ trên phía server
» Ứng dụng: Giỏ hàng, trạng thái đăng nhập, thông tin
Lê Quang Lợi: loilequang@gmail.com
CNPM-CNTT-ĐHSPKT HY
đăng nhập … (phiên làm việc hiện tại)
Môn học : Công nghệ WEB (ASP.NET)
9.3 Session
» Tạo biến Session: Session.Add(key,value); » Thay đổi giá trị
Session[index/name]= Value; Session.Content[index/name]= Value; Session.Set(key/name, value);
» Sử dụng: var = Session [index/name] » Loại bỏ biến: RemoveAll, Remove
Session.Remove(name);
Lê Quang Lợi: loilequang@gmail.com
CNPM-CNTT-ĐHSPKT HY
» Các sự kiện:Session_Start, Session_End » Thuộc tính: Count, Keys, SessionID, LCID » Phương thức: CopyTo
Môn học : Công nghệ WEB (ASP.NET)
9.3 Session
bool Islogin = false;
Sử dụng giá trị
if (this.Session["IsLogin"] == null){
Tạo biến
Session.Add("IsLogin", false);
} else {
Sử dụng giá trị
string t=Session["Islogin"].ToString();
islogin = bool.Parse(t);
}
}
Lê Quang Lợi: loilequang@gmail.com
CNPM-CNTT-ĐHSPKT HY
Môn học : Công nghệ WEB (ASP.NET)
9.4 Cookies
» Biến với vùng nhớ nhỏ » Vị trí: lưu trữ Server hoặc Brower
» Cookies: tương tự như Session
» Tầm hoạt động: như Session
» Ứng dụng: lưu trữ thông tin cơ bản người dùng, trạng
Lê Quang Lợi: loilequang@gmail.com
CNPM-CNTT-ĐHSPKT HY
thái đăng nhập, Giỏ hàng, các biến tạm tại một phiên
Môn học : Công nghệ WEB (ASP.NET)
9.4 Cookies
» Tạo Cookies: HttpCookie a = new HttpCookie();
» Thêm: Response.Cookies.Add(a);
» Thay đổi: a.Value= value:// Thiết lập
» Sử dụng: var = a.Value; // lấy giá trị
» Loại bỏ: Response.Cookies.Add/Remove/Cleare(a);
» Thuộc tính: name, Value, count, Keys
Lê Quang Lợi: loilequang@gmail.com
CNPM-CNTT-ĐHSPKT HY
» Phương thức: Get, Set
Môn học : Công nghệ WEB (ASP.NET)
9.4 Cookies
protected void Page_Load (object sender, EventArgs e){
HttpCookie myCookies = new HttpCookie("name", "value"); this.Request.Cookies.Add (myCookies); }
// biến sử dụng cookies
protected void Page_Load (object sender, EventArgs e) { HttpCookie myCookies = Request.Cookies["name"]; myCookies.Value = "10"; // gán giá trị
string str = myCookies.Value;// lấy giá trị }
Lê Quang Lợi: loilequang@gmail.com
CNPM-CNTT-ĐHSPKT HY
Môn học : Công nghệ WEB (ASP.NET)
9.5 ViewState
» Vùng nhớ được lưu trữ phía Client Site
» Lưu trữ giá trị tạm thời: page, Controls, Hidden Field » Thiết lập ViewState: EnableViewState=”True/False”
» Tạo ViewState:
ViewState["Var"]=Count;
ViewState.Add( key, value);
Lê Quang Lợi: loilequang@gmail.com
CNPM-CNTT-ĐHSPKT HY
» Sử dụng: string Test=ViewState["TestVal"];