Thứ Bảy, 8 tháng 2, 2014

Internet và ngôn ngữ ASP

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”) = “suabienlangthang@yahoo.com” %>
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”) = “thanhha@vasc.vnn.vn”
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 = “http://www.vnn.vn/data.asp”>
 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 =
“ http://www.vnn.vn/data.asp?name=ha&company=VASC” >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

Không có nhận xét nào:

Đăng nhận xét