CHƯƠNG II: CÁC LỚP SỬ DỤNG TRONG ASP.NET

Preview:

DESCRIPTION

CHƯƠNG II: CÁC LỚP SỬ DỤNG TRONG ASP.NET. Lý thuyết : 3 tiết Thực hành : 3 tiết. Data. Lớp Http Request. Request 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 Server. Lớp Http Request. - PowerPoint PPT Presentation

Citation preview

1

CHƯƠNG II:CÁC LỚP SỬ DỤNG TRONG ASP.NET

Lý thuyết : 3 tiếtThực hành : 3 tiết

2

Lớp Http Request Request 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 Server

Data

3

Lớ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.

4

Lớp Http RequestCác thuộc tính 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à GETCú pháp

valMethode=Request.RequestType;

valMethode=Request.RequestType;

5

Lớp Http Request1. Tậ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áp

VarName= Request.Form[“FieldName”];

VarName= Request.Form[“FieldName”];

6

Lớp Http Request Ví dụ:

<form method="Post" action=“CheckUser.aspx"> UserName: <input type="text" name="txtUser" /><br /> Password: <input type="password" name="txtPwd" /><br /> <input type="Submit" name="btnLogin" value="Login" /><br /> </form>

txtUser

txtPwd

Default.aspx

7

Lớp Http RequestVí dụ (tt):Tại trang CheckUser.aspx, lấy giá trị của UserName

và Password trên form

<b>UserName:</b>

<%=Request.Form["txtUser"]%><br />

<b>Password</b>

<%=Request.Form["txtPwd"]%>

8

Lớ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 serverCú pháp:

Numelement=Request.Form.Count;Numelement=Request.Form.Count;

9

Lớp Http Request 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

Cú pháp:

Varfield=Request.Form.Keys[i];Varfield=Request.Form.Keys[i];

10

Lớp Http Request Ví dụ: <% int i, num; string varField, varName; num = Request.Form.Count; for (i = 0; i < num; i++) { varField = Request.Form.Keys[i]; varName = Request.Form[varField]; } %>

11

Lớp Http Request2. Tậ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 <a> 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.

12

Lớp Http Request

<Form method=”Get” action=”FileName.aspx>

Các phần tử của form</Form>

<Form method=”Get” action=”FileName.aspx>

Các phần tử của form</Form>

Có 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 form

13

Lớp Http Request Cách 2 : dùng action , tham số ghi sau

dấu ?

<Form method=”Get or Post” action=”FileName.aspx?var1=value1&var2=value2&…”>

Các phần tử của form</Form>

<Form method=”Get or Post” action=”FileName.aspx?var1=value1&var2=value2&…”>

Các phần tử của form</Form>

14

Lớp Http Request Cá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 =

<a href=”FileName.aspx?var1=value1&var2=value2&…”>

Text hoặc image</a>

<a href=”FileName.aspx?var1=value1&var2=value2&…”>

Text hoặc image</a>

15

Lớp Http Request

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.

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

16

Lớp Http Request Lấy dữ liệu từ các phần tử của form

hay <a>:Cú pháp:

Request.QueryString[“varName”];

Request.QueryString[“varName”];

17

Lớ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 serverCú pháp:

Numelement=Request.QueryString.Count;

Numelement=Request.QueryString.Count;

18

Lớp Http Request 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

Cú pháp:

Ví dụ:

Varfield=Request.QueryString.Keys[i];

Varfield=Request.QueryString.Keys[i];

19

Lớp Http Request

<form method=“Get" action=“CheckUser.aspx"> UserName: <input type="text" name="txtUser" /><br / Password: <input type="password" name="txtPwd" /><br /> <input type="Submit" name="btnLogin" value="Login" /><br /></form>

txtUser

txtPwd

20

Lớp Http Request Tại Server (file CheckUser.aspx), lấy giá

trị của UserName và Password

<% string strUser, strPws;

strUser = Request.QueryString["txtUser"];

strPws = Request.QueryString["txtPwd"];

%>

21

Lớp Http Request Hoặc: Trong các HyperLink

<a href=“ReadNews.aspx?typeNews=edu&NewsID=98708”> Scholaship of IBM</a>

Var1=Request.QueryString[“typeNews”];//Var1=eduVar2=Request.QueryString[“NewsID”];//Var2=98708

Var1=Request.QueryString[“typeNews”];//Var1=eduVar2=Request.QueryString[“NewsID”];//Var2=98708

Tại ReadNews.aspx muốn lấy giá typeNews and NewsID, sử dụng cú pháp:

22

Lớp Http Request3. Tậ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”]:

23

Lớp Http Request

Thuộc tính của Cookies: Count: Xác định máy client có bao nhiêu

phần tử cookies

Cú pháp:

Numelement=Request.Cookies.Count;Numelement=Request.Cookies.Count;

24

Lớp Http Request 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.Cookies.Count

Cú pháp:

Varfield=Request.Cookies.Keys[i];Varfield=Request.Cookies.Keys[i];

25

Lớp Http RequestVí dụ:

<% int i, num; string varField, varName; num = Request.Cookies.Count; for (i = 0; i < num; i++) { varField = Request.Cookies.Keys[i]; varName = Request.Cookies.[varField].Value; } %>

26

Lớp Http Response

Http Response được sử dụng để truyền dữ liệu webserver đến webBrowser

Data

27

Lớp Http Response

Các thuộc tính Buffer: 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ần False: Thực hiện xong đến đâu thì gửi

đến đó

28

Lớ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/false

Cookies: được sử dụng để ghi Cookies. Cookies được thể hiện trong asp.Net là lớp Httpcookies

Response.Buffer=true/false;Response.Buffer=true/false;

29

Lớp Http Response Khởi tạo biến cookies:

Ghi cookie vào client

Httpcookies varck= new Httpcookies(“CkName”);Httpcookies varck= new Httpcookies(“CkName”);

varck.Value =value;varck.Value =value;

30

Lớp Http Response Server ghi vào máy trạm 1 biến

cookies

Xóa cookies

Response.Cookies.Add(varck);Response.Cookies.Add(varck);

Response.Cookies.Clear();Response.Cookies.Clear();

31

Lớp Http Response Ví dụ:khởi tạo biến cookie và gán giá trị

<% string v, v1,v2,v3; HttpCookie ckInform = new HttpCookie("Infor"); ckInform[“Us"] = "abc"; ckInform["Pwd"] = "xyz"; ckInform["Author"] = "123"; Response.Cookies.Add(ckInform); // server add cookies vào máy client%>

32

Lớp Http Response

// Đọc Cookiesv = Request.Cookies[“Infor”].value ;

// result :v=”abc”,”xyz”,”123”// hay dùng

v1 = Request.Cookies[“Infor”] [“Us”];//abcv2 = Request.Cookies[“Infor”]

[“Pwd”];//xyzv3 = Request.Cookies[“Infor”]

[“Author”];//123

33

Lớp Http ResponseCác phương thức Clear(): Xóa vùng tạm

Cú pháp:

End(): Kết thúc tiến trình xử lý trên Server và đẩy dữ liệu tới Client

Flush(): Kết thúc tiến trình, quay lại thực hiện tiếp

Response.Clear()Response.Clear()

34

Lớp Http Response

<% int i; Response.Buffer = true; for (i = 1; i < 10000; i++) {%> <%=i%> <%if (i % 10000 == 0)

Response.Flush();%> <%}%>

Ví dụ:

35

Lớp Http Response Redirect(url) : dùng để chuyển client

sang một URL khác Redirect(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ếp

Nếu số Boolean =false thì khi thực hiện xong lệnh Response sẽ dừng

36

Lớp Http Response Ví dụ:

Response.Redirect(“T1.aspx”);m=m+1;

Try{

Response.Redirect(“T1.aspx”, false);m=m+1;

}Catch{

Response.Redirect(“T2.aspx”);}

37

Lớp Http Response Write(“Data”): Ghi dữ liệu ra trang web

<% = strname %>hoặc

Response.Write(strname)

<% = strname %>hoặc

Response.Write(strname)

38

Lớ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ính MachineName: tên server ScriptTimeout: thiết lập thgian xử lý tối

đa 1 fileVí dụ: Server.ScriptTimeout=100s //thiết lập thgian

mặc định

39

Lớp Http ServerCác phương thức MapPath(“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 Web

Phươ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)Server.MapPath(path)

40

Lớp Http Server HtmlEncode(str): dùng để mã hoá HTML

thành chuỗi Cú pháp:

Server.HTMLEncode(str)Server.HTMLEncode(str)

41

Lớp Http Server Khi 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 &lt; Ký tự >chuyển thành &gt; Ký tự & chuyển thành &amp; Dấu đôi “ chuyển thành &quot;

42

Lớp Http Server HtmlDecode(strcontent):giải mã các thẻ

HTMLVí dụ:

Str=”n&gt;5”Str=server.HtmlDecode(str); // kết quả n>5

43

Lớp Http Server Transfer: 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)Server.Transfer(path)

44

Lớp Http Server Phươ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áp

Server.URLEncode(str)Server.URLEncode(str)

45

Lớp Http Server Khi 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.

46

Lớp Http Server Phươ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áp

Tham số progid chỉ định loại đối tượng cần tạo với định dạng

[Vendor.] Component[.Version]

Server.CreateObject(progid)

Server.CreateObject(progid)

47

Lớp Http ServerVí d : ụ

T o đ i t ng ADODB.Connection, ạ ố ượADODB.Recordset, MSWC.AdRotator, ...

<%

Set myAd=Server.CreateObject(MSWC.AdRotator)

Set myCon=Server.CreateObject(ADODB.Connection)

Set myCon=Server.CreateObject(ADODB.Recordset)

%>`

48

Lớp Http Server Phươ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áp

Path 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)Server.Execute(path)

49

Session Đố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úc

50

Session Khở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”]=value

Session[“SessionName”]=value

varName=Convert.ToString(Session[“SessionName”])varName=Convert.ToString(Session[“SessionName”])

51

SessionThuộ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à <Timeout> 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.

52

Session Nhữ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 <system.web>

<sessionState timeout=“100" />

53

Session 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

54

SessionPhương thức Abandon(): 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

55

SessionVí 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:

56

SessionKhở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;

}

57

protected 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;

} }

58

Sessionprotected bool Authority(string user, string

pwd) {

if (user == "aaa" && pwd == "1234") {

return true; }

return false; }

59

Application Đố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

60

Application Sự kiện: global.asax

Application_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.

61

Application Khở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ụng

Application[“TenBien”] = “Value” ; Application[“TenBien”] = “Value” ;

62

Application Lấy giá trị:

string s = (string) Application[“chuoi”] ;int count = (int) Application[“count”] ;

string s = (string) Application[“chuoi”] ;int count = (int) Application[“count”] ;

63

ApplicationVí 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

}

64

Application Mở 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

}

65

ApplicationVí 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();

}

Recommended