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"];

Môn học : Công nghệ WEB (ASP.NET)