Đối tượng Server
Là một đối tượng cung cấp một số hàm thường dùng trong ứng dụng. Có 2 phương thức được cung cấp bởi đối tượng server là Mappath và CreateObject. Trả về đường dẫn vật lý từ đường dẫn (thư mục) ảo. + Cú pháp: Server.Mappath(“ ...
Là một đối tượng cung cấp một số hàm thường dùng trong ứng dụng. Có 2 phương thức được cung cấp bởi đối tượng server là Mappath và CreateObject.
Trả về đường dẫn vật lý từ đường dẫn (thư mục) ảo.
+ Cú pháp: Server.Mappath(“Đường dẫn ảo/ tương đối”)
+ Ví dụ: Có một địa chỉ như sau: http://localhost/HienThiSP.htm
Vị trí ảo của tệp Hienthisp.htm trên webserver
Trang web HienThiSP.htm có đường dẫn ảo là Localhost/HienThiSP.htm.
Đường dẫn vật lý (nằm trên ổ cứng của trang này) là: c:inetpubwwwrootHienThisp.htm
Vị trí vật lý của tệp Hienthisp.htm trên ổ cứng.
Trong trường hợp này, Server.Mappath(“HienThiSP.htm”) sẽ cho ta kết quả là c:inetpubwwwrootHienThisp.htm.
Như vậy hàm Mappath thực hiện ánh xạ từ đường dẫn ảo → đường dẫn vật lý.
Hàm này đặc biệt hay dùng khi chúng ta tham chiếu đến đường dẫn vật lý của các tệp CSDL khi kết nối.
Ví dụ:
Trang Mappath_Demo.asp | |
<%@ language = vbscript %><HTML><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>Mappath</title></head><BODY>Duong dan vat ly cua mot so trang web : <br><% Response.write (server.mappath("HienThiSP.htm")) Response.write ("<BR>") Response.write (server.mappath("/HienThiSP.htm")) Response.write ("<BR>") Response.write (server.mappath("/data/nwind.mdb")) Response.write ("<BR>")%></BODY></HTML> |
Kết quả:
Kết quả
Lưu ý: Nếu tệp không tồn tại hoặc đường dẫn ảo đưa vào sai thì hàm trả về sẽ là một xâu gồm đường dẫn tới thư mục wwwroot cộng với xâu đặt trong mappath.
Hỏi : Không cần dùng đến Mappath có được không ?
Tạo ra một số đối tượng. Ví dụ tạo ra các đối tượng truy xuất đến CSDL.
+ Cú pháp:
Set <Tên_Biến> = Server.CreateObject(“Xâu mô tả đối tượng cần tạo”)
Xâu thường dùng (đối tượng thường được tạo): ADODB.Connection và ADODB.Recordset.
+ Ví dụ :
Tạo một đối tượng Connection và đối tượng Recordset
Dim Conn, Rs
Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
Trang Login.asp |
<HTML><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Dang nhap</title></head><BODY><% IFRequest.Form("MaNguoiDung")= "T08A" and Request.Form("MatKhau")="123456" THEN Session("MaNguoiDung") = Request.Form("MaNguoiDung") Session("MatKhau") = Request.Form("MatKhau") Session("TrangThaiDangNhap") = "rồi" Response.write("Bạn đã đăng nhập thành công ! Bạn có thể vào ") Response.write("<a href = 'Home.asp'>Trang chủ </a>") ELSE ‘/// Tạo form đăng nhập Session("TrangThaiDangNhap") = "chưa" Response.write("<form action='Login.asp' method = 'Post'>") Response.write("Tên đăng nhập: <Input type = text name = MaNguoiDung> <BR>") Response.write("Mật khẩu : <Input type = password name = MatKhau> <BR>") Response.write("<Input type = Submit value = 'Đăng nhập'>") Response.write("</form>") ENDIF%></BODY></HTML> |
Trang Home.asp |
<HTML><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>Trang chủ</title></head><BODY><% IF Session("TrangThaiDangNhap") = "rồi" THENResponse.write("<h2>Đây là trang chủ của lớp T08A !</h2>") Response.write("<h1>Chào mừng bạn đã ghé thăm website của chúng tôi !") ELSEResponse.write("Bạn chưa đăng nhập ! <a href = 'Login.asp'> Đăng nhập. </a>") ENDIF%></BODY></HTML> |
*Lưu ý: Có thể tạo biến Session ở bất kỳ đâu chứ không nhất thiết ở trong file Global.asa
??? Dùng biến Session khi nào ?