Bài giảng Các đối tượng của ASP.NET

pdf 33 trang huongle 6420
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Các đối tượng của ASP.NET", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_cac_doi_tuong_cua_asp_net.pdf

Nội dung text: Bài giảng Các đối tượng của ASP.NET

  1. Bài giảng môn học CCáácc đđốốii ttưượợngng ccủủaa ASP.NETASP.NET Khoa Công nghệ thông tin Trường ĐạihọcKhoahọcTự nhiên ThiThiếếtt kkếế && LLậậpp trtrììnhnh WEBWEB 22
  2. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Nội dung ƒ Giớithiệuvề các đốitượng của ASP.NET – Response – Request – Server – Application – Session ƒ Một vài ví dụ © 2007 Khoa CNTT – ĐH KHTN
  3. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Response Object ƒ Response là đốitượng đượctạoratương ứng với mỗiyêucầucủa client ƒ Đốitượng Response thông thường dùng để xử lý các HTTP Request, và trả kếtquả về cho client © 2007 Khoa CNTT – ĐH KHTN
  4. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Response Object Thuộctính Mô tả Charset xác lậpbộ charset sẽ truyền IsClientConnected cho biếthiệnthời client có đang kếtnối hay không Cookies các thông tin về Cookies sẽ được ghi xuống client © 2007 Khoa CNTT – ĐH KHTN
  5. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Response Object Phương thức Mô tả Write ghi dữ liệu text WriteFile ghi dữ liệutừ file BinaryWrite ghi dữ liệunhị phân Close đóng kếtnốitới client End Kết thúc thi hành mộttrang Redirect chuyển client sang một URL khác © 2007 Khoa CNTT – ĐH KHTN
  6. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Ví dụ protected void btnClick_Click(object sender, EventArgs e) { Response.Redirect(txtLink.Text); } © 2007 Khoa CNTT – ĐH KHTN
  7. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Request Object ƒ Cung cấp các thông tin về yêu cầucủa client ƒ Đượctạoratương ứng với các Http Request ƒ Dùng đốitượng này để đọcnhững thông tin client đãgởi (header, query string, cookies, ) © 2007 Khoa CNTT – ĐH KHTN
  8. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Request Object Thuộctính Mô tả Browser Cung cấp thông tin liên quan đếntrìnhduyệtcủa client Url Địachỉ trang gửi request Cookies các thông tin về Cookies ở client sẽ được đọclên QueryString Lấythamsố truyềntừ client theo phương thứcGET Form Lấythamsố truyềntừ client theo phương thứcPOST © 2007 Khoa CNTT – ĐH KHTN
  9. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Ví dụ -Truyềnthamsố theo phương thứcGET ƒ Cách tạo HTTP QueryString – Gõ trựctiếpvàochuỗi URL © 2007 Khoa CNTT – ĐH KHTN
  10. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Cookies ƒ Cookies là mộtmẫu thông tin nhỏ dùng để lưutrữ thông tin củangười dùng trên máy tính. ƒ Cookies có thểđượclưutrữ tạmthờihoặclưutrữ lâu dài. © 2007 Khoa CNTT – ĐH KHTN
  11. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Cookies ƒ Cookie lưutrữ tạmthời: sẽ không còn giá trị ngay khi người dùng rờikhỏi web site. ƒ Cookie lưutrữ lâu dài : vẫncònđượclưutrữ trên máy củangười dùng,và Web Server có thểđọc những thông tin này vào những lầnkế tiếpngười dùng vào web site. © 2007 Khoa CNTT – ĐH KHTN
  12. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Cookies ƒ Thể hiện trong ASP.NET là lớp HttpCookie ƒ Các thuộctínhcủa HttpCookie – Name : tên củaCookie – Domain : domain cookie này thuộcvề. – Expires : xác định thờigiancóhiệulựccủa Cookie – Value : Giá trị củaCookie – HasKeys : Cookie có tậpgiátrị con hay không – Values : tập các giá trị củaCookie © 2007 Khoa CNTT – ĐH KHTN
  13. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Sử dụng Cookies ƒ Lệnh ghi cookies – Response.Cookies[cookie][(key)|.attribute] = value; • cookie: tên biến • key : tham số tùy chọn, có thểđặt nhiềugiátrị cho 1 cookie • attribute: thuộc tính (domain, path, .) ƒ Lấygiátrị cookies – value = Request.Cookies[cookie][(key)|.attribute] © 2007 Khoa CNTT – ĐH KHTN
  14. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Ví dụ ƒ Cookies đơn – Ghi Response.Cookies["userName“].Value = "mike“; Response.Cookies["userName“].Expires = DateTime.Now.AddDays(1); – Đọc if (Request.Cookies["userName“] != null) Label1.Text = Request.Cookies["userName“].Value; © 2007 Khoa CNTT – ĐH KHTN
  15. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Ví dụ ƒ Cookies có các subkey – Ghi Response.Cookies["userInfo“]["userName“] = "mike“; Response.Cookies["userInfo“]["lastVisit“] = DateTime.Now.ToString(); Response.Cookies["userInfo“].Expires = DateTime.Now.AddDays(1); – Đọc if (Request.Cookies["userInfo“] != null) { Label1.Text = Request.Cookies["userInfo“]["userName“]; Label2.text = Request.Cookies["userInfo“]["lastVisit“]; } © 2007 Khoa CNTT – ĐH KHTN
  16. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Ví dụ ƒ Xóa Cookies Response.Cookies["userName“].Expires = DateTime.Now.AddDays(-1); Response.Cookies["userInfo“].Expires = DateTime.Now.AddDays(-1); © 2007 Khoa CNTT – ĐH KHTN
  17. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Server Object ƒ Cung cấp các phương thứcgiúp – Chuyển điềukhiểngiữa các trang với nhau – Lấy các thông tin về mã lỗi, encode, © 2007 Khoa CNTT – ĐH KHTN
  18. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Server Object ƒ Các thuộctính – MachineName : tên server – ScriptTimeout : thời gian time-out của request © 2007 Khoa CNTT – ĐH KHTN
  19. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Server Object Phương thức Mô tả MapPath Ánh xạ địachỉ tương đối thành địachỉ tuyệt đối trên server HtmlEncode Giữ nguyên tag HTML HtmlDecode Định dạng nội dung theo tag HTML UrlEncode Mã hóa Url theo ASCII UrlDecode Giải mã ASCII từ Url Transfer Lấykếtxuấttừ trang khác rồi quay lại Execute Lấykếtxuấttừ trang khác © 2007 Khoa CNTT – ĐH KHTN
  20. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Application Object ƒ Một ASP.NET application bao gồmtấtcả các file, trang web, sự kiện, module và code trong phạmvi mộtthư mụcweb ảo (virtual directory) và các thư mục con củanó ƒ Đốivớimỗi ASP.NET application, một Application Object đượctạorađể thể hiệntìnhtrạng của ASP.NET application này ƒ Application Object đượctạo khi client yêu cầubất kỳ trang nào trong application này © 2007 Khoa CNTT – ĐH KHTN
  21. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Application Object ƒ Application Object bị hủykhi – Stop Web Server – Server bị sập – Hủy ASP.NET Application ƒ Sự kiện – Application_OnStart – Application_OnEnd (global.asax) © 2007 Khoa CNTT – ĐH KHTN
  22. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Application Object ƒ Application Object chứamột danh sách các biến trạng thái dùng chung của application. Ta có thể sử dụng chúng để lưutrữ các thông tin xuyên suốt ứng dụng ƒ Các biếntrạng thái này đượclưutrữ thành từng cặp key-value. – Key : tên trạng thái – Value : giá trị trạng thái Application[“SoLan"] = 0; © 2007 Khoa CNTT – ĐH KHTN
  23. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Ví dụ – Đếmsố lần duyệt 1 trang web //global.asax void Application_OnStart(Object sender, EventArgs E) { Application [“SoLan"] = 0; } //Myform.aspx.cs void Page_Load(Object Src, EventArgs E){ Application[“SoLan"] = (Int32) Application [“SoLan"] + 1; Response.Write(“Số lần vào trang này :" + Application [“SoLan"]); } © 2007 Khoa CNTT – ĐH KHTN
  24. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Ví dụ – Đếmsố lần duyệt 1 trang web (Cảitiến) void Page_Load(Object Src, EventArgs E){ Application.Lock(); Application[“SoLan"] = (Int32) Application [“SoLan"] + 1; Application.UnLock(); Response.Write(“Số lần vào trang này :" + Application [“SoLan"]); } © 2007 Khoa CNTT – ĐH KHTN
  25. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Session Object ƒ Một session (phiên làm việc) là mộtchuỗi các thao tác củangười dùng trên cùng một web application ƒ Vớimỗi phiên làm việccủa client, sẽ có một Session Object đượctạora ƒ Session Object sẽ cung cấp cho ta những thông tin về phiên làm việchiệnhànhnàycủa client © 2007 Khoa CNTT – ĐH KHTN
  26. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Session Object ƒ Session đượctạo ra khi client bắt đầuphiênlàmviệccủa mình ƒ Session sẽđượchủykhi – Client tường minh thoát khỏi session – Sau mộtkhoảng thời gian (time-out), client không có hành động làm việc nào ƒ Sự kiện – Session_OnStart – Session_OnEnd (global.asax) © 2007 Khoa CNTT – ĐH KHTN
  27. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Session Object Ý nghĩa Session.Timeout = minutes Đặtthời gian của phiên làmviệc Session.SessionID ID của phiên làmviệc Hủyphiênlàmviệc(hủycả biếndữ Session.Abandon() liệu) © 2007 Khoa CNTT – ĐH KHTN
  28. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Session Object ƒ Cung cấpchotamột danh sách các trạng thái xuyên suốt session này ƒ Các trạng thái của Session Object cũng đượctổ chức trong một Collections dướidạng key-value Session[“DaDangNhap"] = 0; © 2007 Khoa CNTT – ĐH KHTN
  29. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Ví dụ -KiểmtraQuyền đăng nhập ƒ Làm thế nào để ngăn không cho người dùng truy cập vào các trang web nếuchưa đăng nhập? ƒ Ý tưởng – Dùng các biến Session để lưutrạng thái đăng nhậpcủangười dùng: Session[“IsLogin”] = 0/1 : Lưutrạng thái đăng nhập Session[“Username”] : LưuTênđăng nhập Session[“Authentication”]: LưuLoại quyền đăng nhập © 2007 Khoa CNTT – ĐH KHTN
  30. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Làm thế nào để ngăn không cho người dùng truy cập vào các trang web nếuchưa đăng nhập? 1. Khởitạogiátrị mặc định cho biến Session[“IsLogin”] = 0 (chưa đăng nhập) //global.asax void Session_OnStart(Object sender, EventArgs E) { Session [“IsLogin"] = 0; } © 2007 Khoa CNTT – ĐH KHTN
  31. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Làm thế nào để ngăn không cho người dùng truy cập vào các trang web nếuchưa đăng nhập? 2. Tạo trang Login.aspx cho phép người dùng đăng nhập – Nếukiểm tra thông tin đăng nhập không đúng thì hiểnthị thông báo yêu cầu đăng nhậplại. – Ngượclại, nếu ĐÚNG thì dùng một(hoặcnhiều) biến Session để lưutrạng thái login thành công lại. //Login.aspx.cs void btnLogin_Click(Object Src, EventArgs E){ if (Thong tin dang nhap dung) Session [“IsLogin"] = 1; else Response.Write(“Vui lòng nhậplại!”); } © 2007 Khoa CNTT – ĐH KHTN
  32. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Làm thế nào để ngăn không cho người dùng truy cập vào các trang web nếuchưa đăng nhập? 3. Trong tấtcả các trang muốnbảomật, phải thêm đoạnmãsau để kiểmtrangười dùng đã login hay chưa, nếuchưathì redirect lại trang login.aspx //MyForm.aspx.cs void Page_Load(Object Src, EventArgs E){ int nDaDangNhap = (Int32) Session [“IsLogin "]; if (nDaDangNhap == 0) Response.Redirect(“Login.aspx”); } © 2007 Khoa CNTT – ĐH KHTN
  33. Thiếtkế & Lập trình WEB 2 – Các đốitượng củaASP.NET Làm thế nào để ngăn không cho người dùng truy cập vào các trang web nếuchưa đăng nhập? 4. Tạoxử lý khi người dùng logout ƒ Reset trạng thái login là chưa đăng nhập //MyForm.aspx.cs void btnLogout_Click(Object Src, EventArgs E){ Session [“IsLogin"] = 0; Response.Redirect(“Login.aspx”); } © 2007 Khoa CNTT – ĐH KHTN