B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
Chương 1
GIỚI THIỆU VỀ INTERNET VÀ
NGÔN NGỮ ASP
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
1
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
Internet, Intranet và World Wide Web ngày nay có ở khắp nơi trên thế giới.
Những thuật ngữ như “siêu xa lộ thông tin” đã trở thành những từ ngữ thông dụng.
Trên mọi phương tiện quảng cáo truyền thông, truyền hình , báo chí …
1.1.INTERNET:
1.1.1. Mạng Internet:
Internet bắt nguồn từ mạng APARNET trực thuộc Bộ quốc phòng Mỹ và được
mở rộng cho các viện nghiên cứu, sau này được phát triển cho hàng triệu người
cùng sử dụng như ngày hôm nay. Ban đầu các nhà nghiên cứu liên lạc với nhau qua
mạng bằng dịch vụ thư điện tử, sau đó phát sinh thêm một số mạng máy tính như
mạng Usernet, ngày nay là dịch vụ bảng tin điện tử. Mạng này được thiết lập lần
đầu tiên ở University of North Carolina, mà qua đó người dùng có thể gởi và đọc
các thông điệp theo các đề tài tự chọn. Ở Việt Nam thì Mạng Trí Tuệ Việt Nam của
công ty FPT là mạng đầu tiên được xây dựng theo dạng bảng tin điện tử.
Các nhà khoa học khắp nơi trên thế giới tham gia vào hệ thống thông tin mở
này, những người dùng với mục đích thương mại và công chúng cũng tham gia vào
hệ thống này thông qua các nhà cung cấp Dịch vụ Internet. Vì thế gây ra sự phát
triển bùng nổ thông tin liên lạc toàn cầu qua máy tính. Đó chính là mạng Internet
ngày nay.
1.1.1. Mạng Intranet:
Ngày nay có rất nhiều công ty đã và đang nhận ra những lợi điểm của việc sử
dụng Internet trong công ty và họ đã sử dụng những mạng Intranet cục bộ. Những
hệ thống mạng này, thời gian đầu dùng để làm công cụ giao tiếp nội bộ trong công
ty,những nhân viên có thể gửi và nhận mail của những nhân viên khác trong cùng
công ty. Những hệ thống mạng này cũng đồng thời cho phép dùng chung tài nguyên
hệ thống như : máy in, cơ sở dữ liệu của công ty. Nhưng đối với người sử dụng thì
không có sự khác nhau giữa việc truy cập Internet và Intranet của công ty.
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
2
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
Intranet được dùng phổ biến cho những công ty thương mại, những tổ chức
Những hệ thống mạng Intranet riêng được tập trung vào việc cung cấp một cấu trúc
cơ sở hạ tấng bảo mật, đáng tin cậy. Từ những mạng Intranet nội bộ có thể kết nối
vào Internet qua Firewall.
1.1.2. Word Wide Web:
Web là dịch vụ chủ yếu chịu trách nhiệm cung cấp Internet tới mọi nhà.Là một
dịch vụ thông dụng nhất và dễ sử dụng nhất. Việc sử dụng trình duyệt cung cấp một
giao diện đồ họa “point and click” cho việc xem nội dung trang Web đã làm cho
việc truy cập Internet dễ dàng hơn.Những sự kiện thể thao, âm nhạc, tin tức, phim
ảnh được đưa lên Internet đã làm cho các Website trở nên phổ biến rộng rãi.Web
cung cấp một kênh truyền đa dạng cho tất cả các thông tin cũng như những ứng
dụng đồ họa mạnh.Những nhà cung cấp phần mềm lớn cũng sửa lại những sản
phẩm của họ để có khả năng giao tiếp với Internet. Những ngân hàng hiện nay cũng
dùng dịch vụ ngân hàng trực tuyến. Những công ty thương mại đang thiết lập thể
hiện những trang Web trên những sản phẩm và những dịch vụ điện tử.
Bước kết hợp của liên kết giữa các tập tin văn bản (hyper text), liên kết giữa các
tập tin, các loại hình thông tin khác nhau và khả năng liên kết lẫn nhau giữa các tập
tin trên web đã tạo ra những làn sóng hưởng ứng trong giới người dùng, cũng như
thúc đẩy việc áp dụng các côngnnghệ truyền thông hiện đại nhất vào lĩnh vực này.
1.2 GIỚI THIỆU VỀ CÔNG NGHỆ ASP
Mạng máy tính ngày nay đã trở thành một thành phần quan trọng trong ngành
truyền thông và cuộc sống hàng ngày. Song song với việc phát triển của mạng là sự
phát triển của một hướng mới trong lập trình, đó là lập trình mạng . Với sự bùng nổ
thông tin trên toàn cầu , sự ra đời của WWW. Đặt ra yêu cầu phải sử lí t thông tin
một cách nhanh chóng, Chính xác giữa các WEB SERVER với Client. Để giải
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
3
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
quyết vấn đề này một trong những công cụ lập trình máy chủ phổ biến hiện nay là
ASP
1.1.2. ASP là gì:
ASP (Active Server) Không hẳn là một ngôn ngữ lập trình .microsoft goi nó là
mô trường kịch bản trªn máy chủ (Server side Scripting Environment) Môi trường
này cho phép tạo và chỉnh các ứng dụng web động, tương tác và có hiệu quả cao
.Để làm việc trong môi trường này các ASP coder thường sử dụng VBScript hoặc
Java Script, cả hai laọi này đều tự động hỗ trợ ASP;
Trong các HTML, mỗi tag đựoc bắt đầu và kết thúc bởi những cặp “</>”, ASP
cũng tương tự như vậy. Để đánh dấu nơi nào ASP Script bắt đầu và kết thúc dùng
cặp lệnh “<%%>”;
Các đoạn ASP Script có thể xuất hiện ở mọi nơi trong trang HTML, HTML
&ASP có sựu gắn bó chặt chẽ với nhau.Với ASP ta có thể chèn các Script thực thi
được vào trực tiếp các file HTML. Khi đó việc tạo ra trang HTML và sử lýy Script
trở nên đồng thời điều này cho phép tạo ra các tương tác của Web site một cách linh
hoạt uyển chuyển, có thể chen các thành phần HTML động vào trang Web tuỳ từng
trường hợp cụ thể;
ASP giúp cho người xây dựng trang Web nhanh chóng và chất lượng, những
tính năng trên giúp người phát triển nhanh chóng tiếp cận ngôn ngữ mới, điều này
là một ưu điểm không nhỏ của ASP;
1.1.2. Ưu điểm và Khuyết điểm của ASP:
• Ưu điểm
- ASP bổ sung công nghệ đã có từ trước như CGI(Common GateWay Interface),
giúp người dùng xây dựng trang web với những tính năng sinh động, tuy nhiên khác
với CGI, các trang ASP không phải hợp dịch;
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
4
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
Dễ dang tương thích với các công nghệ của Microsoft. ASP sử dụng ActiveX Data
Object (ADO) nên thao tác với cơ sở dữ liệu tiện lợi hơn;
-Với những gì ASP cung cấp, các nhà phát triển ứng dụng web dễ dàng tiếp cận
công nghệ này và nhanh chóng tạo ra các sản phẩm có giá trị. Điều này hết sức có ý
nghĩa trong điều kiện phát trinể như vũ bão của tin học ngày nay.Nó góp phần tạo
nên các đội ngũ lập trình viên lớn mạnh;
- ASP có tính năng mở.Nó cho phép các nhà lập trình xây dựng các component
và đăng ký sử dụng dễ dàn.Hay nói cách khác ASP có tính năng COM(Component
Object Model).
• Khuyết điểm :
- ASP chỉ chạy và tương thích trên môi trường Windows điều này làm ASP bị hạn
chế rất nhiều, không như PHP tương thích với nhiều hệ điều hành
Dùng ASP chúng ta sẽ gặp không ít khó khăn trong việc can thiệp sâu vào hệ thống
các ứng dụng CGI;
- ASP không được hỗ trợ nhiều từ các hãng thứ 3;
- Các ứng dụng công nghệ ASP chạy chậm hơn các ứng dụng Java servlet
- Tính bảo mật thấp. Không giống như CGI và Java Servlet và CGI, các mã của
ASP đều có thể đọc đựoc nếu người dùng có quyền truy cập vào Web server
1.1.2. Đặc điểm của ASP:
Tên file: .asp
Phải cài thêm Microsoft Active Server Page để bổ trợ cho Web Server, chuyên
xử lý các script viết trong file .asp. Cho phép viết ứng dụng theo kiểu Server
Side => các trang web sẽ sẽ được xử lý tại Server trước khi gửi xuống Client.
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
5
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
Các mã lệnh được chèn vào trong khắp trang web và được xử lý tuần tự. Mã
lệnh là các Script, hiện ASP cho phép dùng 2 srcript là VBScript hoặc
JavaScript. Lựa chọn Script được đặt ngay tại dòng đầu file:
<%@LANGUAGE = “VBSCRIPT”%>
<%@LANGUAGE = “JSCRIPT”%>
Ngầm định là VBScript.
Các đoạn mã không phân biệt dài ngắn được đặt trong dấu hiệu: <% %>
Các biến không cần khai báo mà tự khi gán giá trị cho nó sẽ xác định biến.
Để in ra các biến trong trang web sử dụng như mã sau:
<% =s %>
Để làm việc với hệ thống file, thao tác với Database... => cần phải sử dụng các
đối tượng kiểu Active X của ASP hay cài đặt thêm vào.
Để lấy các giá trị truyền từ client lên dùng phương thức request.
Ex: s = request(“Company”)
=> Lấy giá trị của biến Company.
1.1.2. Sử dụng các đối tượng:
ASP cho phép sử dụng các đối tượng kiểu Active X. Để khai báo ta dùng
phương thức CreateObject của đối tượng Server có sẵn.
Ex: Set f = Server.CreateObject(“Scripting.FileSystemObject”);
Tổng quan: Set param = Server.CreateObject(“PacketName.ClassName”)
ProgID
Sau đó có thể sử dụng các hàm của đối tượng đó.
Để giải phóng dùngSet f = nothing
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
6
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
* CÁC ĐỐI TƯỢNG ACTIVE SERVER
+) Đối tượng Application:
Đối tượng này cho phép tạo các biến ứng dụng. Đó là các biến cho tất cả các
user của một ứng dụng web. Tất cả các user mà yêu cầu các trang web từ một thư
mục web có thể chia xẻ với nhau các biến định nghĩa trong các trang đó.
<% Application.Lock
Application(“Company”) = “VASC”
Application.Unlock %>
ở đây định nghĩa 1 biến là Company, có giá trị là VASC. Vì rằng biến có thể bị
tranh chấp nên phải đặt giữa Lock và Unlock.
<% Application.Lock
Application(“Time”) = Now
Application.Unlock %>
+)Đối tượng Session:
Cho phép tạo ra các biến ứng với từng người dùng. Chẳng hạn biến có tên là
UserName, ứng với mỗi user có một giá trị cụ thể khác nhau, phân biệt. Nhưng khi
sử dụng thì tổng quát cho các user. Thực ra mỗi biến sẽ được server phát sinh và
gán cho nó một giá trị định danh GUID (Globally Unique Identifier, 128 bit) và gửi
tới Browser. Browser sẽ lưu trữ GUID đó và sử dụng để yêu cầu dữ liệu từ biến có
GUID tương ứng trên Server.
<% Session(“Company”) = “NewTech”
Session(“Email”) = “” %>
My Company : <% Session(“Company”) %>
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
7
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
Email : <% Session(“Email”) %>
Các biến Session này sẽ bị huỷ bỏ sau một khoảng thời gian (khoảng 20’) người
dùng thôi truy xuất các trang web trong thư mục web.
Chú ý là trong file global.asa => cho pháp đặt các biến, code vào các thủ tục
Session_OuStart và Session OuEnd. Ví dụ:
<SCRIPT LANGUAGE = VBScript RUNAT = Server>
Sub Session_OuStart
Session(“Company”) = “VASC”
Session(“Email”) = “”
End sub
</SCRIPT>
+)Đối tượng Request:
Để gửi dữ liệu lên Server, ta sử dụng Form trong trang Web. Tên của các đồi
tượng web như Text, Button nằm trong form sẽ được dùng như tên biến khi phân
tích, lấy dữ liệu trên Server. Trong form có button kiểu Submit để người dùng đẩy
dữ liệu lên Server.
Form có hai thuộc tính là Action và Method. Action quy định file (.asp) mà
sẽ đón nhận và xử lý dữ liệu đẩy lên. method quy định cách thức gửi dữ liệu; nếu là
POST thì tất cả dữ liệu trong form sẽ đóng gói và đẩy lên Server; Nếu là GET thì
dữ liệu được gửi đi như một phần của URL, thường là sau dấu “?”.
<Form Method = “POST” Action = “ /> Kiểu gửi dữ liệu GET cũng có thể lợi dụng để gửi đi dưới dạng một link.
< A href =
“ >Test</a>
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
8
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
Gửi theo GET thì độ lớn bị hạn chế và không che dấu dữ liệu.
Để lấy dữ liệu ta dùng phương thức của đối tượng Request.
S = Request.Form(“Name”)
<=> S = Request(“Name”)
Trong trường hợp dữ liệu được đưa lên từ 1 hyperlink, có thể dùng:
S = Request.QueryString(“Name”)
<=> S = Request(“Name”)
Đối tượng Request cũng cho phép lấy giá trị các biến môi trường như
LOGON_USER, HTTP_USER_AGENT, ví dụ:
Request.ServerVariables(“LOGON_USER”)
Request.ServerVariables(“HTTP_USER_AGENT”)
+)Đối tượng Reponse:
Đối tượng này quản lý tất cả dữ liệu, nội dung sẽ được gởi cho Browser từ ASP.
<% = Company%>
<=> <% Reponse.Write Company %>
Reponse cung cấp 1 thuộc tính là Expires, quy định thời gian (phút) mà trang Web
chứa trong cache của IE. Vậy, nếu đặt dòng <% Response.Epires = 0 %> thì trang
Web sẽ không chứa trong cache của IE.
+) Đối tượng Server:
Đối tượng Server cung cấp hàm CreateObject, để tạo ra các đối tượng (instance) của
Active X. Tham số truyền vào là ProgID (Program Identifier) của Component cần
tạo instance.
Set MyObject = Server.CreateObject(“Mail.Connector”)
Đoạn mã sau in ra các biến Server :
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
9
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
< % For each name in Request.ServerVariables %>
<% = name %> <% = Request. ServerVariables(name) %>
<% Next %>
1.1.2. Truy nhập hệ thống File:
<%
Dim objFile
Dim objStream
Set objFile = Server.CreateObject(“Scripting.FileSystemObject”);
Set objStream = objFile.OpenTextFile(Server.Mapath(“/ASP”) &_
“\Chapter05\Listing 5-9\tips.txt”)
Randomize Timer
IntLine = Int(Rnd*19)
For i=0 to intLine
ObjStream.SkipLine
Next
StrTxt = objStream.ReadLine
ObjStream.Close
Set objFile= Nothing
Set objStream= Nothing
%>
=> Để tạo file mới dùng phương thức CrateTextFile của objFile.
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
10
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
Để ghi một dòng văn bản dùng objStream.WriteLine s.
1.1.3. Truy nhập cơ sở dữ liệu:
<%
Dim objConnection
Set objConnection = Server.CreateObject(“ADODB.Connection”)
ObjConnection.Open “Publication”, ”sa”, “”
Dim objRecordSet
Set objRecordSet = Server.CreateObject(“ADODB.RecordSet”)
ObjRecordSet.Open “Select pub_name From Publishers”, objConnection
%>
Đối tượng kiểu Connection: tạo kết nối ADO tới Database.
Đối tượng kiểu RecordSet: cho phép thao tác trên table (select,update ...) của
Connection đã thiết lập.
<% Do While Not objRecordSet.EOF %>
<% = objRecordSet(“pub_name”)%>
<% objRecordSet.MoveNext
Loop
ObjRecordSet.close
ObjConnection.close
Set objRecordSet = nothing
Set objConnection = nothing %>
Chú ý: khi thêm, cập nhật dữ liệu ngoài việc dùng SQL, có thể thêm theo
cách :
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
11
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
With objRecordSet do
.AddNew
.Field(”Authors”) = “Homes”
. Field(”Title”) = “Iliad”
.Update
End With
Có thể kết nối trực tiếp không qua DSN của ODBC như sau :
<%
Set objConnection = Server.CreateObject(“ADODB.Connection”)
StrCnn = “driver = {SQL Server}; Server = smas; uid = sa; pwd= ; database=
pubs”
objConnection.Open strCnn
%>
1.1.4. Phân trang Recordset:
Khi select => cho kết quả 1 bảng gồm nhiều hàng. Tuy nhiên mỗi lần chỉ muốn
sử dụng một vài hàng, ví dụ: bảng 50 hàng, mỗi lần hiển thị 10 hàng => sử dụng kỹ
thuật paging. ADO cung cấp các thuộc tính của Recordset như: PageSize,
PageCount, AbsolutePage.
PageCount: số trang, PageSize: số hàng.
ở đây ta dùng biến session CurrentPage để ghi nhận trang hiện hành.
<% Select Case Request.QueryString(“Direction”)
Case “” ‘Null
Session(“CurrentPage”) = 1
Case “Next”
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
12
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
Session(“CurrentPage”) = Session(“CurrentPage”) + 1
Case “Previous”
Session(“CurrentPage”) = Session(“CurrentPage”) - 1
End Select %>
Chú ý: Request.QueryString(“Direction”) <=> QueryString(“Direction”)
Tiến hành kết nối truy vấn dữ liệu.
<%
const adOpenKeySet = 1
dim objConnection không cần khai báo cũng được
dim objRexordset
Set objConnection = Server.CreateObject(“ADODB.Connection”)
Set ObjConnection.Open “Biblio”, “”, “”
Dim strSQL
StrSQL = “Select * from Authors”
Set objRecordSet = Server.CreateObject(“ADODB.RecordSet”)
ObjRecordSet.PageSize = 10
ObjRecordSet.Open strSQL, objConnection, adOpenKeyset
ObjRecordSet.AbsolutePage = CLng(Session(“CurrentPage”))
%>
<P> Page = <%=Session(“CurrentPage”) %> of <%=ObjRecordSet.PageCount>
<% Dim i
For i = 1 to ObjRecordSet.PageSize %>
<% = ObjRecordSet(“Authors”) %>
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
13
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
...
<% ObjRecordSet.MoveNext
Next %>
<% if CLng(Session(“CurrentPage”)) < ObjRecordSet.PageCount Then %>
<P> <A HREF = “paging.asp?Direction=Next”>Next Page</A></P>
<%Enf if%>
<% If CLng(Session(“CurrentPage”)) > 1 then %>
<P><A Href = “paging.asp?Direction=Previous”>Previous Page</A></P>
<%Enf if%>
<% ObjRecordSet.close
ObjConnection.close
Set objRecordSet = nothing
Set objConnection = nothing %>
1.1.5. File Global.asa:
Ứng dụng web = tập các trang Web, asp trong một thư mục web và các thư mục
con.
File Global.asa xác định khởi đầu và kết thúc của một ứng dụng web cũng
như của các session của từng user đơn thể đối với ứng dụng.
File này cho phép đặt 4 thủ tục vào: Session_OnStart, Session_OnEnd,
Application_OnStart, Application _OnEnd.
Session_OnStart: thực hiện lần đầu tiên khi có một user yêu cầu trang web
trong ứng dụng. (ứng với user đó)
Session_OnEnd: thực hiện khi user thoát khỏi ứng dụng hoặc timeout.
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
14
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
Application_OnStart: thực hiện 1 lần khi trang web đầu tiên của ứng dụng
được chạy lần đầu tiên bởi bất kỳ user nào.
Application _OnEnd: thực hiện một lần khi web server shutdown hoặc khi tất
cả các session đã đóng.
+) Các phương thức và thuộc tính của một số đối tượng:
Reponse:
• Collection: Cookies, form, ChentCertificates, QueryString,
ServerVariables
• Properties: Buffer, Charset, ContentType, Expires, ExpiresAbsolute,
IsClientConnectied, Status, Pics, TotalByte.
• Method: AddHeadder, AppendToLog, BinaryWrite, Clear, End, Flush,
Redirect, Write, BinaryRead.
Server
• Properties: ScriptTimeout
• Method: CreateObject, HTMLEncode, MapPath, URLEncode.
Application
• Collection: Contents, StaticObject.
• Method: Lock, Unlock
• Events: Application_OnStart, Application _OnEnd.
Session
• Collection: Contents, StaticObject.
• Method: Abandon
• Properties: SessionID, TimeOut, CodePage, LCID
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
15
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
o Events: Session_OnStart, Session_OnEnd
1.1.2. Gọi Stored Procedure trong ASP:
<% Set Cnn1 = Server.CreateObject(“ADODB.Connection”)
StrCnn = “driver = {SQL Server}; Server = smas; uid = sa; pwd= ; database=
pubs”
Cnn1.Open strCnn
Et sp = CreateObject(“ADODB.Command”)
Set sp.ActiveConnection = Cnn1
Sp.CommandType = adCmdStoredProc
Sp.CommandText = “sp_Help”
Set pm = sp.CrateParameter(“objname” = 200, 1, 92, “authors”)
Sp.parameters.Append pm
Set rs = sp.Excute()
Do Until rs is Nothing
Reponse.Write “<Table border = 1 bgColor = White><TR>”
Call PrintHeadings
Call PrintAllRecordsInRS
Reponse.Write “</Table><BR><BR>”
Set rs=rs.NextRecordSet
Loop
Call CleanUp %>
<% Sub PrintHeadings()
For each hdFld in rs.Fields
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
16
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
Reponse.Write “<TH>” & hdFld.Name & “</TH>”
Next
Reponse.Write “<TR>”
End sub
Sub printAllRecordsInRS()
Do until rs.EOF
For each fld in rs.Fields
Reponse.Write “<TD>” & fld
Next
Reponse.Write “<TR>”
Rs.MoveNext
Loop
End Sub
Sub CleanUp()
Set rs = nothing
Cnn1.Close
Set Cnn1 = nothing
End sub %>
Tóm lại các bước thực hiện:
- Tạo một kế nối Connection, active nó.
- Tạo đối tượng kiểu Command, gán nó với một Connection đã kích hoạt (thuộc
tính ActiveConnection), CommandText: tên thủ tục;
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
17
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
- Tạo ta đối tượng tham số, bằng phương thức CreateParameter để truyền tham số
cho thủ tục.
- Thực thi và sử dụng kết quả.
1.1.7. Các lệnh ASP và VBScript (1.0)
Call Dim Do... loop Empty
Erase Exit False For... next
If... then... Else Nothing Null On Error
Option Explicit Randomize Redim Rem
Select case Set Sub True
While...wend
1.1.3 Đối tượng Error: (1.0)
Properties: Decription, Number, Source
Method: Clear, Raise
1.1.9. Sử dụng Transaction:
Các yêu cầu:
• Dòng đầu tiên phải là: <% @TRANSACTION = REQUIRED%>
• Có thể điều chỉnh chấp nhận hoặc huỷe bỏ giao dịch bằng cách dùng
SetComplete anh SetAbort từ đối tượng ObjectContext.
• Nếu giao dịch thành công (commited), hàm sự kiện
OnTransacton_Commit() được thực thi.
• Nếu giao dịch thất bại (Aborted), sự kiện OnTransacton_Abort được thực
thi.
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
18
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
• Yêu cầu MSDTC (Distributed Transaction Coordinator)
Ví dụ 1:
<% @TRANSACTION = REQUIRED language = “VBSCRIPT”%>
<HTML><HEAD><TITLE> Transaction Demo</TITLE> </HEAD><BODY>
This is Demostration of using transaction with HTML. <BR> For this example to
work, MSDTC must be running on the web Server. <BR>
This next line will genegate an error.
<% set x = boo.boo %>
<BR> Does this line print ? </BODY> </HTML>
<%
Sub OnTransacton_Abort()
Reponse.Write “<BR><B> Error detected. Attemting to Recover</B>”
‘Place Error handling code here
End Sub
Sub OnTransacton_Commit()
Reponse.Write “<BR><B>Congratulations! The transaction was commited
</B>”
End sub %>
Ví dụ 2:
<% @TRANSACTION = REQUIRED%>
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
19
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
<% Reponse.Buffer = True
Set oCustomer = Server.CreateObject(“ExplorationAir.Customer”)
Mites = 6000
Session(“CustomerID”) = oCustomer.Create(cStr(Session(“Lastname”)),
cStr(Session(“Firstname”)), cStr(Session(“Password”)),
cStr(Session(“Street”)), cStr(Session(“City”)),
cStr(Session(“State”)), cStr(Session(“Zip”)),
cStr(Session(“Email”)), Miles)
On error Resume next
FFComponent = Application(“FrequentFlyerComponent”) +
“.FrequentFlyer”
Set oFrequentFlyer = Server.CreateObject(“FFComponent”)
‘This prevents an eror if the FrequentFlyer component isn’t installed
If NOT oFrequentFlyer is Nothing Then
‘Add registration bonus points
oFrequentFlyer.Create clng(Session(“CustomerID”)),
clng(Session(“CustomerID”)),
“Registration”, “None”, clng(Miles)
End if
Function OnTransactionCommit()
Response.Clear
Response.Redirect(“RegisterSuccess.asp”)
Response.Flush()
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
20
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
End Function
Function OnTransactionAbort()
Response.Write “Error!” + “Error Code =” + cStr(err.Number)
Response.Write “Error Source: “ + cStr(err.Source)
End Function
%>
1.1.4. Cách sử dụng biến và chèn field:
+) Sử dụng biến Application:
Dùng đối tượng Application để tạo ra các biến kiểu Application. Những biến
kiểu này là toàn cục đối với 1 ứng dụng Web cho tất cả các user, được duy trì kể cả
khi stop web server.
Giả sử file a.asp có đoạn mã:
<%
If IsObject(Application(“TestConn”)) Then
Set oConn = Application(“TestConn”)
sSQL = “Select * from Products where ProductID < 5”
Else
Set oConn = Server.CreateObject(“ADODB.Connection”)
OConn.Open “TestODBC”, “”, “”
Set Application(“TestConn”) = oConn
sSQL = “Select * from Products where ProductID > 20”
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
21
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
End if
Set RS = Server.CreateObject(“ADODB.RecordSet”)
RS.open sSQL, oConn, 3, 3
%>
Khi trang này (a.asp) được truy xuất lần đầu tiên thì biến Application là TrstConn được
tạo ra. Kể từ giờ tất cả các file .asp của ứng dụng này có thể sử dụng biến TestConn.
Đoạn mã sau của b.asp hoạt động:
<% Set oConn = Application(“TestConn”)
...
RS.Open sSQL, oConn, 3, 3
%>
*/ Để huỷ một biến Application: set Application(“TestConn”) = nothing
+)Sử dụng biến Session:
Giống như các biến Application, nhưng chỉ có phạm vi trong 1 session. Chú ý: 1
session chỉ trong một phiên làm việc giữa browser với web server. Nếu đóng browser lại
thì các biến session mất đi. Biến session cũng có giá trị toàn cục trong 1 ứng dụng web
ứng với mỗi user.
<%
If IsObject(Session(“TestConn”)) Then
Set oConn = Session (“TestConn”)
Else
Set oConn = Server.CreateObject(“ADODB.Connection”)
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
22
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
OConn.Open “TestODBC”, “”, “”
Set Session(“TestConn”) = oConn
End if
%>
+)Chèn file (Include)
Để include file sử dụng cú pháp:
<!--#include file = “a.asp”>
1.1.11. Khai báo biến trong global.asa:
Các biến cũng phải ở dạng biến Application hoặc biến Session. Có thể đặt vào
một đoạn bất kỳ hoặc trong các thủ tục Application_OnStart, Session_OnStart, giải
phóng biến ở Application_OnEnd hoặc Session_OnEnd
Ex: đoạn mã sau đặt trong thủ tục Application_OnStart
Sub Application_OnStart
Set oConn = Server.CreateObject(“ADODB.Connection”)
OConn.Open “MyTest”, “”, “”
Set Application(“oConnection”) = oConn
End sub
Và trong thụ tục Application_OnEnd
Sub Application_OnEnd
OConn.Close
Set oConn = nothing
Set Application(“oConnection”) = nothing
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
23
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
End sub
Trong 1 file asp khác, ta có thể sử dụng lại
Set RS = Server.CreateObject(“ADODB.RecordSet”)
RS.Open sSQL, Application(“oConnection”), 3, 3
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
24
B¸o c¸o chuyªn ®Ò tt.tn Gi¸o viªn híng dÉn: PGS.TS: §Æng minh Êt
Chương 2
TỔNG QUAN VỀ THƯƠNG MẠI
ĐIỆN TỬ
Đề tài: Xây dựng Website bán sách qua mạng.
Thực hiện: SV Nguyễn Thị Hoa - Lớp K7C - Khoa CNTT
25