Đi tố ượng Request

Một phần của tài liệu Giới thiêu ngôn ngữ HTML - Dùng để thiết kế Web (Trang 88)

1 .T ng qua nổ

4.5.7.1 Đi tố ượng Request

B i vì k ch b n đở ị ả ược th c thi trên Web Server nên đ i tự ố ượng Request được coi nh làư đ i tố ượng Input. Đ i tố ượng này l u tr thông tin t Browser g i đ n Web Server.ư ữ ừ ử ế

M t s phộ ố ương th c c b n:ứ ơ ả

a) Request.QueryString

Cho phép server l y v các giá tr đấ ề ị ược g i t ngử ừ ười dùng qua URL ho c formặ (method=GET).

Ví d :ụ

Xây d ng trang home.asp ch a danh m c các tác gi . Khi kích vào h tên m i tác giự ứ ụ ả ọ ỗ ả s chuy n sang trang gioithieu.asp. Trang này s hi n th l i chào có d ng:ẽ ể ẽ ể ị ờ ạ

“Xin chào, đây là trang gi i thi u v tác gi : <h tên tác gi >”ớ ệ ề ả ọ ả

Server mu n nh n l i giá tr này thì dùng request.QueryString trang gioithieu.aspố ậ ạ ị ở <%

dim a

a=request.querystring(“tacgia”) ‘lúc này a có giá trị ‘là “Tran Van A”

response.write “Tác gi c a trang home.asp là: ” & aả ủ %>

Tương t nh v y n u ngự ư ậ ế ười dùng g i giá tr Tran Van A thông qua m t bi n trongử ị ộ ế form và ch n method GETọ

<form method=”get” action =”gioithieu.asp? tacgia=Nguyen Van A&namxb=1990”>

<input type=”text” name=”tacgia” value=”Tran Van A”> <input type=”submit” name=”submit” value=”Nhan vao day de sang trang gioi thieu”>

</form>

b) Request.Form

Cho phép server l y v các giá tr đấ ề ị ược g i t ngử ừ ười dùng qua form (method=POST).

Ví d :ụ

Trang form.asp v i mã ngu n nh sau:ớ ồ ư

<form method=”POST” action=”xulyform.asp”> <input type=”text” name=”User”>

<input type=”submit” name=”submit” value=”Nhan vao day de sang trang

gioi thieu”> </form>

Trang xulyform.asp làm nhi m v x lý thông tin t Form này s dùng câu l nh request.formệ ụ ử ừ ẽ ệ đ nh n l i thông tin ngể ậ ạ ười dùng đã gõ vào:

<% Dim x

x=Request.form(“User”)

response.write “Tên người dùng là: ” & x %>

4.5.7.2 Đ i tố ượng Response

Đ i tố ượng Response dùng đ g i các đáp ng t Server đ n Client.ể ử ứ ừ ế M t s phộ ố ương th c c b n:ứ ơ ả

a) Response.Write

Đ a thông tin ra màn hình trang webư

Ví d :ụ

Đ đ a câu chào Hello ra màn hình ta dùng l nh sau:ể ư ệ <%response.write “Hello”%> Hi n th th i gian trên server ra màn hình:ể ị ờ

<%response.write now%> ho c ặ <%=now%>

now là hàm l y ngày gi h th ng trên server.ấ ờ ệ ố

b) Response.Redirect

Chuy n x lý sang m t trang Asp khác.ể ử ộ

Ví d :ụ

Trang xulyform.asp sau khi ki m tra form đăng nh p th y ngể ậ ấ ười dùng không có quy nề vào website thì nó s chuy n đ n trang Error.asp(trang này hi n th m t thông báo l i userẽ ể ế ể ị ộ ỗ không có quy n truy c p). Mã l nh vi t nh sau:ề ậ ệ ế ư

<% Response.redirect “error.asp” %>

c) Response.End

Ng ng x lý các Script. Thông thừ ử ường, người ta dùng l nh này khi mu n d ng x lý ệ ố ừ ử ở m t v trí nào đó và b qua các mã l nh ASP phía sau. Đây là cách r t hay dùng trong m tộ ị ỏ ệ ở ấ ộ s tình hu ng, ch ng h n nh debug l i.ố ố ẳ ạ ư ỗ

4.5.7.3 Đ i tố ượng Session

Session là m t phiên làm vi c gi a t ng ngộ ệ ữ ừ ười dùng và web server, nó b t đ u khiắ ầ người đó l n đ u tiên truy c p t i 1 trang web trong website và k t thúc khi ngầ ầ ậ ớ ế ười đó r i kh iờ ỏ website ho c không tặ ương tác v i website trong m t kho ng th i ớ ộ ả ờ gian nh t đ nh (time out).ấ ị

Nh v y t i m t th i đi mư ậ ạ ộ ờ ể , m t website có bao nhiêu ngộ ười truy c p thì có b y nhiêuậ ấ phiên(Session) ng v i m i ngứ ớ ỗ ười, các phiên này đ c l p nhau. Đ l u nh ng thông tin tácộ ậ ể ư ữ d ng trong 1 phiên, ngụ ười ta dùng đ i tố ượng Session, ví d khi m t user b t đ u session v iụ ộ ắ ầ ớ vi c login vào h th ng, và user này c n đệ ệ ố ầ ược h th ng ghi nh trong toàn phiên làm vi cệ ố ớ ệ c a mình (nh m tránh vi c ngủ ằ ệ ười dùng ph i đăng nh p l i m i khi đ a ra m t request).ả ậ ạ ỗ ư ộ

Giá tr c a bi n ki u session có ph m vi trong t t c các trang ASP c a ng d ng,ị ủ ế ể ạ ấ ả ủ ứ ụ nh ng không có tác d ng đ i v i phiên làm vi c khác.ư ụ ố ớ ệ

Ví d :ụ

S d ng bi n session sau đây đ đ m s l n 1 ngử ụ ế ể ế ố ầ ười đã truy c p vào trang web:ậ Home.asp

<% session(“home”)=session(“home”)+1 %>

session(“home”) đ i di n cho s l n mà m t user đã truy c p vào trang home.asp. V iạ ệ ố ầ ộ ậ ớ 2 người dùng khác nhau thì giá tr session(“home”) l i khác nhau.ị ạ

Th t v y , A có th truy c p 10 l n (session(“home”) =10) trong khi B có th truy c pậ ậ ể ậ ầ ể ậ 2 l n thôi (session(“home”) =2).ầ

Server k t thúc và h y b đ i tế ủ ỏ ố ượng session khi:

Người dùng không tri u g i các trang c a ng d ng ho c c p nh t làm m i(refresh)ệ ọ ủ ứ ụ ặ ậ ậ ớ l i thông tin c a trang trong m t th i gian nh t đ nh.ạ ủ ộ ờ ấ ị

Khi m t session h t th i gian hi u l c nó s độ ế ờ ệ ự ẽ ược xem nh h t h n s d ng ,t t cư ế ạ ử ụ ấ ả các bi n l u trong session và b n thân session s b h y b .ế ư ả ẽ ị ủ ỏ

Có th ki m tra và ể ể thi t l p th i gian Timeout c a Session tính b ng giây nh sau:ế ậ ờ ủ ằ ư <%

Session.Timeout = 500 %>

Vi c kh i t o và k t thúc 1 bi n session có th vi t trong các hàm s ki n Session_OnStartệ ở ạ ế ế ể ế ự ệ và Session_OnEnd được đ nh nghĩa trong file global.asaị

4.5.7.4 Đ i tố ượng Application

Application đ i di n cho toàn b ng d ng, bao g m t t c các trang web trongạ ệ ộ ứ ụ ồ ấ ả website. Đ l u tr nh ng thông tin có tác d ng trong toàn ng d ng, t c là có giá tr trong t tể ư ữ ữ ụ ứ ụ ứ ị ấ c các trang asp và t t c các phiên, ngả ấ ả ười ta dùng đ i tố ượng Application

Đi m khác c a bi n application so v i bi n session là session ch có tác d ng đ i v iể ủ ế ớ ế ỉ ụ ố ớ m i phiên, còn bi n application có tác d ng v i m i phiên.ỗ ế ụ ớ ọ

Ví d , đ đ m xem có bao nhiêu ngụ ể ế ười truy c p vào website, chúng ta có th dùng m tậ ể ộ bi n Application. M i khi m t ngế ỗ ộ ười dùng m i truy c p vào website ta tăng bi n này lên 1ớ ậ ế đ n v đ ch r ng đã có thêm 1 ngơ ị ể ỉ ằ ười truy c p vào Website. Mã ngu n có th vi t nh sau:ậ ồ ể ế ư

<% application(“num_visited”)=application(“num_visited”)+1 %>

Trang home.asp mu n hi n th s ngố ể ị ố ười truy c p ch c n in giá tr c a bi n này.ậ ỉ ầ ị ủ ế <% response.write “S ngố ười đã truy c p vào websiteậ

là:”&application(“num_visited”)%>

V i 2 phiên khác nhau thì giá tr application(“ớ ị num_visited”) là nh nhau.ư

Vi c kh i t o và k t thúc 1 bi n application có th vi t trong các hàm s ki nệ ở ạ ế ế ể ế ự ệ Application_onStart và Application_onEnd được đ nh nghĩa trong file global.asaị

Khóa Application

Do bi n application có th đế ể ược dùng chung b i nhi u phiên nên s có trở ề ẽ ường h pợ x y ra xung đ t khi có 2 phiên cùng thay đ i giá tr m t bi n application.ả ộ ổ ị ộ ế

Đ ngăn ch n đi u này chúng ta có th dùng phể ặ ề ể ương th c Application.lock đ khóaứ ể bi n application trế ước khi thay đ i nó. Sau khi s d ng xong bi n này có th gi i phóng khóaổ ử ụ ế ể ả b ng phằ ương th c Application.unlock.ứ

4.5.7.5 File Global.asa

File này là file tùy ch n ch a các khai báo đ i tọ ứ ố ượng, bi n có ph m vi toàn ngế ạ ứ d ngụ (Website). Mã l nh vi t dệ ế ướ ại d ng Script.

M i ng d ng ch đỗ ứ ụ ỉ ược phép có m t và ch m t file Global.asa, n m th m c g cộ ỉ ộ ằ ở ư ụ ố c a ng d ng. Ngủ ứ ụ ười ta thường dùng global.asa trong trường h p mu n có nh ng x lý khiợ ố ữ ử m t session b t đ u hay k t thúc, m t application b t đ u hay k t thúc, thông qua các hàm sộ ắ ầ ế ộ ắ ầ ế ự ki n:ệ

Application_Onstart : Hàm s ki n này x y ra khi ng d ng asp b t đ u ho t đ ng,ự ệ ả ứ ụ ắ ầ ạ ộ t c là khi ngứ ười dùng đ u tiên truy c p t i trang ch c a Website.ầ ậ ớ ủ ủ

Session_Onstart: Hàm s ki n này x y ra m i khi có m t ngự ệ ả ỗ ộ ười dùng m i truy c p vàoớ ậ Website (b t đ u 1 session m i).ắ ầ ớ

Session_OnEnd: Hàm s ki n này x y ra m i khi 1 ngự ệ ả ỗ ười dùng k t thúc session c aế ủ h .ọ

Application_OnEnd: Hàm s ki n này x y ra khi không còn Session nào ho t đ ng.ự ệ ả ạ ộ File Global.asa có c u trúc nh sau:ấ ư

<script language="vbscript" runat="server"> Sub Application_OnStart

‘... End sub

‘... End Sub Sub Session_OnStart ‘... Application("x")=Application("x")+1 End sub Sub Session_OnEnd ‘... End Sub </script> Ví d :ụ

Đ m s ngế ố ười dùng đã truy c p website. S ngậ ố ười dùng đượ ưc l u tr trong bi nữ ế Application(“songuoi”).

b t c đâu trong ng d ng n u mu n hi n th s ng i dùng chúng ta ch vi c chèn

Ở ấ ứ ứ ụ ế ố ể ị ố ườ ỉ ệ

l nh hi n th nó:ệ ể ị

<%=Application(“songuoi”)%>

Ngoài ra ng d ng cũng cho phép đ m s l n 1 ngứ ụ ế ố ầ ười đã truy c p website trong phiênậ làm vi c c a h . S l n đệ ủ ọ ố ầ ượ ưc l u tr trong bi n Session(“solan”)ữ ế

Mã ngu n file Global.asa đồ ược vi t nh sau:ế ư

<script language="vbscript" runat="server"> Sub Application_OnStart Application("songuoi")=0 End Sub Sub Session_OnStart Application.Lock Application("songuoi")=Application("songuoi")+1 Application.UnLock Session(“solan”)=0 End Sub Sub Session_OnEnd Application.Lock Application("songuoi")=Application("songuoi")-1 Application.UnLock End Sub Sub Application_OnEnd End Sub </script>

Trang Home.asp được vi t nh sau:ế ư <html>

<body> <p>

Có <%response.write(Application("songuoi"))%> người đã truy c p website.ậ

</p>

<p>

B n đã truy c p trang này <ạ ậ

%response.write(session("solan"))%> l n!ầ </p>

</body> </html>

4.5.7.6 Đ i tố ượng Dictionary

Đ i tố ượng Dictionary l u tr thông tin theo t ng c p (khóa/ giá tr ). Nó khá gi ng v iư ữ ừ ặ ị ố ớ m ng nh ng có kh năng x lý linh ho t đ i v i nh ng c p d li u có quan h ki u t đi nả ư ả ử ạ ố ớ ữ ặ ữ ệ ệ ể ừ ể (c p khóa/ giá tr ) ví d nh : mã Sinh viên/ tên Sinh viên), trong đó khóa đặ ị ụ ư ược xem là t c nừ ầ tra và giá tr chính là n i dung c a t tra đị ộ ủ ừ ược trong t đi n.ừ ể

Mu n s d ng đ i tố ử ụ ố ượng Dictionary chúng ta ph i kh i t o nó:ả ở ạ <%

set d=server.createObject("Scripting.Dictionary") d.add "work","Làm vi c"ệ

d.add "learn","H c t p" ‘tọ ậ ương t nh m ng nh ng m i ph n tự ư ả ư ỗ ầ ử là m t c p khóa/giá trộ ặ ị

response.write "work nghĩa ti ng Vi t là: " & d.item("work")ế ệ response.write "learn nghĩa ti ng Vi t là: " & d.item("learn")ế ệ set d=nothing

%>

M t s ng d ng c a đ i tộ ố ứ ụ ủ ố ượng này nh dùng mô ph ng gi hàng ch a hàngư ỏ ỏ ứ hóa(shopping cart) v i c p khóa/giá tr là :ProductID/Quantity, hay s đ a ch v i c p khóa/giáớ ặ ị ổ ị ỉ ớ ặ tr là CustomerName/Address.ị

4.5.7.7 Đ i tố ượng Server

Đ i tố ượng này dùng đ truy xu t các phể ấ ương th c và thu c tính c a Server.ứ ộ ủ M t s phộ ố ương th c c b n nh sau:ứ ơ ả ư

a) Server.CreateObject

Phương th c này dùng đ kh i t o 1 đ i tứ ể ở ạ ố ượng.

Ví d :ụ T o m t đ i tạ ộ ố ượng Connection: <%Set conn=Server.CreateObject(“ADODB.Connection”)%> T o m t đ i tạ ộ ố ượng Dictionary: <%set d=server.createObject("Scripting.Dictionary")%> b) Server.Mappath

Phương th c này chuy n đứ ể ường d n tẫ ương đ i thành tuy t đ i.ố ệ ố

Ví d :ụ

<%

str= server.mappath("QLSV.mdb") Response.write str

%>

S cho k t qu : “C:\WEB\QLSV.mdb” trong trẽ ế ả ường h p:ợ  File QLSV.mdb n m trong th m c C:\WEBằ ư ụ

 Đường d n C:\WEB đẫ ượ ấc c u hình là theo m t bí danh (Virtual Directory) trong IIS.ộ Ta thường áp d ng server.mappath trong nh ng trụ ữ ường h p x lý đợ ử ường d n tẫ ương đ i, ố Ví d :ụ Đây là chu i k t n i vào database(Access)ỗ ế ố

Connstr="provider=microsoft.jet.oledb.4.0; data source=" & server.mappath("QLSV.mdb") & ";"

4.5.8.1 SQL-Ngôn ng truy v n có c u trúc

SQL là ngôn ng máy tính chu n đữ ẩ ược dùng đ giao ti p v i các h qu n tr c s dể ế ớ ệ ả ị ơ ở ữ li u quan h (Relational Database Management Systems – RDBMS).ệ ệ

Các câu l nh trong SQL đệ ược chia thành hai lo i chính: t p h p ngôn ng đ nh nghĩaạ ậ ợ ữ ị d li u (Data Defination Language-DLL) và t p ngôn ng v n d ng d li u (Dataữ ệ ậ ữ ậ ụ ữ ệ

Manipulation Language-DML).

DLL bao g m các l nh CREATE, ALTER, DROP cho phép đ nh nghĩa, thay đ i và h yồ ệ ị ổ ủ b các đ i tỏ ố ượng c s d li u nh b ng (table), ch m c (index)…ơ ở ữ ệ ư ả ỉ ụ

DML bao g m các l nh SELECT, INSERT, DELETE, UPDATE cho phép thao tác trênồ ệ đ i tố ượng c s d li u.ơ ở ữ ệ Các l nh SQL đ u k t thúc b ng d u ch m ph y (;)ệ ề ế ằ ấ ấ ẩ Cú pháp các l nh SQL: • L nh SELECTệ SELECT c t 1, c t 2, c t 3, … ,c t nộ ộ ộ ộ FROM b ng 1, b ng 2, ... , b ng nả ả ả [WHERE <bi u th c đi u ki n>]ể ứ ề ệ

[ORDER BY c t 1 [ASC|DESC], c t 2 [ASC|DESC];ộ ộ

L nh SELECT có hai m nh đ b t bu c là SELECT và FROM, còn WHERE vàệ ệ ề ắ ộ ORDER BY là nh ng ch n l a thêm. ữ ọ ự

Sau đây là ch c năng c a t ng m nh đ trong câu l nh SELECT:ứ ủ ừ ệ ề ệ

o M nh đ SELECT li t kê tên các c t c n hi n th . Nh ng thu c tính đệ ề ệ ộ ầ ể ị ữ ộ ược li tệ kê trong m nh đ này chính là tên các c t trong quan h k t qu .ệ ề ộ ệ ế ả

o M nh đ FROM li t kê tên các b ng ngu n, n i d li u đệ ề ệ ả ồ ơ ữ ệ ược thu th p. Nhậ ư v y, các c t xu t hi n trong m nh đ SELECT ph i là các c t thu c b ngậ ộ ấ ệ ệ ề ả ộ ộ ả ngu n.ồ

o M nh đ WHERE xác đ nh đi u ki n mà các b n ghi d li u c a b ng ngu nệ ề ị ề ệ ả ữ ệ ủ ả ồ ph i th a mãn.ả ỏ

 M t s toán t thộ ố ử ường dùng trong m nh đ WHEREệ ề  Các toán t so sánhử Toán t so sánhử Di n gi iễ ả = B ngằ <> Khác < Nh h nỏ ơ <= Nh h n ho c b ngỏ ơ ặ ằ > L n h nớ ơ >= L n h n ho c b ngớ ơ ặ ằ  Các toán t BOOLEAN (Logic): And, Or, Notử  Các toán t đ i sánh m uử ố ẫ

o Toán t LIKEử o Toán t BETWEENử o Toán t INử

o M nh đ ORDER BY đ nh th t s p x p các b n ghi d li u đã th a đi uệ ề ị ứ ự ắ ế ả ữ ệ ỏ ề ki n m nh đ WHERE. M nh đ này ch có hi u l c khi hi n th d li u thuệ ở ệ ề ệ ề ỉ ệ ự ể ị ữ ệ th p đậ ược, nó không tác d ng lên các b n ghi đụ ả ượ ưc l u trong b ng d li u.ả ữ ệ

Ví d :ụ

 SELECT hoten,ngaysinh FROM sinhvien WHERE gioitinh=1;  SELECT hoten,ngaysinh FROM sinhvien WHERE gioitinh=1

 SELECT hoten,ngaysinh FROM sinhvien WHERE hoten LIKE N‘%an%’;

 SELECT hoten,ngaysinh FROM sinhvien WHERE dtb BETWEEN ‘8.0’ AND ‘9.0’;

 SELECT hoten,ngaysinh FROM sinhvien WHERE masv IN (‘001’,‘003’,’005’);

• L nh INSERTệ

INSERT INTO tên-b ng (c t 1, c t 2, …, c t n)ả ộ ộ ộ VALUES (giá tr 1, giá tr 2, …, giá tr n);ị ị ị

M nh đ VALUES yêu c u ph i thi t l p đ y đ và thích h p giá tr cho các c tệ ề ầ ả ế ậ ầ ủ ợ ị ộ có trong danh sách c t.ộ

Ví d :ụ

INSERT INTO sinhvien(masv, hoten, ngaysinh, quequan, dtb) VALUES(‘006’,’Tr n A’, 09/07/1989, ‘Qu ng Bình’, 8.5);ầ ả

• L nh UPDATEệ UPDATE tên-b ngả

SET c t 1=giá tr 1, c t 2=giá tr 2, …, c t n=giá tr nộ ị ộ ị ộ ị [WHERE <bi u th c đi u ki n>];ể ứ ề ệ

Ví d :ụ

UPDATE sinhvien SET hoten=’Tr n Văn A’ WHERE masv=’001’;ầ • L nh DELETEệ

DELETE FROM tên-b ng WHERE <bi u th c đi u ki n>;ả ể ứ ề ệ

Ví d :ụ

DELETE FROM sinhvien WHERE masv=’001’;

4.5.8.2 Truy xu t d li u t m t trang ASPấ ữ ệ ừ ộ

Thông thường đ truy xu t d li u t m t trang ASP c n th c hi n tu n t các bể ấ ữ ệ ừ ộ ầ ự ệ ầ ự ước sau:

 Bước 1: T o m t k t n i (ADO Connection) đ n c s d li u.ạ ộ ế ố ế ơ ở ữ ệ  Bước 2: M k t n i c s d li u.ở ế ố ơ ở ữ ệ

 Bước 3: T o m t t p h p các b n ghi d li u (ADO recordset).ạ ộ ậ ợ ả ữ ệ  Bước 4: M đ i tở ố ượng ADO recordset.

 Bước 5: Duy t qua t p h p ADO recordset đ l c nh ng b n ghi nào c n thi t.ệ ậ ợ ể ọ ữ ả ầ ế  Bước 6: Đóng đ i tố ượng ADO recordset.

 Bước 7: Đóng k t n i c s d li u.ế ố ơ ở ữ ệ

4.5.8.3 ADO là gì?

ADO là m t công ngh c a hãng Microsoft, vi t t t c a ActiveX Data Objects. Nóộ ệ ủ ế ắ ủ được tích h p s n trong IIS dùng làm m t giao di n đ truy xu t d li u trong c s d li u.ợ ẵ ộ ệ ể ấ ữ ệ ơ ở ữ ệ

4.5.8.4 Đ i tố ượng Connection

Đ i tố ượng Connection cho phép t o k t n i đ n m t Database.ạ ế ố ế ộ Các bướ ử ục s d ng Connection:

- Khai báo đ i tố ượng Connection - Kh i t oở ạ

- T o chu i k t n iạ ỗ ế ố

- M Connection v i chu i k t n i trênở ớ ỗ ế ố - S d ng Connectionử ụ

- Đóng và H y Connectionủ

Ví d :ụ

Đ k t n i đ n database Access QLSV.mdb (database này n m trong cùng th m c v i fileể ế ố ế ằ ư ụ ớ Asp), có th vi t mã ngu n nh sau:ể ế ồ ư

<%

dim conn ‘khai báo bi n k t n i đ n databaseế ế ố ế

Một phần của tài liệu Giới thiêu ngôn ngữ HTML - Dùng để thiết kế Web (Trang 88)

Tải bản đầy đủ (PDF)

(101 trang)