§ Tên miền là tên của các máy phục vụ trên mạng sao cho thân thiện với con người § Người ta dùng máy chủ DNS để chuyển đổi qua lại giữa địa chỉ IP và tên miền.. Tên máy chủ thường gắn v
Trang 1Friday, December 10, 2004
LẬP TRÌNH WEB VỚI ASP
Đào Việt CườngKhoa CNTT – ĐHSP Hà Nội
Tài liệu tham khảo
§ TT Tin học - Ngoại ngữ Trí Đức - Giáo trình
Thiết kế và lập trình web với ASP - NXB
Thống kê – 2003
§ Nguyễn Phương Lan ASP 3.0, ASP.NET
-NXB Giáo dục – 2001
§ ASP Databases
§ David Sceppa - Microsoft ADO.Net core
reference - Microsoft Press – 2002
§ http://msdn.microsoft.com
Trang 2Dec-04,16:13.Page 3
Yêu cầu
§ Thiết kế trang web bằng HTML
§ Sử dụng được một công cụ thiết kế web
(Front Page, DreamWaver, …)
§ Mạng và sử dụng mạng máy tính
§ Hệ quản trị CSDL
§ Có kiến thức cơ bản về lập trình
Dec-04,16:13.Page 4
Thời lượng, nội dung
§ Thời lượng: 60 tiết
– Lý thuyết: 30
– Thực hành: 30
§ Nội dung
Trang 4Mạng máy tính – Computer Network
§ Là hệ thống các máy tính được kết nối với
nhau nhằm trao đổi dữ liệu
§ Phân loại mạng theo phạm vi:
– Local Area Network (LAN)
– Internet
§ Mạng Internet: Là mạng của các mạng máy
tính, có quy mô trên toàn thế giới
Trang 5Dec-04,16:13.Page 9
Giao thức – Protocol
§ Giao thức – Protocol: Là tập hợp các qui
tắc được thống nhất giữa hai máy tính nhằm
thực hiện trao đổi dữ liệu được chính xác
§ Địa chỉ IP được chia thành 4 lớp A, B, C, D
§ Hai máy tính bất kì trong một mạng phải có
địa chỉ IP khác nhau
Trang 6Dec-04,16:13.Page 11
Tên miền - Domain Name
§ IP dùng để liên lạc giữa các máy tính trong
mạng nhưng không thân thiện với con người
§ Tên miền là tên của các máy phục vụ trên
mạng sao cho thân thiện với con người
§ Người ta dùng máy chủ DNS để chuyển đổi
qua lại giữa địa chỉ IP và tên miền
§ Tên miền được chia thành nhiều cấp, phân
cách bởi dấu chấm "."
VD: www.dhsphn.edu.vn
Dec-04,16:13.Page 12
Client/Server
§ Máy chủ - server:Chứa dữ liệu và tài nguyên, dịch vụ để
cho các máy tính khác có thể khai thác và truy cập (máy
phục vụ).
§ Một máy chủ có thể dùng cho một hay nhiều mục đích Tên
máy chủ thường gắn với mục đích sử dụng
§ Máy khách - client:Là máy tính dùng để kết nối và khai
thác các tài nguyên trên máy chủ
§ Việc kết nối của client với server và việc khai thác dịch vụ
của server tạo nên mô hình Client/Server
§ Một máy tính vừa có thể là server vừa là client
Trang 7Dec-04,16:13.Page 13
Cổng dịch vụ - Service Port
§ Một máy server có thể cung cấp nhiều dịch
vụ -> Cần có cơ chế để client khai thác đúng
dịch vụ cần thiết
§ Mỗi dịch vụ trên máy tính nằm ở những vị trí
khác nhau (cổng dịch vụ), máy khách truy
cập và khai thác dịch vụ thông qua các cổng
URL-Uniform Resource Location
§ URL-Uniform Resource Location : (Chuỗi
Trang 8Dec-04,16:13.Page 15
Một số khái niệm khác
§ Web server:
– Giao thức sử dụng để khai thác dịch vụ web là
http hoặc https
§ Web browser:
– Là chương trình chạy trên client để khai thác DV
web của server
– Một số web browser thông dụng: Internet
Explorer (IE), Nescape (NS), Mozilla,
Dec-04,16:13.Page 16
Một số khái niệm khác
§ Web page:
– Là một trang web
kết quả trả về client là trang HTML
§ Web site: Là tập hợp các trang Web có nội
dung thống nhất, phục vụ cho một mục đích
nào đó
§ World Wide Web (WWW): Là hệ thống các
Web Site trên toàn thế giới được truy cập
thông qua mạng Internet
Trang 9Dec-04,16:13.Page 17
2 Web tĩnh và web động
§ Trang web tĩnh:
chưa hẳn là trang web động
§ Trang web động
– Mã lệnh được thực thi trên server, gửi kết quả là
HTML về NSD
Xử lý yêu cầu với web tĩnh
Yêu cầu (Request)
Trả lời (Reply)
Client
Tìm trang được yêu cầu
Tìm được
Đ Kết quả (HTML)
S
Báo lỗi
Server
Trang 10Dec-04,16:13.Page 19
Xử lý yêu cầu với web động
Yêu cầu (Request)
Trả lời
(Reply)
Client
Tìm trang được yêu cầu
Tìm được Đ
Kết quả (HTML)
S Báo lỗi
Ngôn ngữ viết web động?
§ Có nhiều ngôn ngữ để viết
§ Ngôn ngữ phụ thuộc sự hỗ trợ của server
Trang 11Friday, December 10, 2004
Bài 2
-Ngôn ngữ HTML
1 Giới thiệu
§ HTML: HyperText Markup Language - Ngôn
ngữ đánh dấu siêu văn bản
§ Do Tim Berner Lee phát minh và trở thành
ngôn ngữ chuẩn để tạo các trang Web
§ HTML dùng các THẺ (tags) để định dạng dữ
liệu
Trang 12VD: <p align="left"> </p>; <img src="picture.gif">;
§ Thẻ không phân biệt chữ hoa, chữ thường
§ Các thẻ có thể lồng nhau, không được cắt
nhau (mở trước-đóng sau)
Trang 14Dec-04,16:13.Page 27
2 Tạo form trong HTML
§ Chức năng: Giúp có thể lấy được thông tin từ NSD
gửi về web server
§ Có một số control chuẩn
– Form
– Text Box (One line textbox)
– Text area (Multi line textbox)
– Check Box
– Option Button (Radio Button)
– Combo Box (drop-down box; drop down menu)
– List Box
– Button (Command Button)
Dec-04,16:13.Page 28
Trang 15Dec-04,16:13.Page 29
Khai báo form
<form action="địa_chỉ_xử_lý"
method="ph ương_thức"
name="tên_form">
</form>
Khai báo form (tiếp)
§ action="địa_chỉ_xử_lý":Địa chỉ xử lý là địa chỉ
trang web mà form này sẽ được gửi đến Nó có thể
là địa chỉ tương đối
VD: action="myscript.asp"
§ method="ph ương_thức": Phương thức: Cách
thức gửi dữ liệu Chỉ có 2 giá trị: GET, POST
– GET (mặc định): Các giá trị trên form được gửi theo URL
Trang 16Dec-04,16:13.Page 31
Khai báo đối tượng trong form
§ Hầu hết các form đều cần các đối tượng
§ Thẻ input và thuộc tính type sẽ quyết định
phần lớn đối tượng nào được hiển thị trên
trình duyệt
§ Tất cả các đối tượng bắt buộc phải có thuộc
tính name: Thuộc tính này dùng để giúp trình
xử lý form có thể truy cập để lấy giá trị sau
này Riêng với 2 nút Submit và Reset có thể
Trang 17§ Tạo mục chọn trong combo
<option value="giá_tr ị"> </option>
§ Một số lựa chọn khác
– Thêm multiplevào <select >
– Thêm selectedvào <option >
Hộp nhập văn bản trên nhiều dòng
Trang 18Trả lời (Reply)
Client
Tìm trang được yêu cầu
Tìm được
Đ Kết quả (HTML)
S
Báo lỗi
Server
Trang 19Dec-04,16:13.Page 37
Các hạn chế của trang web tĩnh
§ Nội dung cố định, không thay đổi trừ khi có
sự hiệu chỉnh trực tiếp của người xây dựng
§ Không có khả năng tương tác với người sử
dụng, dễ gây nhàm chán
§ Web Server hoạt động như một File Server
Kỹ thuật tạo trang web động
§ Xử lý Web động phía Client
– Các Web Browser được trang bị khả năng xử lý
các sự kiện đơn giản (ví dụ như: MouseMove,
ButtonClick,…)
§ Xử lý Web động phía Server
– Các trang Web sẽ được xử lý bởi một (một số)
chương trình trên Server trước khi trả về cho
Web Browser
– Kết quả trả về browser là HTML
Trang 20Dec-04,16:13.Page 39
Xử lý yêu cầu với web động
Yêu cầu (Request)
Trả lời
(Reply)
Client
Tìm trang được yêu cầu
Tìm được Đ
Kết quả (HTML)
S Báo lỗi
mã của ngôn ngữ kịch bản (script)
§ Các đoạn script có thể được biên dịch trên
Server trước khi trả về cho Browser hoặc
biên dịch bởi Browser (nhằm làm tăng tốc độ
xử lý)
§ Có khả năng tương tác với người sử dụng
Trang 21Dec-04,16:13.Page 41
Ngôn ngữ kịch bản(Scripting Languages)
§ Hiện nay có rất nhiều ngôn ngữ kịch bản được sử
dụng, đi kèm với chúng là các trình biên dịch trong
các web server tương ứng.
§ Một số ví dụ:
– VBScript, JScript web server là Internet Information
Service – IIS của Microsoft
– PHP web server Apache Server của cộng đồng Open
Source Software
– JSP, Java Servlet của Sun
– Perl và trình biên dịch CGI tương ứng cho môi trường
Unix
– …
Các phần mềm cần thiết
§ Web server: Dùng 1 trong các loại
– Internet Information Services(IIS): Windows
Trang 22Dec-04,16:13.Page 43
Cài đặt và cấu hình IIS
§ Cài đặt
§ Cấu hình
– Tạo virtual Directory
Dec-04,16:13.Page 44
Tạo một trang ASP
§ Trang ASP là trang web chứa các mã HTML
và mã lệnh VBScript
§ Trang ASP bắt buộc phải có phần mở rộng là
.ASP
§ Có thể chèn VBScript chạy phía server vào
bất cứ vị trí nào của trang web
§ Có 2 cách chèn:
– Đặt vào giữa: <% Danh_sách_l ệnh %>
– Nếu chỉ để lấy giá trị biểu thức có thể đặt vào
giữa <%=bi ểu_thức%>
Trang 23Response.Write "Hello world!"
Response.Write "Bây gi ờ là: " & Now()
%>
</body>
</html>
Trang 24Friday, December 10, 2004
LẬP TRÌNH WEB VỚI ASP
Đào Việt CườngKhoa CNTT – ĐHSP Hà Nội
Friday, December 10, 2004
Chương 2 Ngôn ngữ kịch bản VBScript
-ü Chương 1: Những kiến thức cơ sở
A Ch ương 2: Ngôn ngữ kịch bản VBScript
§Chương 3: Lập trình web động với ASP
§ Chương 4: Truy xuất CSDL trong ASP với ADO
§ Chương 5: Một số ứng dụng ví dụ
§ Chương 6: Giới thiệu ASP.Net và ADO.Net
Trang 25Dec-04,16:15.Page 3
1 Đặc điểm trang ASP
lệnh VBScript
§ Có thể chèn VBScript chạy phía server vào bất cứ
vị trí nào của trang web
§ Có 2 cách chèn:
– Đặt vào giữa: <% Danh_sách_l ệnh %>
– Nếu chỉ để lấy giá trị biểu thức có thể đặt vào giữa
<%=bi ểu_thức%>
§ Chỉ xét mã VBScripts chạy phía server.
§ Qui định ngôn ngữ lập trình phía server:
<%@Language="VBScript"%>
1 Đặc điểm trang ASP (tiếp)
§ VBScript không phân biệt chữ hoa, chữ thường
Cách viết MyVar, myvar, MYVAR là giống nhau
§ Lệnh trong VBScript
– Mỗi lệnh viết trên một dòng
– Nếu lệnh viết trên nhiều dòng thì dùng dấu gạch nối (_) để nối 2 dòng
– Ví dụ:
if (a<b+c) and (b<c+a) and (c<a+b) then …
tương đương với
Trang 26Dec-04,16:15.Page 5
2 Biến, hằng
§ Trong VBScript chỉ có một kiểu biến Variant
§ Biến có thể được khai báo hoặc không
§ Để bắt buộc khai báo biến:
<% option explicit %> ở đầu chương
trình
§ Khai báo biến:
Dim tên_bi ến1, tên_biến2,…
§ Gán giá trị cho biến:
Tên_bi ến = biểu_thức
Dec-04,16:15.Page 6
Biến mảng
Dim tên_m ảng(n) 'n: chỉ số cuối cùng
– N ếu chưa biết trước số phần tử của mảng, có thể bỏ qua
N trong cách khai báo trên Đến khi biết số phần tử thì khai
Trang 27AND, OR, NOR, XOR Logic
"hello" & "world" = "helloworld"
+ ; &
Cộng, ghép chuỗi
7 mod 3 = 1 Mod
Chia lấy phần dư
7 \ 3 = 2
\ Chia lấy phần nguyên
+, -, *, / Cộng, trừ, nhân, chia
VÍ DỤ BIểU DIỄN
TOÁN TỬ
Trang 29Dạng if then else end if
Trang 34Lặp số lần không định trước (tiếp)
Kiểm tra điều kiện sau
Trang 35§ Ý nghĩa của chương trình con?
§ Các loại chương trình con
– Thủ tục
– Hàm
Trang 37<! # INCLUDE FILE ="tên_file" >
<! # INCLUDE VIRTUAL =" địa_chỉ_file" >
Trang 38Friday, December 10, 2004
LẬP TRÌNH WEB VỚI ASP
Đào Việt CườngKhoa CNTT – ĐHSP Hà Nội
Friday, December 10, 2004
Chương 3 Lập trình web động với ASP
-ü Chương 1: Những kiến thức cơ sở
ü Chương 2: Ngôn ngữ kịch bản VBScript
BCh ương 3: Lập trình web động với ASP
§ Chương 4: Truy xuất CSDL trong ASP với ADO
§ Chương 5: Một số ứng dụng ví dụ
§ Chương 6: Giới thiệu ASP.Net và ADO.Net
Trang 39§ Đối tượng Application
§ Đối tượng Sesion
§ Xử lý lỗi
Bài 1 Giao tiếp Client/Server
Trang 40-Dec-04,16:16.Page 5
Nội dung
§ Gửi DL Client → Server
§ Gửi DL Server → Client
Dec-04,16:16.Page 6
§ 3 con đường để gửi dữ liệu Client → server
Trang 41Dec-04,16:16.Page 7
1 Cách truyền dữ liệu qua URL
§ Ghi danh sách các cặp bi ến=giá_trị tiếp
sau địa chỉ trang
§ Phân cách giữa địa chỉ trang và dữ liệu là
Lấy dữ liệu truyền qua URL
§ Các dữ liệu truyền qua URL được lưu trữ thành một
tập hợp QueryString trong đối tượng Request
§ Để lấy dữ liệu: Request.QueryString("tên_biến")
Trang 42Dec-04,16:16.Page 9
Lấy dữ liệu truyền qua Form POST
trong tập hợp FORM của đối tượng Request
§ Để lấy dữ liệu: Request.Form("Tên_biến")
§ Sử dụng đối tượng Response (tr ả lời)
§ Cách thức chung: Response Ph ương_thức
§ Một số chức năng:
Trang 43§ Chú ý: Nếu chuỗi văn bản gồm giá trị biến
hoặc bao gồm nhiều thành phần thì ta sử
dụng dấu "&" để nối các chuỗi lại
Định hướng trình duyệt sang địa chỉ khác
Trang 45<input type="text" name="txPass" ><br>
<input type="submit" value="Login">
</form>
Chấm dứt việc thực hiện script
§ Phương thức: End
§ Cú pháp: Response.End
§ Chức năng: Ngừng việc thực hiện script trên
trang web hiện tại và trả kết quả về cho client
Trang 46Friday, December 10, 2004
Bài 2 Cookies
Trang 47Nội dung
§ Khái niệm cookie
§ Đặt cookie
§ Lấy giá trị của cookie
§ Một số lựa chọn khác với cookie
– Đặt thời gian hết hạn
Trang 48Dec-04,16:16.Page 21
1 Khái niệm
lưu trên máy của người sử dụng thường
được dùng để xác định thông tin về người sử
dụng
§ Khả năng tạo cookies phụ thuộc vào trình
duyệt và sự cho phép của người sử dụng
§ Với IE, ta có thể xem các cookies được tạo ra
trên máy của mình bằng cách vào
Tools/Internet Options
Chọn tiếp General/Settings/View files
Dec-04,16:16.Page 22
2 Tạo cookies trên máy NSD
§ Sử dụng tập hợp Cookies của đối tượng
Response
§ Cú pháp:
Response.Cookies("Tên_Cookie") = Giá_Tr ị
§ Chức năng: Đặt cookie có tên là
Tên_Cookie trên máy NSD (Nếu có thể)
– Nếu Tên_Cookie chưa có thì một cookie mới
được tạo ra
– Nếu Tên_Cookie đã có thì giá trị của cookie này
Trang 49if u="a" and p = "passa" then
Response.Cookies ("User") = "a"
3 Lấy giá trị của cookies
§ Sử dụng tập hợp Cookies của đối tượng
Request
§ Cú pháp:
Bi ến = Request.Cookies("Tên_Cookie")
§ Chức năng: Gán giá trị của cookie có tên là
Tên_Cookie trên máy NSD cho Bi ến
– Nếu Tên_Cookie chưa có thì giá trị của biến là
rỗng
Trang 51Dec-04,16:16.Page 27
Một số lựa chọn khác với cookies
§ Đặt thời hạn cho cookie
§ Là một nhóm các Cookies có cùng tên nhưng
được phân biệt nhau bởi khóa
Trang 52Friday, December 10, 2004
Bài 3 Khai thác server
-Dec-04,16:16.Page 30
Nội dung
§ Sử dụng đối tượng Server
§ Lấy các biến môi trường
Trang 53Dec-04,16:16.Page 31
Sử dụng đối tượng Server
§ Đối tượng Server cung cấp một vài chức năng hỗn
hợp mà chúng ta có thể sử dụng trong các ứng
dụng ASP.
hiểu và ít khi được sử dụng nhưng có một phương
thức CreateObject và thuộc tính ScriptTimeOut của
đối tượng Server là vô giá
§ Đối tượng Server như tên của nó ngụ ý như đại
diện cho chính máy phục vụ web và nhiều chức
năng mà nó cung cấp hoàn toàn là chức năng của
bản thân máy phục vụ web sử dụng khi xử lý các
yêu cầu từ máy khách và trả lời từ máy phục vụ.
1 Thuộc tính ScriptTimeout
§ Chức năng: Khoảng thời gian tối đa cho phép
một script chạy trên Server
§ Cú pháp:
§ Khoảng thời gian được tính bằng giây, giá trị
mặc định là 90 (thời gian tối thiểu)
§ Ví dụ:
Trang 54§ Chú ý: Khi gán một biến cho một đối tượng ta
cần phải dùng từ khóa Set
§ Ví dụ:
Set Conn= Server.CreateObject ("ADODB.Connection")
Set Rs= Server.CreateObject ("ADODB.Recordset")
Dec-04,16:16.Page 34
3 Lấy đường dẫn vật lý
dẫn vật lý trên ổ đĩa server.
trực tiếp file (CSDL, Upload, )
Server.MapPath (" đường_dẫn_logic ")
§ Ví dụ:
– Nếu ta có file MAPPATH.ASP nằm trên thư mục gốc của
web server và đường dẫn đến thư mục gốc của web
server là E:\Inetpub\wwwroot\
– Khi đó Server.MapPath (" MapPath.asp ")sẽ là
E:\Inetpub\wwwroot\MapPath.asp
Trang 55Dec-04,16:16.Page 35
4 Mã hoá chuỗi
§ Mã theo kiểu HTML (HTMLEncode)
– Cú pháp: Sever.HTMLEncode ("chu ỗi")
– Ví dụ:
Response.Write Server.HTMLEncode("<B> là
th ẻ tạo chữ đậm ")
§ Mã hoá theo kiểu URL (URLEncode)
– Cú pháp: Sever.URLEncode ("chu ỗi")
–Chu ỗi: Là chuỗi cần mã hoá
5 Lấy thông tin môi trường server
§ Sử dụng tập hợp ServerVariables của đối
tượng Request
§ Cú pháp
Bi ến = Request.ServerVariables (" tên_bi ến_môi_trường ")
Trang 56Dec-04,16:16.Page 37
Danh sách các biến môi trường (1)
Retrieves the physical path corresponding
to the metabase path IIS converts the APPL_MD_PATH to the physical (directory) path to return this value
ALL_RAW
All HTTP headers sent by the client
ALL_HTTP
Dec-04,16:16.Page 38
Danh sách các biến môi trường (2)
bit0 is set to 1 if the client certificate is present
bit1 is set to 1 if the Certifying Authority of the client certificate is invalid (not in the list of recognized CA on the server).
CERT_FLAGS
Unique ID for client certificate, Returned as a string Can be used as a signature for the whole client certificate
AUTH_TYPE
The value entered in the client's authentication dialog This variable is only available if Basic authentication is used
AUTH_PASSWORD