Tải bản đầy đủ (.docx) (17 trang)

tim hieu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (180.34 KB, 17 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>I. Tìm hiểu về công nghệ ASP(Active server Page):</b>
<b>1. Khái niệm:</b>


ASP là một ngôn ngữ kịch bản dùng để xây dựng các ứng dụng trên môi trường
internet. Như tên gọi của nó, ASP giúp người xây dựng ứng dụng web tạo ra các
trang web có nội dung linh hoạt. Với các người dùng khác nhau khi truy cập vào
những trang web này có thể sẽ nhận được các kết quả khác nhau. Nhờ những đối
tượng có sẵn(Built_in Object) và khả năng hổ trợ các ngôn ngữ script như VBScript
và Jscript, ASP giúp người xây dựng ứng dụng dễ dàng và nhanh chóng tạo ra các
trang web chất lượng. Những tính năng trên giúp người phát triển ứng dụng 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.
<b>2. Cấu trúc của một trang ASP: </b>


Trang ASP đơn giản là một trang văn bản với phần mở rộng là.asp, gồm có 3
phần :


 Văn bản (Text)


 HTML tag (HTML : Hypertext Markup Language)
 Các đoạn script asp


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

Xem ví dụ dưới đây:
<html>


<body>


Bạn bắt đầu với trang ASP này ngày :<%=Now%>
</body>


</html>



<b>3. Mơ hình ứng dụng web qua cơng nghệ ASP</b>


Thao tác giữa client và server trong một ứng dụng web có thể được thể hiện
khái quát như sau:


<b>4. Hoạt động của một trang ASP:</b>


Khi một trang ASP được yêu cầu bởi web browser, web server sẽ duyệt tuần tự
trang ASP này và chỉ dịch các script ASP. Tùy theo người xây dựng trang web này
quy định mà kết quả do web server dịch sẽ trả về lần lượt cho trình duyệt của
người dùng hay là chỉ trả về khi dịch xong tất cả các script. Kết quả trả về này
mặc định là một trang theo cấu trúc của ngôn ngữ HTML


DBMS
SQL
Server
O


DB
C


Mơ hình ứng dụng Web thể hiện qua cơng nghệ ASP
Web Server


HTTP OL


ED
B
A



D
O
ASP


DB Server
<b>Client</b>


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

<b>5. Ưu điểm và khuyết điểm ASP:</b>
<b>Ưu điểm : </b>


 ASP bổ sung cho các cơng nghệ đã có từ trước như CGI (Common Gateway
Interface), Giúp người dùng xây dụng các ứng dụng 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 cần phải hợp dịch.
 Dễ dàng tương thích với các cơng nghệ của MicroSoft. ASP sử dụng ActiveX


Data Object (ADO) để thao tác với cơ sở dữ liệu hết sức tiện lợi.


 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 triển như vũ bảo của tin học ngày nay. Nó góp
phần tạo nên một đội ngũ lập trình web 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àng. Hay nói cách khác ASP có tính năng


COM(Component Object Model)
<b>Khuyết điểm :</b>


 ASP chỉ chạy vàtương thích trên mơi trường Window điều này làm ASP bị hạn
chế rất nhiều.



 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 như các ứng dụng CGI.


 ASP không được sự hổ trợ nhiều từ các hãng thứ ba.


 Các ứng dụng ASP chạy chậm hơn công nghệ Java Servlet.


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

<b>II. Các đối tượng Built-in trong ASP</b>
<b>1. Application Object</b>


Đối tượng Application dùng chia sẻ thông tin cho mọi người dùng. Bởi vì
thơng tin trong đối tượng application được dùng chung cho mọi người dùng nên nó
cần một phương thức để bảo đảm tính thống nhất của dữ liệu.


<b>Cú phaùp : </b>


<b> Application.Method</b>


 <b>Những vấn đề cần quan tâm khi sử dụng đối tượng application: </b>


 Contents: Chứa tất cả những item mà chúng ta thiết lập trong đối tượng
application mà khơng dùng tag <OBJECT>.


<b>Cú Pháp :</b>


<i><b>Application</b><b>.Contents( Key ) </b></i>


<b> Key : tên của property cần nhận về </b>
Ví dụ: Bạn có thể dùng vịng lặp để nhận tất


cả item trong application


<i> <% Dim AppItem</i>


<i> For Each AppItem in Application.Contents </i>
<i> Response.write(ApplicationItem & " : "</i>
<i>& </i>


<i> Application.Contents(AppItem) &</i>
<i>"<BR>")</i>


<i> Next </i>
<i> %></i>


 <b>Lock: phương thức lock ngăn chặn các client khác thay đổi giá trị của biến</b>
dùng chung trong đối tượng applicaton. Nếu phương thức UnLock khơng được
gọi thì server tự động thực hiện lệnh này khi xử lý xong các script hoặc time
out.


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

 <b>UnLock: phương thức UnLock cho phép client thay đổi giá trị của các </b>
biến lưu trong đối tượng application đã bị lock trước kia.


<b>Cú pháp:</b> <i><b>Application.UnLock</b></i>
<i><b><% </b></i>


<i><b>Application.Lock</b></i>


<i><b>Application("NumVisits") = Application("NumVisits") + 1</b></i>
<i><b>Application.Unlock</b></i>



<i><b>%> </b></i>


 <b>Application_OnStart: sự kiện này xảy ra khi trước khi session đầu tiên</b>
được tạo, nghĩa là nó xảy ra trước sự kiện Sesion_OnStart. Trong sự kiện
này chỉ tồn tại đối tượng application và session.


 <b>Application_OnEnd: sự kiện Application_OnEnd xuất hiện khi thốt ứng</b>
dụng. Nó xảy ra sau sự kiện Session_OnEnd. Trong sự kiện này chỉ tồn
tại đối tượng application và session.


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

<b>Cú pháp : </b>


<i><b> <SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> </b></i>
<i><b> Sub Session_OnEnd</b></i>


<i><b> . . . </b></i>
<i><b> End Sub</b></i>


<i><b> Sub Session_OnStart</b></i>
<i><b>. . .</b></i>


<i><b> End Sub</b></i>
<i><b></SCRIPT></b></i>
<b>2. Session </b>


Session là đối tượng được web server tự động tạo khi một trang web đầu tiên
trong ứng dụng được người dùng gọi. Session rất tiện lợi cho người phát triển ứng
dụng web trong việc lưu lại thông tin của các người dùng. Đối tượng session sẽ tồn
tại cho đến khi session bị hủy hoặc hết hiệu lực(time out). Khi muốn lưu item trong
đối tượng session thì phải yêu cầu người dùng cho phép lưu cookies(enable



cookies) trong trình duyệt web.
Cú phaùp :


Session.collection | property | method


Những vấn đề cần quan tâm khi sử dụng đối tượng session:


 Contents: Chứa tất cả những item mà chúng ta thiết lập cho đối tượng session
mà khơng dùng tag <OBJECT>.


Cú Pháp :


Session.Contents( Key )


Key : tên của property
<b>cần nhận về </b>


Ví dụ: Bạn có thể dùng vịng lặp để nhận tất cả
item trong Session


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

<i> For Each sessionItem in </i>
<i>Session.Contents </i>


<i> Response.write(sessionItem & " : " </i>
<i>& </i>


<i> Session.Contents(sessionItem) & </i>
<i>"<BR>")</i>



<i> Next </i>
<i> %></i>


 <b>SessionID: Là một con số kiểu long được phát sinh bởi web server khi </b>
session được tạo. Mỗi người dùng sẽ có một sessionID khơng giống nhau.
Khi web server bị stop và start trở lại thì những sessionID do web server
phát sinh lần sau có thể sẽ trùng với lần trước đó. Do đó chúng ta khơng
thể dùng ID để tạo khóa chính cho một ứng dụng cơ sở dữ liệu.


Cú pháp: Session.SessionID


 <b>Timeout: Thời gian mà đối tượng Session còn tồn tại. Giá trị này được </b>
tính bằng phút . Nếu người dùng khơng refresh hoặc yêu cầu một trang
web của ứng dụng trong khoảng thời gian lớn hơn thời gian timeout thì
session sẽ kết thúc. Giá trị mặc định là 20 phút


Cú pháp: Session.Timeout [ = nMinutes]


 <b>Abandon: Dùng để hủy đối tượng Session và giải phóng tài nguyên. Web</b>
server sẽ tự thực hiện phương thức này khi session hết hiệu lực(time out).
Khi abandon được gọi, những đối tượng chứa trong session hiện hành sẽ
được sắp trong một hàng đợi chờ xóa. Server sẽ xử lý tất cả các script và
sau đó xóa các dối tượng trong hàng đợi này.


Cú pháp:


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

<i> <%</i> <i><b>Se sesion.Abandon </b></i>


<i><b>Session("MyName") = "Mary"</b></i>
<i><b>Reponse.Write(Session("MyName"))</b></i>


<i><b> %></b></i>


<b> Ở trang này thì biến Myname vẫn còn tồn tại và sẽ bị hủy khi các lệnh</b>
<b>script thực hiện xong. </b>


 <b>Session_OnStart: sự kiện này xảy ra khi server tạo một Session. Server</b>
sử lý script này khi thực thi yêu cầu một trang. Sesion_OnStart là nơi
thuận lợi cho bạn thiết lập các biến bởi vì nó sẽ được gọi trước khi một
trang được thực thi. Các đối tượng built_ in tồn tại trong sự kiện này là:
Application, ObjectContext, Request, Response, Server và Session


 <b>Session_OnEnd: sự kiện này xảy ra khi session bị hủy bởi lệnh</b>
Abandom hoặc timeout. Trong sự kiện này chỉ có các đối tượng built_in:
Application, Server, Session của ASP là tồn tại.


Cả phương thức Session_OnStart và Session_OnEnd phải được đặt trong tập
tin Global.asa


<b>Cú pháp : </b>


<i><b> <SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> </b></i>
<i><b> Sub Session_OnEnd</b></i>


<i><b> . . . </b></i>
<i><b> End Sub</b></i>
<i><b> </b></i>


<i><b>Sub Session_OnStart</b></i>
<i><b>. . .</b></i>



<i><b> End Sub</b></i>
<i><b></SCRIPT></b></i>


<b>3. ObjectContext Object</b>


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

Khi một trang ASP chứa chỉ thị @TRANSACTION, trang này sẽ được thực hiện
trong một transaction và chỉ chấm dứt xử lý khi tất cả các giao tác thực hiện xong.
Cú pháp:


<i>ObjectContext.Method</i>
Method:


 <b>SetComplete: Nếu tất cả thành phần có trong transaction gọi phương </b>
thức này thì transaction sẽ được kết thúc.


Phương thức SetComplete bỏ qua bất kỳ lệnh SetAbort đã được gọi trước đo
Cú pháp:


<i>ObjectContext.SetComplete</i>


 <b>SetAbort: Phương thức này khai báo tất cả các thao tác được thực hiện </b>
trong transaction sẽ khơng được hồn thành và tàingun có thể sẽ
khơng được cập nhật.


Cú pháp:


ObjectContext.SetAbort


 <b>OnTransactionCommit: sự kiện này xảy ra sau khi tất cả các script giao</b>
tác kết thúc. web server(IIS) sẻ xử lý hàm OnTransactionCommit nếu nó


tồn tại.


 <b>OnTransactionAbort: Tương tự như sự kiện OnTransactionCommit</b>
<b>3. Request Object</b>


Đối tượng Request nhận tất cả giá trị mà trình duyệt của của client gởi đến
server thông qua một yêu cầu HTTP (HTTP request)


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

<i><b>Request[.collection|property|method](variable)</b></i>


 <b>Những vấn đề cần quan tâm khi sử dụng đối tượng Request:</b>


 <b>ClientCertificate: collection này được lưu trong</b>
trường client certificate và gởi kèm trong một
HTTP request. Nếu web browser dùng nghi thức
SSL3.0 để kết nối với server và server yêu
cầu certificate thì browser mới gởi trường
này, ngược lại ClientCertificate trả về giá
trị EMPTY. Nếu muốn dùng collection này chúng
ta phải cấu hình web server yêu cầu client
certificate.


<b> Cú pháp:</b>


<b> </b> <b> Request.ClientCertificate( Key[SubField] )</b>


 <b>Cookies: là một collection được lưu trên máy của client như một tập tin</b>
nhỏ. Cookies được trình duyệt của client gởi kèm trong HTTP request.
<b>Cú pháp: </b>



<i><b>Request.Cookies(cookie)[(key)|.attribute] </b></i>
<b> Giải thích đối số:</b>


- <b>cookie: Chỉ định cookie để nhận giá trị</b>


- <b>key: Tham số tùy chọn dùng để nhận các item có trong cookie</b>
- <b>attribute: Chỉ định thơng tin về bản thân cookie. Tham số thuocä</b>


<b>tính này có thể là Name hay HasKeys </b>


</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

second, khi gọi request.Cookies chúng ta sẽ nhận được kết quả là
First=firstkeyvalue&Second=secondkeyvalue


Nếu hai cookie trùng tên được trình duyệt của client gởi cho server thì câu
lệnh Request.Cookies sẽ trả vè cookie có cấu trúc sâu hơn. Ví dụ, nếu hai cookie
trùng tên nhưng có đường dẫn là /www/ và /www/home/, client có thể gởi cả hai
cookie này cho server nhưng lệnh Request.Cookies sẽ chỉ trả về cookie thứ 2.


Để biết được cookie có item khơng ta dùng lệnh script là:


<% Request.Cookies("myCookie").HasKeys %> kết quả trả về là
<b>một số boolean.</b>


<b> Ví dụ sau ghi ra tất cả các item có trong cookie có tên là MyCookie.</b>
<i><b> <%</b></i>


<i><b> If Request.Cookies(“MyCookie”).Haskeys Then</b></i>
<i><b> For Each key In Request.Cookies</b></i>


<i><b> Response.Write item &”=” </b></i>



<i><b> Response.Write Request.Cookies(“MyCookie”)(key) & “<br>”</b></i>
<i><b> Next</b></i>


<i><b> End If </b></i>
<i><b>%> </b></i>


 <b>Form: collection này nhận giá trị của những thành phần trong form được</b>
gởi bằng phương thức POST thơng qua một HTTP request.


<b>Cú pháp:</b>


<i><b>Request.Form(element)[(index)|.Count] </b></i>


- <b>Element: Tên của một thành phần trong form </b>


- <b>index: Tham số tùy chọn cho phép chúng ta truy cập moät </b>


</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

<b>Form collection được chỉ mục theo tên của các parameter trong </b>
<b>request. Chúng ta có thể biết có bao nhiêu parameter trong form </b>
<b>collection bằng cách gọi Request.Form().Count. </b>


<b>Ví dụ: trang HTML như sau:</b>
<i><HTML></i>


<i><HEAD></i>
<i></HEAD></i>
<i><BODY></i>


<i><b> <FORM ACTION = "submit.asp" METHOD = "post"></b></i>



<i><b> Your first name: <INPUT NAME = "firstname" SIZE = 48><br></b></i>
<i><b> What is your favorite ice cream flavor: </b></i>


<i><b><SELECT NAME = "flavor"></b></i>


<i><b><OPTION>Vanilla </OPTION></b></i>
<i><b><OPTION>Strawberry </OPTION></b></i>
<i><b><OPTION>Chocolate </OPTION></b></i>
<i><b><OPTION>Rocky Road</OPTION></b></i>
<i><b></SELECT><br></b></i>


<i><b> <INPUT TYPE = SUBMIT></b></i>
<i><b></FORM></b></i>


<i></BODY></i>
<i></HTML></i>


<b>Trang submit.asp coù nội dung như sau:</b>
<i><b><HTML></b></i>


<i><b><HEAD></b></i>
<i><b></HEAD></b></i>
<i><b><BODY></b></i>


<i><b> Welcome: <%=Request.Form(“firstname”)%></b></i>


</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

<i><b></BODY></b></i>
<i><b></HTML></b></i>



 <b>QueryString: Collection này nhận tất cả các giá trị trong chuỗi query.</b>
HTTP query string được chỉ định bởi những giá trị theo sau dấu “?” trong
câu lệnh request. Chúng ta có thể sử dụng collection querrystring tương
tự như collection form.


<b>Cú pháp:</b>


<i><b>Request.QueryString(Tên biến)[(chỉ mục)].Count </b></i>


 <b>ServerVariables: chứa tất cả các thông tin về biến môi trường.</b>
<b>4. Response Object: </b>


Khác với đối tượng Request, Response gởi tất cả thông tin xử vừa xử lý cho các
client yêu cầu. Chúng ta có thể xử dụng đối tượng này để giao tiếp với người
dùng.


<b>Cú pháp:</b>


<i><b>Response.collection|property|method </b></i>
 <b>Những vấn đề cần quan tâm khi sử dụng đối tượng Request:</b>


 <b>Cookies: collection này dùng để thiết lập giá trị cho biến cookies. Nếu </b>
cookies khơng tồn tại thì web server sẽ tạo một cookies mới trên máy client.
Ngược lại, giá trị của cookies là giá trị mới thiết lập. Một lưu ý khi sử dụng
cookies là giá trị cookies phải là những thơng tin được gởi về đầu tiên cho
trình duyệt của client.


<b>Cú pháp: </b>


<i><b>Response.Cookies(cookie)[(key)|.attribute] = value </b></i>



</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

- Key: là tham số tùy chọn. Nếu giá trị này được thiết lấp thì cookies


này được xem là cookies từ điển.


- Attribute: Bao gồm những thông tin liên quan đến cookies:
- Domain: thuộc tính chỉ ghi, cho biết domain tạo cookies này.
- Expires: thuộc tính chỉ ghi, qui định ngày cookies hết hạn. Nếu


không qui định thuộc tính này thì cookies sẽ hết hạn khi session kết
thúc.


- Haskeys: thuộc tính chỉ đọc, cho biết cookies có chứa item hay


không.


- Path: thuộc tính chỉ ghi, nếu giá trị này được chỉ định thì client chỉ


gởi cookies cho server có đường dẫn này.


- Secure: thuộc tính chỉ ghi, qui định giá trị này khi muốn cookies


được bảo mật.


 <b>Buffer: là một biến kiểu boolean. Nếu thuộc tính này là true thì web server </b>
chỉ trả kết quả cho client khi tất cả các script được xử lý hoặc phương thức
Flush hay End được gọi. Giá trị mặc định là False.


<b>Cú pháp: Response.Buffer = [True, false]</b>



 <b>CacheControl: qui định proxy server có được lưu kết quả do trang ASP này </b>
phát sinh hay không. Giá trị mặc định là không(private).


 ContentType: qui định dạng dữ liệu do web server trả về cho client. Giá trị
mặc định là text/HTML.


<b> Cuù pháp: Response.ContentType [= ContentType ]</b>
<b>Ví dụ:</b>


<i><b><% Response.ContentType = "image/GIF" %></b></i>


</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

<b> Cuù phaùp: Response.Expires =[minuter] </b>


 <b>IssClientConnected: kiểm tra client còn kết nối với server.</b>
<b>Cú pháp: Response.IsClientConnected </b>


 <b>BinaryWrite: phương thức này tiện lợi cho việc truyền những thông tin kiểu</b>
nhị phân cho client.


<b>Cú pháp: Response.write data</b>


Data: dữ liệu muốn truyền cho client.


 <b>Clear: xóa tất cả dữ liệu chứa trong vùng đệm. Muốn dùng phương thức này</b>
phải chỉ định giá trị Response.Buffer = TRUE.


<b>Cú pháp: Response.clear</b>


 <b>End: Khi gọi phương thức này, server dừng xử lý các script và trả về cho </b>
client các kết quả đã thực hiện được. Muốn dùng phương thức này phải chỉ


định giá trị Response.Buffer = TRUE.


<b>Cú pháp: Response.End </b>


 <b>Flush: gởi tất cả dữ liệu trong vùng đệm cho client. Muốn dùng phương thức</b>
này phải chỉ định giá trị Response.Buffer = TRUE.


<b>Cú pháp: Response.Flush</b>


 <b>Redirect: chuyển hướng trình duyệt của client đến một địa chỉ URL khác</b>
<b>Cú pháp: Response.Redirect URL </b>


</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

Đối tượng Server cung cấp các phương thức và thuộc tính dùng cho truy cập
server.


<b>Cú phaùp:</b> <i><b>Server.property|method</b></i>


 <b>Những vấn đề cần quan tâm khi sử dụng đối tượng server:</b>


 <b>ScriptTimeout: thuộc tính trị qui định thời gian lớn nhất mà các lệnh script </b>
còn được thực hiện. Giá trị mặc định là 90 giây. Giá trị timeout sè không
hiệu lực khi server thực hiện các script.


<b>Cú pháp:</b> <i><b>Server.ScriptTimeout </b></i><i><b> NumSeconds</b></i>


NumSeconds: Thời gian tối đa mà script hết hiệu lực.


 <b>CreateObject: Phương thức CreateObject tạo một </b>
instance của một server component. Những đối tượng được tạo bởi
phương thức này sẽ server giải phóng khi server thực hiện xong các script.


Phương thức này không dùng để tạo các đối tượng built_in của ASP.


<b>Cú pháp: Server.CreateObject(progID)</b>
<i>progID : kiểu đối tượng muốn tạo.</i>


 <b>HTMLEncode: Phương thức này được dùng để mã hóa một chuỗi.</b>


<b>Cú pháp: Server.HTMLEncode (string)</b>
<b>Ví dụ:</b>


<i><b><%= Server.HTMLEncode("The paragraph tag: <P>") </b></i>
<i><b>%></b></i>


Chuỗi sau khi thực hiện đoạn script trên:


<b>The paragraph tag: &lt;P&gt;</b>


 <b>MapPath: phương thức này cho biết thông tin về đường dẫn vật lý của một thư </b>


</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17></div>

<!--links-->

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×