Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 19 - Ví dụ: Máy khách gởi cookie chỉ tới những script trong thư mục ảo /app/SearApp: <% Response.Cookie (“LastSearch”).Path=”/App//SearApp” %> - Secure: Thuộc tính chỉ ghi, quy định giá trị này khi muốn cookie được bảo mật b. Thuộc tính ð Buffer: là biến kiểu Boolean. Nếu thuộc tính là TRUE thì Web Server chỉ trả kết quả cho client khi tất cả kịch bản được xử lý hoặc phương thức Flush hay End được gọi. Giá trị mặc định là false. Ví dụ : <% Response.Buffer = true %> ð CacheControl: Đặt thuộc tính này bằng “Public” cho phép proxy Server thực hiện chức năng lưu trữ giá trị cũ trong bộ nhớ do trang asp này phát sinh ra. Giá trị mặc định là không (private) Ví dụ: <% Response.CacheControl = “public” %> ð ContentType: Quy định kiểu dữ liệu do Web Server trả về cho client. Giá trị mặc định là text/html Cú pháp: Response.ContentType [= strContentType] Ví dụ: <% Response.contentType =”image/gif” %> ð Expires: Chỉ định thời gian tính bằng phút một trang còn hợp lệ. Cú pháp: Response.Expires [ = intMinutes] Ví dụ: <% Response.Expires=10 %> ð IsClientConnected: Kiểu boolean. Kiểm tra client còn kết nối với Server hay không. Cú pháp: Response.IsClientConnected Ví dụ: <% If Response.IsClientConnected then StrName= fn_getusername(session.sessionID) End if %> c. Phương thức ð BinaryWrite: Phương thức này tiện lợi cho việc truyền những thông tin kiểu nhị phân cho client ð Clear: Xoá tất cả dữ liệu trong vùng đệm. Muốn sử dụng phương thức này phải chỉ định giá trị Response.Buffer=true. Cú pháp: Response.clear ð End: khi gọi phương thức này, Server ngừng xử lý những kịch bản và trả về cho client nhứng kết quả đã thực hiện được. Muốn sử dụng phương thức này phải chỉ định giá trị Response.Buffer=true. Cú pháp: Response.End ð Flush: Gởi tất cả dữ liệu trong vùng đệm cho client. Muốn sử dụng phương thức này phải chỉ định giá trị Response.Buffer=true. Cú pháp: Response.Flush Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 20 - ð Redirect: Chuyển hướng trình duyệt của client đến một địa chỉ URL khác Cú pháp: Response.Redirect StrUrl StrUrl: địa điểm mới mà bạn muốn chuyển địa chỉ máy khách đến đó. Ví dụ: Response.redirect “thongbaoloi.asp” Chuyển đến trang “thongbaoloi.asp” ð Write: Ghi thông tin cho client Ví dụ: Response.write “Chào bạn” Hiển thị câu “Chào bạn” trên trình duyệt 3. Form và QueryString Để 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ư là tên biến khi phân tích, lấy dữ liệu trên Server. Trong Form sẽ có nút lệnh kiểu Submit để người dùng đẩy dữ liệu lên Server. Ví dụ 1: Tạo Form để nhập thông tin họ và tên của người sử dụng: Đoạn mã lệnh: <form method="get" action="login.asp"> Họ : <input type="text" name="fname"> <br /> Tên: <input type="text" name="lname"> <br /><br /> <input type="submit" value="Submit"> </form> Thẻ Form có hai thuộc tính là Action và Method: o Action: quy định tập tin .asp sẽ đón nhận và xử lý dữ liệu đẩy lên. o Method: quy định cách thức gửi dữ liệu: Post hoặc Get. 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 “?”. Get là phương thức mặc định. Bạn có thể lấy thông tin của người sử dụng nhập vào form bằng 2 cách: sử dụng Request.QueryString or Request.Form. Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 21 - a. Request.Form Sử dụng để tập hợp các giá trị trong Form với phương thức Post. Thông tin gởi đến từ Form với phương thức Post không thể nhìn thấy và không hạn chế về số lượng thông tin gởi đến. Ví dụ: Trong ví dụ 1, nếu phương thức là Post, người sử dụng nhập vào Họ: Lê và tên : Anh và nhấn nút lệnh Submit thì URL sẽ gởi đến Server như sau: http://localhost/giaotrinh/login.asp Giả sử trang “login.asp” có chứa đoạn mã như sau: <body> Chào mừng bạn <% ‘ truy xuất dữ liệu nhập từ form ‘ sử dụng Request.form response.write(request.form("fname")) response.write(" " & request.form("lname")) %> đã đến với chúng tôi. </body> Trên trình duyệt sẽ xuất hiện: Chào mừng bạn Lê Anh đã đến với chúng tôi. b. Request.QueryString Sử dụng để tập hợp các giá trị trong form với phương thức Get. Thông tin gởi từ form bằng phương thức get thấy được trên thanh địa chỉ (address) của trình duyệt, không che dấu được dữ liệu và độ lớn dữ liệu bị hạn chế. Nếu người sử dụng gõ “Le” và “Anh” trong ví dụ 1 thì URL gởi đến Server như sau: http://localhost/giaotrinh/login.asp?fname=Le&lname=Anh&B1=Submit Giả sử file ASP "login.asp" chứa đoạn kịch bản như sau: <body> Chào mừng bạn <% ‘ sử dụng Request.Querytring để truy xuất dữ liệu response.write (request.querystring("fname")) response.write (" " & request.querystring("lname")) %> đ ã đến với chúng tôi </body> Trên trình duyệt sẽ hiển thị: Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 22 - c. Sự khác nhau giữa Form và Querytring • Việc kích một siêu liên kết(hyperlink) trong một trang Web, thông điệp email hay tài liệu khác, gõ địa chỉ vào thanh Address của một trình duyệt và nhấn Enter, hay kích vào các nút lệnh liên kết, tất cả đều sử dụng phương thức Get. Cách duy nhất gởi các giá trị đến Server từ những hành động này là qua tập hợp Querytring, bằng cách gắn thêm vào URL. Ví dụ: <a href=”http://www.google.com/data.asp?ten=thanh&congty=TD”> liên kết </a> • Khi sử dụng phân đoạn <Form> trong một trang, có thể đặt thuộc tính cho Form là Get hoặc Post. Nếu là Get, trình duyệt sẽ lấy các giá trị trong tất cả các hộp điều khiển (khung nhập dữ liệu) để xây dựng thành Querytring và gắn vào URL của trang được yêu cầu khi Submit trang hiện tại. Khi trang này đến Server, các giá trị của nó nằm ở tập hợp Request.Querytring. Ngược lại, nếu sử dụng phương thức Post, trình duyệt sẽ đưa tất cả các giá trị vào trong HTTP header để gởi đến Server và các giá trị của nó có thể truy xuất qua Request.Form • Tóm lại, nên sử dụng phương thức FOST trong các form HTML, vì chiều dài của chuỗi URL bị giới hạn nên nếu dùng Querytring sẽ có nguy cơ tràn và bị cắt bớt dữ liệu, hơn nữa, khi sử dụng Query tring sẽ không đảm bảo dữ liệu của bạn được bảo mật. 4. Sử dụng Cookie Được sử dụng để nhận diện người sử dụng. Cookie là một file nhỏ nằm trên Server được nhúng vào máy tính của người sử dụng. Mỗi lần máy tính yêu cầu một trang trên trình duyệt, nó cũng sẽ gởi một Cookie. Với ASP, bạn có thể tạo và lấy giá trị của Cookie. a. Tạo Cookie Câu lệnh Response.Cookies được sử dụng để tạo Cookie. Câu lệnh này phải được đặt trước thẻ <HTML> Ví dụ: Tạo một Cookie có tên “ten” và gán giá trị “Anh” cho nó <% Response.Cookies("ten")="Anh" %> Server (ASP Application ) Đọc dữ liệu sử dụng Querytring Đọc dữ liệu sử dụng Form Method = Get Method = Post Dữ liệu được gởi với URL Dữ liệu được gởi bên trong http header Trình duyệt (Browser ) Form Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 23 - Có thể gán thuộc tính cho Cookie, ví dụ đặt thời gian hết hạn của Cookie: <% Response.Cookies("ten")="Anh" Response.Cookies("ten").Expires=#May 10,2002# %> b. Lấy giá trị Cookie Câu lệnh "Request.Cookies" được sử dụng để lấy giá trị Cookie Ví dụ: Lấy giá trị của Cookie có tên “ten” và hiển thị nó lên trang web <% fname=Request.Cookies("ten") response.write(“ten=" & fname) %> Kết quả trên trình duyệt sẽ hiển thị ten=Anh c. Khoá Nếu một Cookie chứa một tập hợp các giá trị thì gọi là Cookie có khoá. Ví dụ: Tạo một Cookie có tên là “user”. Cookie “user” có khoá chứa tất cả các thông tin về người sử dụng. <% Response.Cookies("user")("ten")="Anh" Response.Cookies("user")("ho")="Le" Response.Cookies("user")("thanhpho")="DaNang" Response.Cookies("user")("tuoi")="25" %> d. Ví dụ Đoạn mã lệnh sau đây sử dụng Cookie để biết số lần bạn đến 1 trang web. <% ‘ Khai báo biến Cookie dim numvisits ‘ Tạo Cookie và đặt thời gian hết hạn cho Cookie response.cookies("NumVisits").Expires=date+365 ‘ Lấy giá trị Cookie numvisits=request.cookies("NumVisits") %> <html> <body> <% if numvisits="" then response.cookies("NumVisits")=1 %> Chào bạn! Đây là lần đầu tiên bạn ghé thăm chúng tôi. <% else response.cookies("NumVisits")=numvisits+1 response.write("Bạn đã đến thăm ") response.write("trang web này " & numvisits) response.write " lần !" Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 24 - end if %> </body></html> 5. Đối tượng Server Đối tượng Server được sử dụng để thực hiện các thao tác đặc biệt tác động lên Server. Đối tượng Server cung cấp nhiều phương thức và thuộc tinh dùng cho truy cập Server. Cú pháp Server.property | method a. Thuộc tính (Property) ð ScriptTimeout: Thuộc tính này quy định thời gian lớn nhất mà các lệnh kịch bản còn được thực hiện. Giá trị mặc định là 90 giây Cú pháp: Server.ScriptTimeout = thời gian tối đa kịch bản hết hiệu lực (tính bằng giây) Ví dụ: <%Server.ScriptTimeout =100%> b. Phương thức ð CreateObject: Phương thức này tạo một phiên bản của thành phần ActiveX. Những đối tượng được tạo bởi phương thức này sẽ giải phóng khi Server thực hiện xong các kịch bản. Cú pháp: Server.CreateObject(kiểu đối tượng muốn tạo) Ví dụ: <% dim objAd Set objAd = Server.CreateObject(“MSWC.AdRotator”) %> ð MapPath: Phương thức này cho biết thông tin về một đường dẫn vật lý của một thư mục ảo trên Web Server Cú pháp: Server.MapPath(path) Ví dụ: <% StrSearchpath=Server.MapPath(“search/start/searchStart.asp”) %> ð HTMLEncode: Phương thức này dùng để mã hoá một chuỗi Cú pháp: Server.HtmlEnCode(string) Ví dụ: <% Dim strold Dim strnew Strold=”<table><tr><td>” Strnew=Server.HtmlEncode(strold) Response.write strNew %> Phương thức mà đối tượng Server thường sử dụng nhất là CreateObject. . đường dẫn vật lý của một thư mục ảo trên Web Server Cú pháp: Server. MapPath(path) Ví dụ: <% StrSearchpath =Server. MapPath(“search/start/searchStart .asp ) %> ð HTMLEncode: Phương thức này. Response.Cookies("user" ;)( "ten" ;)= "Anh" Response.Cookies("user" ;)( "ho" ;)= "Le" Response.Cookies("user" ;)( "thanhpho" ;)= "DaNang". (request.querystring("fname" ;)) response.write (" " & request.querystring("lname" ;)) %> đ ã đến với chúng tôi </body> Trên trình duyệt sẽ hiển thị: Active Server Pages Trung