Bài giảng Lập trình web - Chương 3: Các đối tượng trong ASP.NET - Chu Thị Hường

 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

pdf50 trang | Chia sẻ: thanhle95 | Lượt xem: 403 | Lượt tải: 1download
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