Bài giảng Phát triển Web nâng cao - Chương II: Các lớp sử dụng trong ASP.NET

Đối tượng Request nhận tất cả giá trị mà trình duyệt của client gởi đến server thông qua HTTP request.

Request đại diện cho Client khi yêu cầu trang Web, Server sẽ dùng vừa Response vừa Request để đáp ứng yêu cầu hay đòi hỏi thông tin từ Client.

 

ppt65 trang | Chia sẻ: phuongt97 | Lượt xem: 504 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Phát triển Web nâng cao - Chương II: Các lớp sử dụng trong ASP.NET, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1CHƯƠNG II: CÁC LỚP SỬ DỤNG TRONG ASP.NET Lý thuyết : 3 tiếtThực hành : 3 tiết2Lớp Http RequestRequest là một thể hiện của lớp HttpRequest, Browser dùng Request object để gửi thông tin cần thiết tới ServerData3Lớp Http RequestĐối tượng Request nhận tất cả giá trị mà trình duyệt của client gởi đến server thông qua HTTP request.Request đại diện cho Client khi yêu cầu trang Web, Server sẽ dùng vừa Response vừa Request để đáp ứng yêu cầu hay đòi hỏi thông tin từ Client.4Lớp Http RequestCác thuộc tínhRequestType: 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 Cú phápvalMethode=Request.RequestType;5Lớp Http RequestTập hợp Form (Form collection ) Form collection đựơc 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.Lấy dữ liệu từ các phần tử của form: Cú phápVarName= Request.Form[“FieldName”];6Lớp Http RequestVí dụ: UserName: Password: txtUsertxtPwdDefault.aspx7Lớp Http RequestVí dụ (tt):Tại trang CheckUser.aspx, lấy giá trị của UserName và Password trên formUserName:Password8Lớp Http RequestCác thuộc tính của form Collection:Count: trả về số phần tử của form chuyển từ client đến server Cú pháp:Numelement=Request.Form.Count;9Lớp Http RequestKeys[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.CountCú pháp: Varfield=Request.Form.Keys[i];10Lớp Http RequestVí dụ: 11Lớp Http RequestTập hợp QueryString (QueryStringCollection) 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. QueryString được định nghĩa là chuỗi nằm sau dấu ? trong chuỗi URL (Uniform Resource Locator) trên phần Address của trình duyệt.12Lớp Http Request Các phần tử của formCó 3 cách truyền tham số và gọi file xử lý Cách 1 : dùng action , tham số truyền qua phần tử của form13Lớp Http RequestCách 2 : dùng action , tham số ghi sau dấu ? Các phần tử của form14Lớp Http RequestCách 3 : dùng chuỗi link , tham số ghi sau dấu ? Các tham số được khai báo cách nhau bởi dấu &, giá trị của mỗi tham số đặt sau dấu = Text hoặc image15Lớp Http RequestNế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.Với 3 cách truyền dữ liệu từ Client nêu trên, phía Server sẽ dùng tập hợp QueryString để nhận dữ liệu 16Lớp Http RequestLấy dữ liệu từ các phần tử của form hay : Cú pháp:Request.QueryString[“varName”];17Lớp Http RequestCác thuộc tính của QueryStringCollection:Count: trả về số phần tử của form chuyển từ client đến server Cú pháp:Numelement=Request.QueryString.Count;18Lớp Http RequestKeys[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.CountCú pháp: Ví dụ:Varfield=Request.QueryString.Keys[i];19Lớp Http Request UserName: txtUsertxtPwd20Lớp Http RequestTại Server (file CheckUser.aspx), lấy giá trị của UserName và Password 21Lớp Http RequestHoặc: Trong các HyperLink Scholaship of IBMVar1=Request.QueryString[“typeNews”];//Var1=eduVar2=Request.QueryString[“NewsID”];//Var2=98708Tại ReadNews.aspx muốn lấy giá typeNews and NewsID, sử dụng cú pháp:22Lớp Http RequestTập hợp Cookies (CookiesCollection) Cookies là một mẫu thông tin nhỏ dùng để lưu trữ thông tin của người dùng trên máy client Cookies có 2 dạng: Cookies[“varcookies”].Value: trả về giá trị chứa biến cookies là varcookies (1 chiều)Cookies[“varcookies”] [“Subvarcookies”]: trả về giá trị chứa biến cookies là subvarcookies (nhiều chiều)Cookies[“varcookies”] [“Subvarcookies”][“hhhhhh”]:23Lớp Http RequestThuộc tính của Cookies:Count: Xác định máy client có bao nhiêu phần tử cookiesCú pháp:Numelement=Request.Cookies.Count;24Lớp Http RequestKeys[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.Cookies.Count Cú pháp: Varfield=Request.Cookies.Keys[i];25Lớp Http RequestVí dụ: 26Lớp Http Response Http Response được sử dụng để truyền dữ liệu webserver đến webBrowserData27Lớp Http ResponseCác thuộc tínhBuffer: có 2 giá trị true và false quy định cách truyền tải dữ liệu:True: Hoàn tất công việc và gửi một lầnFalse: Thực hiện xong đến đâu thì gửi đến đó28Lớp Http ResponseCú pháp:isClientConnected: Kiểm tra máy client có yêu cầu kết nối đến server, kết quả trả về giá trị true/falseCookies: được sử dụng để ghi Cookies. Cookies được thể hiện trong asp.Net là lớp HttpcookiesResponse.Buffer=true/false;29Lớp Http ResponseKhởi tạo biến cookies:Ghi cookie vào clientHttpcookies varck= new Httpcookies(“CkName”);varck.Value =value;30Lớp Http ResponseServer ghi vào máy trạm 1 biến cookiesXóa cookies Response.Cookies.Add(varck);Response.Cookies.Clear();31Lớp Http ResponseVí dụ:khởi tạo biến cookie và gán giá trị 32Lớp Http Response// Đọc Cookies v = Request.Cookies[“Infor”].value ; // result :v=”abc”,”xyz”,”123”// hay dùngv1 = Request.Cookies[“Infor”] [“Us”];//abcv2 = Request.Cookies[“Infor”] [“Pwd”];//xyzv3 = Request.Cookies[“Infor”] [“Author”];//12333Lớp Http ResponseCác phương thứcClear(): Xóa vùng tạmCú pháp:End(): Kết thúc tiến trình xử lý trên Server và đẩy dữ liệu tới ClientFlush(): Kết thúc tiến trình, quay lại thực hiện tiếpResponse.Clear()34Lớp Http Response Ví dụ:35Lớp Http ResponseRedirect(url) : dùng để chuyển client sang một URL khácRedirect(url, Boolean): dùng để chuyển client sang một URL khác, trong đó:Nếu tham số Boolean =true thì khi thực hiện xong lệnh Response sẽ thực hiện tiếpNếu số Boolean =false thì khi thực hiện xong lệnh Response sẽ dừng 36Lớp Http ResponseVí dụ:Response.Redirect(“T1.aspx”); m=m+1;Try{ Response.Redirect(“T1.aspx”, false); m=m+1;}Catch{ Response.Redirect(“T2.aspx”);}37Lớp Http ResponseWrite(“Data”): Ghi dữ liệu ra trang web hoặc Response.Write(strname)38Lớp Http ServerĐố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, Các thuộc tínhMachineName: tên serverScriptTimeout: thiết lập thgian xử lý tối đa 1 fileVí dụ: Server.ScriptTimeout=100s //thiết lập thgian mặc định39Lớp Http ServerCác phương thứcMapPath(“URL”): ánh xạ đường dẫn ảo thành đường dẫn vật lý cho một tập tin trên Server Cú pháp:Path là chuỗi thực hiện đường dẫn tương đối của tập tin trên ứng dụng WebPhương thức sẽ trả về chuỗi hiện thực đường dẫn vật lý của tập tin đó.Server.MapPath(path)40Lớp Http ServerHtmlEncode(str): dùng để mã hoá HTML thành chuỗi Cú pháp: Server.HTMLEncode(str)41Lớp Http ServerKhi mã hoá chuỗi HTML sang chuỗi bình thường nếu gặp các ký tự như sau sẽ chuyển sang ký tự tương ứng:Ký tự chuyển thành >Ký tự & chuyển thành &Dấu đôi “ chuyển thành "42Lớp Http ServerHtmlDecode(strcontent):giải mã các thẻ HTMLVí dụ: Str=”n>5” Str=server.HtmlDecode(str); // kết quả n>543Lớp Http ServerTransfer: gửi tất cả thông tin mà nó đã xử lý từ trang ASP hiện hành sang trang ASP khác Cú pháp: Trong đó, tham số path là đường dẫn của tập tin ASP cần chuyển điều khiển. Server.Transfer(path)44Lớp Http ServerPhương thức URLEncode: Tương tự như phương thức HTMLEncode, phương thức URLEcode dùng để mã hoá URL thành chuỗi Cú phápServer.URLEncode(str)45Lớp Http ServerKhi mã hoá chuỗi URL sang chuỗi bình thường nếu gặp các ký tự như sau, sẽ chuyển sang ký tự tương ứng:Ký tự khoảng trắng chuyển thành dấu +Ký tự không thuộc ký tự chữ và số sẽ chuyển thành số hexadecimal.46Lớp Http ServerPhương thức CreateObject: Phương thức này (không có giá trị trả về) dùng để tạo đối tượng thành phần trên Server Cú phápTham số progid chỉ định loại đối tượng cần tạo với định dạng [Vendor.] Component[.Version]Server.CreateObject(progid)47Lớp Http ServerVí dụ: Tạo đối tượng ADODB.Connection, ADODB.Recordset, MSWC.AdRotator, ...      `48Lớp Http ServerPhương thức Execute: không có giá trị trả về, dùng để gọi một tập tin .asp và xử lý nó như một phần của kịch bản ASP Cú phápPath là đường dẫn và tên tập tin asp cần thực thi, tương tự như gọi thủ tục trong nhiều ngôn ngữ lập trình khác.Server.Execute(path)49SessionĐối tượng Session là một websever cơ bản sử dụng trong ASP và ASP.NET được dùng để lưu trữ trạng thái. 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 phiên làm việc kết thúc50SessionKhởi tạo:Lấy giá trị từ biến Session Session[“SessionName”]=Session[“SessionName”] +value + @@: dùng để tách các giá trị (có thể chọn tùy ý)Session[“SessionName”]=valuevarName=Convert.ToString(Session[“SessionName”])51SessionThuộc tính:Timeout: Qui định khoảng thời gian (tính bằng phút) Web Server duy trì 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 của Timeout là 20. 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. 52SessionNhững yêu cầu sau đó, web server coi như là một người dùng mới, và sẽ cấp một đối tượng Session mới Ví dụ: Session.TimeOut = 100 //Thiết lập thời gian cho 1 phiên làm việc của user là 100 phút Có thể thiết lập thuộc tính này trong tập tin Web.config trong 53SessionSessionID: 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 54SessionPhương thứcAbandon(): 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. 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 55SessionVí dụ: Tạo chức năng đăng nhập và thoát Từ Menu chọn Website Add new item  Web User Control, đặt tên là Login.aspx Thiết kế giao diện như sau: 56Session Khởi tạo và Huỷ thông tin đăng nhập của người dùng trong Session void Session_Start(object sender, EventArgs e) { // Tăng số khách viếng khi có 1 phiên làm việc của user Application["SoKhachVieng"] = (int)Application["SoKhachVieng"] + 1; // Thiết lập thời gian TimeOut cho mọi phiên là 30 phút Session.Timeout = 30; // Đặt trạng thái ban đầu của user là chưa đăng nhập Session["LOGIN_OK"] = false; }57protected void btnLogin_Click(object sender, EventArgs e) { if (Authority(txtUserName.Text, txtPassword.Text)) { // Lưu thông tin đăng nhập thành công vào Session Session["LOGIN_OK"] = true; // Ẩn chức năng Login panelLogin.Visible = false; // Hiển thị chức năng logout và lời chào mừng LblGreeting.Text = "Chào mừng bạn " + txtUserName.Text + " đã đăng nhập website!"; } else { // Lưu thông tin đăng nhập thất bại vào Session Session["LOGIN_OK"] = false; } } 58Sessionprotected bool Authority(string user, string pwd) { if (user == "aaa" && pwd == "1234") { return true; } return false; } 59ApplicationĐố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, bao gồm các file, trang web, sự kiện, module và code trong thư mục web ảo(virtual directory) và các thư mục con của nóApplication chia sẻ thông, nghĩa là một Application sau khi khởi tạo thì mọi người sử dụng có thể truy cập đối tượng này 60ApplicationSự kiện: global.asaxApplication_Start: Khi ứng dụng web lần đầu tiên được gọi Application_End: Khi ứng dụng web kết thúc. 61ApplicationKhởi tạo: Đối tượng Application được tạo khi client yêu cầu bất kỳ trang nào trong ứng dụngApplication[“TenBien”] = “Value” ; 62ApplicationLấy giá trị: string s = (string) Application[“chuoi”] ;int count = (int) Application[“count”] ;63ApplicationVí dụ: Khởi tạo và lưu thông tin Số người duyệt website khi website được kích hoạt lần đầu tiên void Application_Start(object sender, EventArgs e) { Application["SoKhachVieng"] = 0;// Khởi tạo số khách viếng ban đầu là 0 }64ApplicationMở trang Global.asax ở chế độ View Code void Session_Start(object sender, EventArgs e) { Application["SoKhachVieng"] = int)Application["SoKhachVieng"]+1; // Tăng số khách viếng khi có 1 phiên làm việc của user } 65ApplicationVí dụ :Lấy thông tin số khách viếng website và hiển thị ra màn hình Mở trang Index.aspx ở chế độ View Code, Xử lý trong hàm Page_Load như sau: protected void Page_Load(object sender, EventArgs e) { lbtCount.Text = "Số khách viếng thăm :" + Application["SoKhachVieng"].ToString(); }

Các file đính kèm theo tài liệu này:

  • pptbai_giang_phat_trien_web_nang_cao_chuong_ii_cac_lop_su_dung.ppt
Tài liệu liên quan