Bài giảng Lập trình mạng - Lê Anh Tú
MỤC LỤC
Chương 1- Mở đầu . 4
1.1. Mạng máy tính và lịch sửphát triển . 4
1.2. Mô hình WWW (world wide web) và các dịch vụliên quan . 4
1.3. Thếnào là trang web tĩnh, trang web động . 4
1.4. Các bước phát triển của web . 5
1.5. Các công cụvà công nghệthiết kếweb . 5
Chương 2- Ngôn ngữ HTML . 6
2.1. Thẻ(tag) HTML là gì? . 6
2.2. Cấu trúc của một trang HTML . 6
2.3. Các thẻ định cấu trúc tài liệu . 6
2.4. Các thẻ định dạng . 7
2.5. Thẻtạo link (liên kết) . 8
2.6. Thẻtạo frame (khung) . 8
2.7. Thẻtạo Form . 9
2.8. Thẻtạo đối tượng FORM . 9
2.9. ThẻMarquee-tạo chữchạy . 11
2.10. Các thẻtạo bảng . 11
2.11. Một sốthẻMultimedia . 11
2.12. Bảng mã và tên gọi trong HTML của một sốký tự đặc biệt . 13
2.13. Thiết kếweb sửdụng Microsoft Frontpage . 13
2.13.1. Các thao tác chính khi soạn thảo một trang web . 13
2.13.2. Tạo các thành phần của trang web. 14
2.14. Bài tâp thực hành . 15
2.14.1. Tạo trang web cho nhóm. . 15
2.14.2. Tham khảo các site . 16
2.14.3. Thiết kếwebsitte theo các mẫu. 17
Chương 3- Ngôn ngữkịch bản Javascript . 22
3.1. Tổng quan vềJavaScript. 22
3.2. Nhúng JavaScript vào trang tài liệu HTML . 22
3.2.1. Sửdụng thẻ<SCRIPT> . 22
3.2.2. Sửdụng một file nguồn JavaScript . 23
3.2.3. Sửdụng thẻ<Noscript> . 23
3.3. Hiển thịdòng Text . 23
3.4. Giao tiếp với người sửdụng . 24
3.5. Khai báo biến . 25
3.6. Kiểu dữliệu . 25
3.6.1. Kiểu nguyên (INTERGER) . 25
3.6.2. Kiểu dấu phNy động (FLOATING POINT) . 25
3.6.3. Kiểu LOGIC (BOOLEAN) . 25
3.6.4. Kiểu chuỗi (STRING) . 25
3.7. Các toán tử. 26
3.8. Cấu trúc lệnh . 27
3.8.1. Câu lệnh rẽnhánh . 27
3.8.2. Câu lệnh lặp . 28
3.8.3. Câu lệnh break và continue . 29
3.9. Hàm . 29
3.9.1. Khai báo hàm . 29
3.9.2. Các hàm có sẵn . 29
3.10. Các lệnh thao tác trên đối tượng . 29
3.10.1. for in . 29
3.10.2. new . 30
3.10.3. this . 31
3.10.4. with . 31
3.11. Khai báo dữliệu kiểu mảng . 32
3.12. Xửlý sựkiện . 32
3.13. Các đối tượng trong Javascript . 36
3.13.1. Đối tượng navigator . 37
3.13.2. Đối tượng window . 38
3.13.3. Đối tượng location . 40
3.13.4. Đối tượng frame . 40
3.13.5. Đối tượng DOCUMENT . 43
3.13.6. Đối tượng anchors . 44
3.13.7. Đối tượng FORMS . 44
3.13.8. Đối tượng HISTORY . 45
3.13.9. Đối tượng LINKS . 46
3.13.10. Đối tượng MATH . 46
3.13.11. Đối tượng DATE . 47
3.13.12. Đối tượng STRING . 48
3.13.13. Xem lại các lệnh và mởrộng . 49
3.14. Mô hình đối tượng (OBJECT MODEL) . 51
3.14.1. Đối tượng và thuộc tính . 51
3.14.2. Tạo các đối tượng mới . 52
3.15. Bài tập thực hành . 57
3.15.1. Bài Tập 1 . 57
3.15.2. Bài tập 2 . 57
3.15.3. Bài tập 3 . 57
3.15.4. Bài tập 4 . 58
3.15.5. Bài tập 5 . 59
3.15.6. Bài tập 6 . 60
3.15.7. Bài tập 7 . 62
3.15.8. Bài tập 8 . 63
3.15.9. Bài tập 9 . 64
3.15.10. Bài tập 10 . 65
3.15.11. Bài tập 11 . 66
3.15.12. Bài tập 12 . 67
3.15.13. Bài tập 13 . 69
3.15.14. Bài tập 15 . 70
3.15.15. Bài tập 15 . 70
3.15.16. Bài tập 16 . 71
3.15.17. Bài tập 17 . 72
3.15.18. Bài tập 18 . 72
Chương 4- Lập trình web động với ASP (Active Server Page) . 75
4.1. Giới thiệu ngôn ngữlập trình web động ASP . 75
4.2. Web Server IIS . 76
4.3. Cài đặt và chạy ứng dụng ASP đầu tiên . 79
4.3.1. Cấu hình cho Website trên IIS . 80
4.3.2 Viết các file ASP . 81
4.3.3 Dùng trình duyệt truy cập website . 81
4.4. Tóm tắt các cú pháp VBScript . 84
4.4.1. Response.write . 85
4.4.2. Biến . 85
4.4.3. Mảng . 85
Bài giảng môn học: Lập trình mạng
GV: Lê Anh Tú - Bộmôn Mạng & Truyền thông - Khoa CNTT - ĐHTN 3
4.4.4. Ghép chuỗi . 85
4.4.5. Hàm có sẵn . 86
4.4.6. Rẽnhánh . 88
4.4.7. Lặp . 88
4.4.8. Điều kiện and ,or, not . 89
4.4.9. Thủtục và hàm người dùng . 89
4.4.10. Sửdụng #include . 91
4.5. Các đối tượng căn bản . 91
4.5.1. Đối tượng Request . 91
4.5.2. Response . 93
4.5.3. Đối tượng Session . 93
4.5.4. Đối tượng Application . 94
4.5.5. File Global.asa .95
4.5.6. Đối tượng Dictionary . 96
4.5.7. Đối tượng Server . 96
4.5.7.1. Server.CreateObject . 96
4.5.7.2. Server.Mappath . 97
4.6. Sửdụng Database với ASP . 97
4.6.1. Các cú pháp căn bản đểtruy xuất dữliệu từDB . 97
4.6.2. Đối tượng Connection . 97
4.6.3. Đối tượng Recordset . 98
4.6.4. Tìm kiếm dữliệu trong database . 101
PHỤLỤC . 102
Phụlục 1: Bài tập truy nhập các điều khiển trên Form . 102
Phụlục 2: Thiết kếform đăng nhập cho phép lưu lại tên tài khoản và mật khNu . 104
Phụlục 3: Hiển thị ảnh quảng cáo và sốlượt truy cập . 107
Phụlục 4: Bài tập ADO, Phân trang với Recordset . 108
cessful !
Do you want
<%
'N han Logout de huy Cookies
if request.form("cmdLogout")"" then
response.cookies("Acc")("user")=""
response.cookies("Acc")("pass")=""
'Khong dung` Expires thi Cookies se bi huy
'ngay sau khi dong IE hien hanh`
response.redirect("Login1.asp")
end if
%>
2. Nâng cấp chương trình:
Yêu cầu kiểm tra tài khoản đang nhập có tồn tại trong CSDL không. Làm theo các bước sau:
(1) Tạo CSDL HOSO.MDB và bảng Account(ID(Autonumber), User(Text), Pass(Text))
(2) Viết file Connection.inc kết nối tới CSDL
Connection.inc
<%
Set Conn=Server.CreateObject("ADODB.Connection")
FilePath= Server.Mappath("Hoso.mdb")
StrConn="Provider=Microsoft.Jet.OLEDB.4.0; Data source=" & FilePath
Conn.Open StrConn
Set RS=Server.CreateObject("ADODB.Recordset")
%>
(3) Chèn đoạn mã sau đây vào trước thẻ trong file Login.asp
<%
ID=request.cookies("Acc")("user")
PWD=request.cookies("Acc")("Pass")
'Mo bang du lieu Account va chon ra dung TK da luu trong Cookies
StrSQL="Select * from Account Where (User='" & ID & "')AN D(Pass='" & PWD & "')"
RS.Open StrSQL,Conn
%>
(4) Sửa lại dòng gạch chân sau thẻ như sau:
<%
'Kiem tra neu da co Cookies thi dang nhap luon vao trang Home.asp
If not rs.eof then
response.redirect("Home.asp")
else
'N eu chua co Cookies thi cho hien giao dien dang nhap
%>
Bài giảng môn học: Lập trình mạng
GV: Lê Anh Tú - Bộ môn Mạng & Truyền thông - Khoa CNTT - ĐHTN 107
**************************************************
Phụ lục 3: Hiển thị ảnh quảng cáo và số lượt truy cập
Yêu cầu cho phép:
- Đếm số lượt người đã truy cập
- Hiển thị ảnh quảng cáo ngẫu nhiên
Yêu cầu: Sử dụng file Global.asa
(Ghi chú: Chuẩn bị sẵn 3 ảnh: 1.gif, 2.gif, 3.gif)
File Global.asa
<OBJECT ID="Dem" RUNAT="Server" SCOPE="Application"
PROGID="MSWC.Counters">
<OBJECT ID="Pic" RUNAT="Server" SCOPE="Application"
PROGID="MSWC.Adrotator">
File Quangcao.asp
<%
response.write "So luot ttruy cap website la:"
%>
<%
dem.Increment("k")
response.write dem.get("k")
%>
<%
=pic.GetAdvertisement("quangcao.txt")
‘noi dung file quangcao.txt nhu tren
%>
File Quangcao.txt
REDIRECT /login.asp
WIDTH 300
HEIGHT 300
BORDER 1
*
1.gif
Trang chu Viet Nam
60
2.gif
Ma nguon VB
40
3.gif
Trang tin tuc
20
Bài giảng môn học: Lập trình mạng
GV: Lê Anh Tú - Bộ môn Mạng & Truyền thông - Khoa CNTT - ĐHTN 108
Phụ lục 4: Bài tập ADO, Phân trang với Recordset
1. Tạo CSDL HOSO.MDB và thiết kế các bảng dữ liệu có cấu trúc như sau:
Tạo quan hệ giữa 2 bảng như sau:
2. Thiết kế trang DEFAULT.ASP cho phép hiển thị các thông tin về sinh viên như sau:
Chú ý:
- Sử dụng kỹ thuật phân trang
- Các chức năng ADD, EDIT, DELETE để thực hiên các chức năng thêm mới, sửa, xóa các bản
ghi
- Nhấn vào Mã SV cho phép liên kết đến trang xem tổng hợp thông tin cá nhân về SV đó (Ví dụ:
Profile.asp)
Bảng Sinhvien
Bảng Tinh
Bài giảng môn học: Lập trình mạng
GV: Lê Anh Tú - Bộ môn Mạng & Truyền thông - Khoa CNTT - ĐHTN 109
3. Yêu cầu thiết giao diện các trang thêm mới và sửa như sau:
- Giao diện cập nhật SV mới
- Giao diện thay đổi thông tin cá nhân 1 SV đã nhập
MÃ NGUỒN MẦU
File Connection.inc
<%
FilePath=Server.Mappath("Hoso.mdb")
Set Conn=Server.CreateObject("ADODB.COnnection")
StrConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FilePath
Conn.Open strConn
Set RS=Server.CreateObject("ADODB.Recordset")
%>
File Default.asp
<%
'Su dung Query trong Access de tao xau truy van nhu duoi day
StrSQL="SELECT SinhVien.*, [Tinh].[Tentinh] FROM Tinh INNER JOIN SinhVien ON
[Tinh].[MaTinh]=[SinhVien].[MaTinh];"
'Dat thuoc tinh cho RS co kha nang phan trang
RS.CursorLocation=3
RS.Pagesize=3
RS.Open StrSQL,Conn,0,1
'Xac dinh trang hien thoi
Session("CurrenPage")=1
If request("PageID")"" then
Session("CurrenPage")=Cint(request("PageID"))
End if
If not(RS.eof or RS.bof) then
RS.Absolutepage=Session("CurrenPage")
End if
%>
Bài giảng môn học: Lập trình mạng
GV: Lê Anh Tú - Bộ môn Mạng & Truyền thông - Khoa CNTT - ĐHTN 110
Phân trang với RS
DANH SACH SINH VIEN
Page of
STT
Sửa
Xóa
Mã SV
Họ và tên
Giới tính
Tuổi
Ngày vào đoàn
Tên Tỉnh
Sở thích
<%
i=RS.Pagesize*(Session("CurrenPage")-1)
While not RS.eof and RS.AbsolutePage=Session("CurrenPage")
i=i+1
%>
checked name="RdoSua">
>
>
<%
If RS.Fields("Gioitinh") then
Response.Write("Nam")
Else
Response.Write("Nu")
End if
%>
<%
RS.MoveNext
Wend
%>
<%If Session("CurrenPage")=1 then
Response.write("Back")
Else%>
Bài giảng môn học: Lập trình mạng
GV: Lê Anh Tú - Bộ môn Mạng & Truyền thông - Khoa CNTT - ĐHTN 111
>Back
<%
k1=Session("CurrenPage")-1
k2=Session("CurrenPage")+1
If k1<1 then k1=1
If k2>RS.PageCount then k2=RS.PageCount
For i=k1 to k2
Response.write (" ")
If i=Session("CurrenPage") then
Response.write(i)
Else%>
>
<%End if
Next
%>
<%If Session("CurrenPage")=RS.PageCount then
Response.write("Next")
Else%>
>Next
<%End if
RS.Close
%>
File Xuly_Default.asp
<%
if request.form("cmdAdd")"" then
response.redirect("Them.asp")
end if
if request.form("cmdEdit")"" then
session("MaSV")=request.form("rdoSua")
response.redirect("Sua.asp")
end if
if request.form("cmdDelete")"" then
%>
<%
end if
%>
File Them.asp
<%
StrSQL="Select * from Tinh Order By Tentinh"
RS.Open StrSQL,Conn
%>
Bài giảng môn học: Lập trình mạng
GV: Lê Anh Tú - Bộ môn Mạng & Truyền thông - Khoa CNTT - ĐHTN 112
Thêm mới SV
CẬP NHẬT SINH VIÊN
Mã SV
HỌ và tên
Giới tính
Nam
Nữ
Tuổi
Ngày vào đoàn
selected value=>
selected value=>
>
Tỉnh
<%
While not Rs.eof
%>
>
<%
RS.MoveNext
Wend
RS.Close
%>
Sở thích
Du lịch
Thể thao
Xem TV
Ca nhạc
Bài giảng môn học: Lập trình mạng
GV: Lê Anh Tú - Bộ môn Mạng & Truyền thông - Khoa CNTT - ĐHTN 113
File Xuly_them.asp
<%
StrSQL="Select * from Sinhvien"
RS.Open StrSQL,Conn,1,3
RS.AddNew
RS.Fields("MaSV")=request.form("txtMaSV")
RS.Fields("Hoten")=request.form("txtHoten")
RS.Fields("MaSV")=request.form("txtMaSV")
If Request.form("rdoGT")="Nam" then
RS.Fields("Gioitinh")=True
else
RS.Fields("Gioitinh")=False
End if
RS.Fields("Tuoi")=request.form("txtTuoi")
ND=request.form("optThang")&"/"&request.form("optNgay")&"/"&request.form("optNam")
RS.Fields("NgayDoan")=Cdate(ND)
RS.Fields("Matinh")=request.form("optTinh")
RS.Fields("Sothich")=request.form("chkST")
RS.Update
RS.Close
response.redirect("Default.asp")
%>
File Sua.asp
<%
StrSQL="Select * from Tinh Order By Tentinh"
RS.Open StrSQL,Conn
StrSQL1="Select * from Sinhvien Where MaSV='" & session("MaSV") & "'"
Set RS1=Server.CreateObject("ADODB.Recordset")
RS1.Open StrSQL1,Conn
%>
Sửa thông tin SV
SUA THÔNG TIN SINH VIÊN
Mã SV
Họ và tên
>
Giới tính
checked
name="rdoGT">Nam
Bài giảng môn học: Lập trình mạng
GV: Lê Anh Tú - Bộ môn Mạng & Truyền thông - Khoa CNTT - ĐHTN 114
checked
value="Nu">Nữ
Tuổi
>
Ngày vào đoàn
selected
value=>
selected
value=>
selected
value=>
Tỉnh
<%
While not Rs.eof
%>
Selected
value=>
<%
RS.MoveNext
Wend
%>
Sở thích
<input type="checkbox" name="chkST" value="Du lich" <%if
instr(Ucase(rs1.fields("Sothich")),ucase("Du lich"))>0 then%> checked >Du lịch
<input type="checkbox" name="chkST" value="The thao" <%if
instr(Ucase(rs1.fields("Sothich")),ucase("The thao"))>0 then%> checked >Thể thao
<input type="checkbox" name="chkST" value="Xem TV" <%if
instr(ucase(rs1.fields("Sothich")),ucase("Xem TV"))>0 then%> checked >Xem TV
<input type="checkbox" name="chkST" value="Ca nhac" <%if
instr(ucase(rs1.fields("Sothich")),ucase("Ca nhac"))>0 then%> checked >Ca nhạc
Bài giảng môn học: Lập trình mạng
GV: Lê Anh Tú - Bộ môn Mạng & Truyền thông - Khoa CNTT - ĐHTN 115
<%
rs.Close
rs1.Close
%>
File Xuly_sua.asp
<%
StrSQL="Select * from Sinhvien Where MaSV='" & session("MaSV") & "'"
RS.Open StrSQL,Conn,1,3
RS.Fields("Hoten")=request.form("txtHoten")
If Request.form("rdoGT")="Nam" then
RS.Fields("Gioitinh")=True
else
RS.Fields("Gioitinh")=False
End if
RS.Fields("Tuoi")=request.form("txtTuoi")
ND=request.form("optThang")&"/"&request.form("optNgay")&"/"&request.form("optNam")
RS.Fields("NgayDoan")=Cdate(ND)
RS.Fields("Matinh")=request.form("optTinh")
RS.Fields("Sothich")=request.form("chkST")
RS.Update
RS.Close
response.redirect("Default.asp")
%>
File Xoa.asp
<%
For i=1 to request.form("chkXoa").Count
If request.form("chkXoa")(i)"" then
StrSQL="Select * from SinhVien Where MaSV='" & request.form("chkXoa")(i) & "'"
RS.Open StrSQL,Conn,1,3
RS.Delete
RS.Close
end if
next
Response.redirect("Default.asp")
%>
File Profile.asp
<%
StrSQL="SELECT SinhVien.*, Tinh.* FROM Tinh INNER JOIN SinhVien ON
[Tinh].[MaTinh]=[SinhVien].[MaTinh] WHERE MaSV=' " & request("MaSV_ID") & " ' “
RS.Open StrSQL,Conn
Response.write "Mã SV: " & RS.fields("MaSV") & ""
Response.write "Họ tên: " & RS.fields("Hoten") & ""
Response.write "Giới tính: "
If rs.fields("Gioitinh") then
Response.write "Nam" & ""
else
Response.write "Nữ" & ""
end if
Response.write "Tuổi: " & RS.fields("Tuoi") & ""
Response.write "Ngày vào đoàn: " & RS.fields("Ngaydoan") & ""
Response.write "Tỉnh/Tp: " & RS.fields("Tentinh") & ""
Response.write "Sở thích: " & RS.fields("Sothich") & ""
%>
Quay lại
File đính kèm:
Bài giảng Lập trình mạng - Lê Anh Tú.pdf
