Giáo trình Phát triển Web nâng cao - Bài 2: Các lớp sử dụng trong ASP.NET
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Phát triển Web nâng cao - Bài 2: Các lớp sử dụng trong 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:
- giao_trinh_phat_trien_web_nang_cao_bai_2_cac_lop_su_dung_tro.pdf
Nội dung text: Giáo trình Phát triển Web nâng cao - Bài 2: Các lớp sử dụng trong ASP.NET
- Bài 2: Các lớp sử dụng trong ASP.NET 2.1. Request 2.2. Response 2.3. Cookies 2.4. Server 2.5. Session 2.6. Application 2.7. Chu trình sống của một trang web 1
- 2.1 Lớp Http Request Khái niệm Các thuộc tính 2
- Khái niệm Request là một đối tượng của ASP.NET, nó cho phép đọc các thông tin do các trang khác gửi (Submit) đến 3
- Các thuộc tính RequestType Request.Form Request.QueryString Cookies 4
- RequestType Trả về phương thức truyền dữ liệu từ Client đến Server Gồm 2 phương thức POST và GET Namespace: System.Web Assembly: System.Web (in System.Web.dll) Type Value: System.String Cú pháp: public string RequestType { get; set; } 5
- Request.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 Cú pháp: Request.Form( element )[(index)|.Count]; Request.Form.Keys[i]; 6
- Ví dụ 1 - Request.Form( element ) 7
- Default.aspx UserName: Password: 8
- CheckUser.aspx UserName: Password: 9
- Request.Form.Count; Trả về số phần tử của form chuyển từ Client đến Server Request.Form.Keys[i]; Trả về tên của phần tử tại vị trí thứ i, trong đó i có giá trị từ 0 đến n-1 với n=Request.Form.Count 10
- UserName: CheckUser.aspx Password: Số phần tử: 11
- Request.QueryString Dùng để lấy dữ liệu được gửi từ Client đến Server bằng phương thức GET hoặc truyền dữ liệu có chứa tag liên kết Hyperlink http:// [: ][ [? ]] [?Tham_so_1=gia_tri_1[&Tham_so_2=gia_tri_2[& ]]] Nếu tham số không có giá trị thì giá trị trả về của tham số khi sử dụng Request.QueryString là NULL Cú pháp: Request.QueryString( variable )[(index)|.Count] 12
- Cách truyền tham số Các phần tử của form 1 13
- 1 Default.aspx UserName: Password: 14
- 1 CheckUser.aspx UserName: Password: 15
- 2 Default.aspx UserName: Password: 16
- 2 CheckUser.aspx UserName: Password: 17
- 2 New.aspx Ban chon ma so : Kieu hien thi : 18
- Request.QueryString.Count; Trả về số phần tử của form chuyển từ client đến server Request.QueryString.Keys[i]; Trả về tên của phần tử tại vị trí thứ i, trong đó i có giá trị từ 0 đến n-1 Với n=Request.QueryString.Count 19
- 2.2 Lớp Http Response Khái niệm Các thuộc tính Các phương thức 20
- Khái niệm Http Response được sử dụng để truyền dữ liệu từ webserver đến webBrowser Data 21
- Các thuộc tính Buffer: Quy định cách truyền tải dữ liệu: Response.Buffer=true/false; True: Hoàn tất công việc và gửi một lần False: Thực hiện xong đến đâu thì gửi đến đó isClientConnected Kiểm tra máy client có yêu cầu kết nối đến server Response.isClientConnected=true/false; 22
- Các phương thức Clear • Xóa vùng tạm; • Cú pháp: Response.Clear(); End • Kết thúc tiến trình xử lý trên Server và đẩy dữ Flush liệu tới Client; • Cú pháp: Response.End(); Redirect • Kết thúc tiến trình, quay lại thực hiện tiếp; Write • Cú pháp: Response.Flush(); • Dùng để chuyển client sang một URL khác; • Cú pháp: Response.Redirect(url, boolean); • Dùng để ghi dữ liệu ra web; • Cú pháp: Response.Write(strname); Hoặc
- 2.3 Lớp HttpCookies Được sử dụng để ghi Cookies Cookies trong asp.Net ở lớp Httpcookies Ví dụ: Khởi tạo biến cookies: Httpcookies varCk = new Httpcookies(“CkName”); Ghi giá trị vào biến cookie: varCk.Value =value; Server ghi vào Client một biến Cookie: Response.Cookies.Add(varck); Xóa Cookie: Response.Cookies.Clear(varck); 24
- Ví dụ: 25
- Ví dụ: 26
- 2.4 Lớp Http Server Khái niệm Các thuộc tính Các phương thức 27
- Khái niệm Đối tượng Server cung cấp các phương thức giúp chuyển điều khiển giữa các trang với nhau, lấy thông tin về mã lỗi, encode, Đối tượng Server cung cấp thông tin của Server cho ứng dụng 28
- Các thuộc tính MachineName • Cho tên server • Cú pháp: Server.MachineName(); ScriptTimeout • Thiết lập thời gian xử lý tối đa 1 file • Cú pháp: Server. ScriptTimeout=100s; 29
- Các phương thức MapPath • Ánh xạ đường dẫn ảo thành đường dẫn vật lý cho một tập tin trên Server Transfer • Cú pháp: Server.MapPath(path); HtmlEncode • Gửi tất cả thông tin mà nó đã xử lý từ trang HtmlDecode ASP hiện hành sang trang ASP khác • Cú pháp: Server.Transfer(path); • Dùng để mã hoá HTML thành chuỗi • Cú pháp: Server.HTMLEncode(str); • Ký tự chuyển thành > • Giải mã các chuỗi thành HTML thành • Ký tự & chuyển thành & • Cú pháp: Server.HTMLDecode(str); • Dấu đôi “ chuyển thành " 30
- 2.5 Session Khái niệm Thuộc tính và phương thức 31
- Khái niệm Dùng để lưu trữ thông tin của người dùng trong ứng dụng Thông tin được lưu trữ trong Session là của một người dùng trong một phiên làm việc cụ thể Web Server sẽ tự động tạo một đối tượng Session cho mỗi người dùng mới kết nối vào ứng dụng và tự động hủy chúng nếu người dùng còn không làm việc với ứng dụng nữa 32
- Thuộc tính và phương thức • Qui định khoảng thời gian (tính bằng phút) mà Web Timeout Server duy trì đối tượng Session nếu người dùng không gởi yêu cầu nào về lại Server. Giá trị mặc định Abandon của thuộc tính này là 20 phút • Nếu không có yêu cầu nào kể từ lần yêu cầu sau cùng một khoảng thời gian là phút, đối tượng Session mà Web server cấp cho lần làm việc đó sẽ tự động được giải phóng => Yêu cầu sau coi như ngời dùng mới Session.TimeOut = 100; • Giải phóng vùng nhớ được dùng để duy trì đối tượng Session trên Web Server ngay khi được gọi thực hiện • Những yêu cầu sau đó được Web server coi như là một người dùng mới Session.Abandon(); 33
- Thuộc tính và phương thức SessionID: chứa ID của session đang kích hoạt, mỗi user đựơc phân biệt bởi sessionID gọi là mã phiên làm việc Count: trả về số session trong một ứng dụng Remove(“SessionName”): xoá dữ liệu trên biến “VarSession” RemoveAll(): Xoá dữ liệu, nhưng sessionID vẫn tồn tại 34
- Thuộc tính và phương thức Tạo biến Session: Session.Add("Tên_Biến","Giá trị khởi tạo"); Đọc giá trị của một biến sesstion: Session.Contents[“Tên_Biến”]; hoặc dùng chỉ số: Session.Contents[i]; Ghi (thay đổi) giá trị của biến session: Session.Contents[“Tên_Biến”] = ; 35
- Thuộc tính và phương thức Các sự kiện tự động được gọi mỗi khi một phiên làm việc được tạo ra : On_Start On_End Các sự kiện được đặt trong file Global.asax: 36
- Ví dụ: Tại trang Login, người dùng nhập user name và mật khẩu : Nếu đúng : asp.net và 123456 thì được phép truy cập các trang Home.aspx Nếu sai : Thì ở nguyên trang Login.aspx Trang Home.aspx (chỉ có 1 dòng giới thiệu) 37
- Thực hiện Thiết kế Login.aspx : Trang Login.aspx Trang Login.aspx.cs Thiết kế Home.aspx : Thiết kế Home.aspx Thiết kế Home.aspx.cs Thiết kế Golbal.asax : 38
- Trang Login.aspx Trang Login.aspx.cs Login public partial class Login : System.Web.UI.Page { protected sender, EventArgs e) { User name: } Password: protected e) { if == "asp.net" && txtPassword.Text == "123456") { Session.Contents["TrangThai"] = "DaDangNhap"; Response.Redirect("Home.aspx"); } } } 39
- Thiết kế Home.aspx kế Home.aspx.cs Home public partial class Home : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (Session.Contents["trangthai"].ToString()=="chuadangnhap")bạn đã đăng nhập thành công { Response.Redirect ("Login.aspx"); } } } 40
- Thiết kế Golbal.asax void Application_Start(object sender, EventArgs e) { // Code that runs on application startup } void Application_End(object sender, EventArgs e) { // Code that runs on application shutdown } void Application_Error(object sender, EventArgs e) { // Code that runs when an unhandled error occurs } void Session_Start(object sender, EventArgs e) { // Code that runs when a new session is started Session.Add("TrangThai", "chuadangnhap"); } void Session_End(object sender, EventArgs e) { // Code that runs when a session ends. // Note: The Session_End event is raised only when the sessionstate mode // is set to InProc in the Web.config file. If session mode is set to StateServer // or SQLServer, the event is not raised. } 41
- 2.6 Application Khái niệm Thuộc tính 42
- Khái niệm Đối tượng Application được sử dụng để quản lý tất cả các thông tin của một ứng dụng web Thông tin được lưu trữ trong đối tượng Application có thể được xử lý trong bất kỳ trang aspx nào trong suốt chu kỳ sống của ứng dụng 43
- Tạo biến Application: Application.Add(“Tên_Biến”, ); Truy xuất đến biến Application: Application.Contents[“Tên_Biến”] ; hoặc chỉ số: Application.Contents[i]; string s = (string) Application[“chuoi”] ; int count = (int) Application[“count”] ; 44
- Ngoài ra, đối tượng Application còn có 2 phương thức thường dùng là : Application.Lock(): Để khóa không cho người khác sửa đổi các biến toàn cục Application.UnLock() để mở khóa Đối tượng Application cũng có 2 sự kiện : Application_OnStart : chỉ được kích hoạt duy nhất một lần khi yêu cầu đầu tiên phát sinh Application_OnEND : được kích hoạt khi dịch vụ web dừng (unload) Mã lệnh viết cho 2 sự kiện này cũng được đặt trong file Global.asax 45
- Ví dụ: Đếm số lượng khách truy cập website Giải quyết: Tạo website index.aspx Sử dụng Application 46
- Index.aspx Index Chào mừng bạn đã đến website của chúng tôi 47
- Index.aspx.cs public partial class Index : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { lblSLKhach.Text = "Bạn là vị khách thứ : " + Application.Contents["SLTruyCap"].ToString(); } } 48
- Golbal.asax void Application_Start(object sender, EventArgs e) { // Code that runs on application startup //Tạo một biến Applciation là SLTruyCap và khởi tạo giá trị 0 Application.Add("SLTruyCap", 0); } void Session_Start(object sender, EventArgs e) { // Code that runs when a new session is started //Tăng số lượng người truy cập lên 1 khi có một người mới thăm Application.Contents["SLTruyCap"] = int.Parse(Application.Contents["SLTruyCap"].ToString()) + 1; } 49
- 2.7 Chu trình sống của một trang web Chu kỳ sống được bắt đầu khi trình duyệt yêu cầu một trang web gọi là Session. Chu kỳ sống vẫn tiếp tục nếu: Session đang hoạt động. Người sử dụng tương tác với giao diện web cho đến khi kích hoạt một sự kiện. Dữ liệu của trang (View State) wed được gửi về cho Server. Server nhận được View State và trả lại yêu cầu từ View State. Chu kỳ sống kết thúc khi: Người dùng kết thúc trình duyệt. Session kết thúc (timeout). Mỗi khi người dùng duyệt web của mình sẽ có các sự kiện ứng dụng sau: Application_Start: Người dùng đầu tiên duyệt trang web. Application_End: Khi không còn người dùng nào duyệt trang web. Application_Error: Khi có lỗi xảy ra trong ứng dụng Session_Start: Khi người dùng duyệt một trang web Session_End: Khi người dùng đóng trình duyệt hoặc Session kết thúc (time out) 50
- file Global.asax void Application_Start(object sender, EventArgs e) { //Kiểm tra nếu chưa tồn tại file thì tạo file Count_Visited.txt if (!File.Exists(Server.MapPath("Count_Visited.txt"))) File.WriteAllText(Server.MapPath("Count_Visited.txt"), "0"); Application["DaTruyCap"] =int.Parse(File.ReadAllText(Server.MapPath("Count_Visited.txt"))); } void Application_End(object sender, EventArgs e) { } void Application_Error(object sender, EventArgs e) { } void Session_Start(object sender, EventArgs e) { // Tăng số đang truy cập lên 1 nếu có khách truy cập if (Application["DangTruyCap"] == null) Application["DangTruyCap"] = 1; else Application["DangTruyCap"] = (int)Application["DangTruyCap"] + 1; // Tăng số đã truy cập lên 1 nếu có khách truy cập Application["DaTruyCap"] = (int)Application["DaTruyCap"] + 1; File.WriteAllText(Server.MapPath("Count_Visited.txt"), Application["DaTruyCap"].ToString()); } void Session_End(object sender, EventArgs e) { //Khi hết session hoặc người dùng thoát khỏi website thì giảm số người đang truy cập đi 1 Application["DangTruyCap"] = (int)Application["DangTruyCap"] - 1; } 51
- Cảm ơn. 52