SlideShare ist ein Scribd-Unternehmen logo
1 von 67
1
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
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 Request
Cá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à GET
Cú pháp
valMethode=Request.RequestType;
5
Lớp Http Request
1. 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”];
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 Request
Ví 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 Request
Cá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;
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];
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 Request
2. 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>
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>
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>
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”];
17
Lớp Http Request
Cá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;
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];
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=edu
Var2=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 Request
3. 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;
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];
25
Lớp Http Request
Ví 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 Response
Cú 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;
29
Lớp Http Response
 Khởi tạo biến cookies:
 Ghi cookie vào client
Httpcookies varck= new Httpcookies(“CkName”);
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.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 Cookies
v = Request.Cookies[“Infor”].value ;
// result :v=”abc”,”xyz”,”123”
// hay dùng
v1 = Request.Cookies[“Infor”] [“Us”];//abc
v2 = Request.Cookies[“Infor”] [“Pwd”];//xyz
v3 = Request.Cookies[“Infor”] [“Author”];//123
33
Lớp Http Response
Cá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()
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
Method Redirect()
 Dùng để chuyển hướng link liên kết sang một
trang theo ý mình
 Cú pháp:
Response.Redirect(“url");
Trong đó url: là địa chỉ của trang muốn điều
hướng
Ví dụ:
Response.Redirect("hocasp.aspx");
Response.Redirect("../hocasp.aspx");
36
37
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”);
}
 dùng để in ra một chuổi trên trang web.
Phương thức này được xem là chủ đạo trong
việc chuyển gửi thông tin từ Server về máy
Client.
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("Response Demo by thuynt27");
}
 Cú pháp:
 Response.Write(“string");
Method write()
38
39
Lớp Http Response
 Write(“Data”): Ghi dữ liệu ra trang web
<% = strname %>
hoặc
Response.Write(strname)
40
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
file
Ví dụ:
Server.ScriptTimeout=100s //thiết lập thgian mặc định
41
Lớp Http Server
Cá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)
42
Lớp Http Server
 HtmlEncode(str): dùng để mã hoá HTML
thành chuỗi
Cú pháp:
Server.HTMLEncode(str)
43
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;
44
Lớp Http Server
 HtmlDecode(strcontent):giải mã các thẻ HTML
Ví dụ:
Str=”n&gt;5”
Str=server.HtmlDecode(str); // kết quả n>5
45
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)
46
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)
47
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.
48
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)
49
Lớp Http Server
Ví 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)
%>`
50
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)
51
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
52
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
varName=Convert.ToString(Session[“SessionName”])
53
Session
Thuộ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.
54
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" />
55
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
56
Session
Phươ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
57
Session
Ví 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:
58
Session
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;
}
59
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;
}
}
60
Session
protected bool Authority(string user, string pwd)
{
if (user == "aaa" && pwd == "1234")
{
return true;
}
return false;
}
61
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
62
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.
63
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” ;
64
Application
 Lấy giá trị:
string s = (string) Application[“chuoi”] ;
int count = (int) Application[“count”] ;
65
Application
Ví 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
}
66
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
}
67
Application
Ví 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();
}

Weitere ähnliche Inhalte

Ähnlich wie chuong_02.ppt

Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webMasterCode.vn
 
Bai3 basic servlets_956
Bai3 basic servlets_956Bai3 basic servlets_956
Bai3 basic servlets_956Ham Chơi
 
đề thi trắc nghiệm asp net co kem đáp án trên 400 câu hỏi thiết kế website ki...
đề thi trắc nghiệm asp net co kem đáp án trên 400 câu hỏi thiết kế website ki...đề thi trắc nghiệm asp net co kem đáp án trên 400 câu hỏi thiết kế website ki...
đề thi trắc nghiệm asp net co kem đáp án trên 400 câu hỏi thiết kế website ki...anh hieu
 
Bao cao do an ltm hoan chinh
Bao cao do an ltm hoan chinhBao cao do an ltm hoan chinh
Bao cao do an ltm hoan chinhNgok Ánk
 
B tl internet
B tl internetB tl internet
B tl internettoan
 
Bai 4 lap trình phia client
Bai 4  lap trình phia clientBai 4  lap trình phia client
Bai 4 lap trình phia clientLee Nam Nguyen
 
Bài 3: Servlet - Lập Trình Mạng Nâng Cao
Bài 3: Servlet - Lập Trình Mạng Nâng CaoBài 3: Servlet - Lập Trình Mạng Nâng Cao
Bài 3: Servlet - Lập Trình Mạng Nâng CaoTuan Nguyen
 
Dos web server it-slideshares.blogspot.com
Dos web server it-slideshares.blogspot.comDos web server it-slideshares.blogspot.com
Dos web server it-slideshares.blogspot.comphanleson
 
Devwork.vn Tài liệu lập trình PHP Laravel
Devwork.vn Tài liệu lập trình PHP LaravelDevwork.vn Tài liệu lập trình PHP Laravel
Devwork.vn Tài liệu lập trình PHP LaravelDevwork
 
Bai tap lap trinh mang(1)
Bai tap lap trinh mang(1)Bai tap lap trinh mang(1)
Bai tap lap trinh mang(1)Linh Nguyen
 
E learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPE learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPelearninglabvn
 
Semina Kết nối nguồn dữ liệu từ Internet
Semina Kết nối nguồn dữ liệu từ Internet Semina Kết nối nguồn dữ liệu từ Internet
Semina Kết nối nguồn dữ liệu từ Internet Nguyễn Ngọc Hoàng
 
Bai2 tong quan_mvc_0567
Bai2 tong quan_mvc_0567Bai2 tong quan_mvc_0567
Bai2 tong quan_mvc_0567Ham Chơi
 

Ähnlich wie chuong_02.ppt (20)

Aspnet 3.5 _04
Aspnet 3.5 _04Aspnet 3.5 _04
Aspnet 3.5 _04
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
 
Web301 slide 1
Web301   slide 1Web301   slide 1
Web301 slide 1
 
Bai3 basic servlets_956
Bai3 basic servlets_956Bai3 basic servlets_956
Bai3 basic servlets_956
 
400 câu hỏi thi trắc nghiệm ASP.NET có đáp án - Thiết kế website kinh doanh 2
400 câu hỏi thi trắc nghiệm ASP.NET có đáp án - Thiết kế website kinh doanh 2400 câu hỏi thi trắc nghiệm ASP.NET có đáp án - Thiết kế website kinh doanh 2
400 câu hỏi thi trắc nghiệm ASP.NET có đáp án - Thiết kế website kinh doanh 2
 
đề thi trắc nghiệm asp net co kem đáp án trên 400 câu hỏi thiết kế website ki...
đề thi trắc nghiệm asp net co kem đáp án trên 400 câu hỏi thiết kế website ki...đề thi trắc nghiệm asp net co kem đáp án trên 400 câu hỏi thiết kế website ki...
đề thi trắc nghiệm asp net co kem đáp án trên 400 câu hỏi thiết kế website ki...
 
Aspnet 3.5 _05
Aspnet 3.5 _05Aspnet 3.5 _05
Aspnet 3.5 _05
 
Bao cao do an ltm hoan chinh
Bao cao do an ltm hoan chinhBao cao do an ltm hoan chinh
Bao cao do an ltm hoan chinh
 
B tl internet
B tl internetB tl internet
B tl internet
 
Bai 4 lap trình phia client
Bai 4  lap trình phia clientBai 4  lap trình phia client
Bai 4 lap trình phia client
 
Bài 3: Servlet - Lập Trình Mạng Nâng Cao
Bài 3: Servlet - Lập Trình Mạng Nâng CaoBài 3: Servlet - Lập Trình Mạng Nâng Cao
Bài 3: Servlet - Lập Trình Mạng Nâng Cao
 
Dos web server it-slideshares.blogspot.com
Dos web server it-slideshares.blogspot.comDos web server it-slideshares.blogspot.com
Dos web server it-slideshares.blogspot.com
 
Ung dung web chuong 4
Ung dung web  chuong 4Ung dung web  chuong 4
Ung dung web chuong 4
 
Devwork.vn Tài liệu lập trình PHP Laravel
Devwork.vn Tài liệu lập trình PHP LaravelDevwork.vn Tài liệu lập trình PHP Laravel
Devwork.vn Tài liệu lập trình PHP Laravel
 
Bai tap lap trinh mang(1)
Bai tap lap trinh mang(1)Bai tap lap trinh mang(1)
Bai tap lap trinh mang(1)
 
E learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPE learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHP
 
Semina Kết nối nguồn dữ liệu từ Internet
Semina Kết nối nguồn dữ liệu từ Internet Semina Kết nối nguồn dữ liệu từ Internet
Semina Kết nối nguồn dữ liệu từ Internet
 
Ung dung web chuong 7
Ung dung web  chuong 7Ung dung web  chuong 7
Ung dung web chuong 7
 
Cach su dung data reader
Cach su dung data readerCach su dung data reader
Cach su dung data reader
 
Bai2 tong quan_mvc_0567
Bai2 tong quan_mvc_0567Bai2 tong quan_mvc_0567
Bai2 tong quan_mvc_0567
 

chuong_02.ppt

  • 1. 1 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
  • 2. 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. 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. 4 Lớp Http Request Cá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à GET Cú pháp valMethode=Request.RequestType;
  • 5. 5 Lớp Http Request 1. 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”];
  • 6. 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. 7 Lớp Http Request Ví 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. 8 Lớp Http Request Cá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;
  • 9. 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];
  • 10. 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. 11 Lớp Http Request 2. 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. 12 Lớp Http Request <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. 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>
  • 14. 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>
  • 15. 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. 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”];
  • 17. 17 Lớp Http Request Cá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;
  • 18. 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];
  • 19. 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. 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. 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=edu Var2=Request.QueryString[“NewsID”];//Var2=98708 Tại ReadNews.aspx muốn lấy giá typeNews and NewsID, sử dụng cú pháp:
  • 22. 22 Lớp Http Request 3. 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. 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;
  • 24. 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];
  • 25. 25 Lớp Http Request Ví 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. 26 Lớp Http Response Http Response được sử dụng để truyền dữ liệu webserver đến webBrowser Data
  • 27. 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. 28 Lớp Http Response Cú 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;
  • 29. 29 Lớp Http Response  Khởi tạo biến cookies:  Ghi cookie vào client Httpcookies varck= new Httpcookies(“CkName”); varck.Value =value;
  • 30. 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.Clear();
  • 31. 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. 32 Lớp Http Response // Đọc Cookies v = Request.Cookies[“Infor”].value ; // result :v=”abc”,”xyz”,”123” // hay dùng v1 = Request.Cookies[“Infor”] [“Us”];//abc v2 = Request.Cookies[“Infor”] [“Pwd”];//xyz v3 = Request.Cookies[“Infor”] [“Author”];//123
  • 33. 33 Lớp Http Response Cá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()
  • 34. 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. 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. Method Redirect()  Dùng để chuyển hướng link liên kết sang một trang theo ý mình  Cú pháp: Response.Redirect(“url"); Trong đó url: là địa chỉ của trang muốn điều hướng Ví dụ: Response.Redirect("hocasp.aspx"); Response.Redirect("../hocasp.aspx"); 36
  • 37. 37 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”); }
  • 38.  dùng để in ra một chuổi trên trang web. Phương thức này được xem là chủ đạo trong việc chuyển gửi thông tin từ Server về máy Client. protected void Page_Load(object sender, EventArgs e) { Response.Write("Response Demo by thuynt27"); }  Cú pháp:  Response.Write(“string"); Method write() 38
  • 39. 39 Lớp Http Response  Write(“Data”): Ghi dữ liệu ra trang web <% = strname %> hoặc Response.Write(strname)
  • 40. 40 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 file Ví dụ: Server.ScriptTimeout=100s //thiết lập thgian mặc định
  • 41. 41 Lớp Http Server Cá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)
  • 42. 42 Lớp Http Server  HtmlEncode(str): dùng để mã hoá HTML thành chuỗi Cú pháp: Server.HTMLEncode(str)
  • 43. 43 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;
  • 44. 44 Lớp Http Server  HtmlDecode(strcontent):giải mã các thẻ HTML Ví dụ: Str=”n&gt;5” Str=server.HtmlDecode(str); // kết quả n>5
  • 45. 45 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)
  • 46. 46 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)
  • 47. 47 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.
  • 48. 48 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)
  • 49. 49 Lớp Http Server Ví 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) %>`
  • 50. 50 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)
  • 51. 51 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
  • 52. 52 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 varName=Convert.ToString(Session[“SessionName”])
  • 53. 53 Session Thuộ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.
  • 54. 54 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" />
  • 55. 55 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
  • 56. 56 Session Phươ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
  • 57. 57 Session Ví 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:
  • 58. 58 Session 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; }
  • 59. 59 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; } }
  • 60. 60 Session protected bool Authority(string user, string pwd) { if (user == "aaa" && pwd == "1234") { return true; } return false; }
  • 61. 61 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
  • 62. 62 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.
  • 63. 63 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” ;
  • 64. 64 Application  Lấy giá trị: string s = (string) Application[“chuoi”] ; int count = (int) Application[“count”] ;
  • 65. 65 Application Ví 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 }
  • 66. 66 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 }
  • 67. 67 Application Ví 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(); }