Hello
Trang web sau lưu Web Server Khi người dùng muốn xem trang web họ dùng trình duyệt gửi yêu cầu đến server cách gõ vào địa URL ví dụ : http://localhost/index.html Lúc Web Server nhận yêu cầu tìm kho liệu trang web index.html tương ứng gửi cho client, sau trang web hiển thị trình duyệt Đó cách hoạt động web tĩnh Hình 1.1 Cách hoạt động web tĩnh Chương 1: Giới thiệu ASP Trang web tĩnh tiện lợi đáp ứng nhu cầu ứng dụng web, đặc biệt yêu cầu tương tác client web server Có nhiều tình mà nội dung trang web khơng phải lúc soạn thảo lưu trữ sẵn mà cần sinh cách tự động tùy thuộc vào ngữ cảnh; có xử lý phức tạp việc server đơn giản trả trang html nhận yêu cầu từ người dùng, ví dụ phải thu thập thơng tin mà người dùng gửi lên qua URL hay form, truy cập liệu database Lấy ví dụ muốn xây dựng trang web Login.htm yêu cầu người sử dụng nhập tên username, sau submit web server gửi người dùng trang web Result.html có nội dung : Welcome username! Dễ dàng thấy trang Result.htm khơng thể soạn thảo sẵn ứng với username mà người dùng nhập vào, trang có nội dung khác Hình 1.2 Trang Result.html có nội dung khác tùy vào tương tác client webserver Nó khơng thể soạn thảo sẵn! Nghĩa trang web tĩnh khơng có khả tương tác với người dùng Trong thực tế có nhiều trường hợp thường gặp giới web đòi hỏi tương tác mà web tĩnh giải ( chat, forums, web mail, trang tin tức, giỏ hàng, thông tin thời tiết ngày, tỷ giá ngoại tệ hàng ngày) Để giải vấn đề người ta sử dụng ngơn ngữ lập trình web để hỗ ASP trợ tương tác client server Chúng file có chứa mã lập trình, tạo trang web động, cho phép trả cho client trang web có nội dung thay đổi cách linh động ứng với ngữ cảnh cụ thể, thu thập phản hồi với thông tin mà người dùng gửi lên server (thông qua form hay URL), truy cập liệu database Một số ngơn ngữ lập trình web động phổ biến gồm ASP, PHP, Java, net ASP (Active Server Pages) ngơn ngữ lập trình web viết hãng Microsoft, phổ biến hệ điều hành Microsoft Windows Các trang web viết ngơn ngữ có phần mở rộng asp (ví dụ HelloWorld.asp) thay htm hay html Nội dung file ASP giống file Html bình thường, bao gồm cú pháp html trộn lẫn mã lập trình ASP (cịn gọi script, viết VBScript hay JavaScript) Các Script ASP thực thi server Có thể nói trang ASP kết hợp thẻ html, script ActiveX Component Script trộn lẫn thẻ html nằm cặp dấu 1.2 Web Server IIS Thông thường người ta dùng ASP với Web Server có tên Internet Information Services (IIS) Microsoft Đây thành phần có sẵn hệ điều hành Windows 2000 XP Nếu máy tính chưa cài đặt vào Control Panel => Add/remove programs=> Add/remove Windows Components=>Internet Information Services (IIS) chọn cài đặt thành phần Chương 1: Giới thiệu ASP 1.3 Cài đặt chạy ứng dụng ASP Để bắt đầu chạy website viết ngôn ngữ ASP thực bước sau: • Cài đặt web server IIS ( phần trên) start IIS • Cấu hình cho website cách tạo Virtual Directory Web Server • Viết file ASP save vào thư mục cấu hình cho website server • Dùng trình duyệt (như Internet Explorer) client yêu cầu file ASP hiển thị kết trả 1.3.1 Cấu hình cho Website IIS Sau start IIS mặc định web server phục vụ địa http://localhost (địa máy local, giống địa website kiểu http://www.yahoo.com Internet) Chúng ta tạo thư mục ảo (Virtual Directory) web server để chứa ứng dụng web, ví dụ http://localhost/test “test” gọi Alias Virtual Directory Vậy để lưu trữ trang ASP server trước hết ta tạo Virtual Directory với Alias thư mục tương ứng upload file ASP vào thư mục này, sau truy cập trang ASP thông qua địa http://localhost/Alias Cách tạo Virtual Directory IIS: Vào Web Server từ Control Panel=> Administrative Tools=>Internet Services Manager (hoặc Computer Management)=> Default Website (nếu thấy stop start lên) => New=> Virtual Directory (làm theo wizard, chọn tham số Alias: tên Virtual Directory ví dụ “test”, Directory: thư mục chứa Website ví dụ “C:\Web”) ASP Hình 1.4 Tạo Virtual Directory IIS Sau kết thúc wizard có Virtual Directory sẵn sàng web server Hãy save trang asp vào thư mục “c:\Web” Địa truy cập vào website trường hợp là: http://localhost/test/ Một cách khác tương tự dễ thao tác nhấn chuột phải vào thư mục C:\web, chọn Properties => Web sharing => Share this folder=> Add Alias 1.3.2 Viết file ASP Script viết cặp thẻ , bắt đầu thẻ mở Chúng ta soạn trang ASP chương trình soạn thảo notepad, Frontpage, Dreamweaver Ví dụ, tạo file Hello.asp để hiển thị lời chào Hello hình, save vào thư mục “c:\Web” New Page 1 Chương 1: Giới thiệu ASP Câu lệnh response.write cho phép hiển thị chuỗi trang web Chú thích lập trình ASP viết sau dấu nháy đơn ‘ Mã lập trình ASP viết trộn lẫn thẻ HTML 1.3.3 Dùng trình duyệt truy cập website Mở trình duyệt (ví dụ Internet Explorer), địa gõ địa sau để truy cập vào trang Asp ta tạo ra: http://localhost/test/Hello.asp Lưu ý trang asp phải chạy web server open trực tiếp với browser trang html Webserver xử lý người dùng yêu cầu trang ASP: Không giống html, người dùng yêu cầu trang html, web server tìm kho liệu trả file html để browser hiển thị lại phía client Khi người dùng yêu cầu trang Asp, IIS server chuyển trang ASP cho phận xử lý gọi ASP engine Engine đọc mã nguồn file asp theo dòng, thực thi script file Cuối file ASP trả cho người dùng dạng trang html túy (khơng cịn mã script) giống trang web tĩnh Nếu xem lại mã nguồn trang browser thấy đoạn code asp file dịch thành liệu html bình thường Hình 1.5 ASP engine xử lý file asp trước trả cho browser ASP Hình 1.6 Trang ASP sau thực thi trả cho client dạng trang web tĩnh.Browser không xem mã nguồn trang ASP Bây quay lại toán Login Ta soạn thảo trang Login.html trang Result.asp sau: Login.html New Page 1Username:
Result.asp New Page 1 Một số ví dụ khác: Hiển thị ngày server Chương 1: Giới thiệu ASP New Page 2 Kết quả: 7/5/2005 12:21:57 PM Hiển thị năm tháng: Kết quả: Year: 2005 Month:7 1.3 Tóm tắt cú pháp VBScript Mã lệnh ASP viết VBScript JavaScript (đọc thêm tài liệu ngôn ngữ này) Các script ASP thực thi server nằm cặp dấu Bên chứa biểu thức, hàm, tốn tử, lệnh hợp lệ ngơn ngữ Script tương ứng Ở tìm hiểu vắn tắt cách sử dụng ASP để lập trình web động VBScript 1.3.1 Response.write để gửi nội dung cho trình duyệt ta dùng lệnh Response.write viết ngắn gọn 1.3.2 Biến Biến dùng để lưu trữ thơng tin Biến có phạm vi cục bộ, khai báo bên hàm hay thủ tục có tác dụng hàm hay thủ tục đó, khai báo phạm vi tồn trang ASP tác dụng có phạm vi tồn trang ASP, nhiên khơng có tác dụng trang ASP khác Ví dụ trang Hello.asp ta có biến x có giá trị 3, trang Index.asp ta dùng lệnh khơng kết qủa biến x trang Hello.asp không hiểu trang Index.asp Tương tự biến khai báo hàm, khơng có tác dụng bên ngồi hàm Biến khai báo sử dụng bên trang asp dùng Biến không bắt buộc phải khai báo ASP Trong asp không khai báo kiểu biến Asp vào việc sử dụng biến mà định xem nên xử lý biến kiểu Để kiểm sốt xác biến theo kiểu mong muốn, dùng hàm chuyển đổi kiểu Để định nghĩa biến có phạm vi sử dụng nhiều trang ASP ứng dụng Web, ta dùng biến session application (xem đối tượng session application) 1.3.3 Mảng Mảng dùng để lưu trữ liệu theo dãy phần tử 1.3.4 Ghép chuỗi Để ghép chuỗi với ta dùng dấu & 1.3.5 Hàm có sẵn VBScript hỗ trợ sẵn số hàm Ví dụ hàm “now”sau trả thời gian server 1.3.5.1 Các hàm chuyển đổi kiểu Các hàm cho phép chuyển đổi kiểu liệu Cdate: Chuyển sang kiểu ngày tháng Cint: Chuyển sang kiểu Integer Cstr: Chuyển sang kiểu string Các hàm khác : Cbyte, Cdbl,CSng, Cbool, Ccur, 1.3.5.2 Các hàm format Các hàm cho phép định dạng liệu FormatDateTime FormatCurrency FormatNumber FormatPercent 1.3.5.3 Các hàm toán học: Int: lấy phần nguyên số Các hàm khác : Abs, Atn, Cos, Exp, Fix, Hex, Log, Oct, Rnd, Randomize, Round, Sin, Sqr, Tan 1.3.5.4 Các hàm thao tác với chuỗi Len: Lấy chiều dài chuỗi Ucase, Lcase: Chuyển chữ hoa thành chữ thường ngược lại Ltrim, Rtrim, Trim: cắt bỏ khoảng trắng thừa Left, Mid, Right: Lấy chuỗi chuỗi lớn 10 %> 1.3.8 Điều kiện and ,or, not 12) and (h 1.3.9 Thủ tục hàm người dùng Cũng ngôn ngữ lập trình khác, VBScript cho phép người dùng định nghĩa sử dụng thủ tục ,hàm Nhờ chương trình chia thành module nhỏ tạo nên cấu trúc lập trình sáng sủa (phương pháp chia để trị) Chẳng hạn với toán ASP cần thực việc hiển thị liệu từ Database hình, ta xây dựng thủ tục hay hàm thực nhiệm vụ đó: - Thủ tục KetNoi - Thủ tục HienThi - Thủ tục HuyKetNoi Như phần chương trình sáng sủa, việc gọi thủ tục: 1.3.9.1 Thủ tục Thủ tục thực nhóm câu lệnh Để viết thủ tục theo cấu trúc sau: Ví dụ sau xây dựng chương trình đăng nhập gồm file: Form.asp (hiển thị form để người dùng nhập username password), Xulyform.asp (xử lý form, username=”test” password=”test” thơng báo đăng nhập thành cơng, khơng thơng báo đăng nhập thất bại) File Xulyform.asp viết thủ tục gọi thủ tục này: Form.asp Chương 1: Giới thiệu ASP 13 Xulyform.asp 1.3.9.2 Hàm Hàm khác với thủ tục trả kết Để viết hàm viết theo cấu trúc sau: Chú ý nội dung hàm phải có lệnh trả kết quả: TenFunction= Với toán đăng nhập viết lại sau (file xulyform.asp dùng hàm) Form.asp Xulyform.asp ‘ gọi hàm 1.3.10 Sử dụng #include Trong trường hợp muốn trộn mã nguồn từ file asp vào file asp khác trước server thực thi nó, người ta dùng thẻ định hướng #include với cú pháp Một số ứng dụng #include người ta thường include file chứa hàm thư viện dùng chung cho ứng dụng vào đầu file Asp cần sử dụng thư viện này, insert file Header Footer cho trang web, insert thành phần sử dụng chung nhiều file asp menu, Ví dụ ứng dụng ASP có nhiều trang cần thao tác với database, viết riêng module thao tác với database file myConnection.asp, include file vào trang asp muốn thao tác với database 1.4 Các đối tượng Đối tượng nhóm hàm biến Một số đối tượng xây dựng sẵn sử dụng mà không cần khởi tạo: Request, Response, Session, Application, Server Một số đối tượng cần khởi tạo muốn sử dụng Dictionary, Connection, Recordset 1.4.1 Đối tượng Request Request Response đối tượng dùng nhiều lập trình ASP, dùng trao đổi liệu trình duyệt server Request cho phép lấy thông tin từ client Khi browser gửi yêu cầu trang web lên server ta gọi request Chương 1: Giới thiệu ASP 15 Chúng ta thường sử dụng lệnh request sau: 1.4.1.1 Request.QueryString Cho phép server lấy giá trị gửi từ người dùng qua URL form (method GET) Ví dụ trang home.asp đặt dòng liên kết sang trang gioithieu.asp với thẻ sau: Nhấn vào để sang trang giới thiệu biến “tacgia” có giá trị “Tran Van A” người dùng gửi tới server kèm theo URL (người dùng gõ thẳng địa “http://localhost/alias/gioithieu.asp?tacgia=Tran Van A” Address trình duyệt) Server muốn nhận lại giá trị dùng request.QueryString trang gioithieu.asp Hình 1.7 Tương tự người dùng gửi giá trị Tran Van A thông qua biến form chọn method GET 16 ASP 1.4.1.2 Request.Form Cho phép server lấy giá trị gửi từ người dùng qua form (method POST) Chẳng hạn file form.asp: File xulyform.asp làm nhiệm vụ xử lý thông tin từ Form dùng câu lệnh request.form để nhận lại thông tin người dùng gõ vào: response.write “Tên người dùng là: ”&x %> 1.4.2 Response Đối tượng Response dùng để gửi đáp ứng server cho client Chúng ta thường dùng số lệnh Response sau: 1.4.2.1 Response.Write Đưa thơng tin hình trang web Ví dụ để đưa câu chào Hello hình ta dùng lệnh sau: Hiển thị thời gian server hình: now hàm lấy ngày hệ thống server 1.4.2.2 Response.Redirect Chuyển xử lý sang trang Asp khác Ví dụ trang xulyform.asp sau kiểm tra form đăng nhập thấy người dùng khơng có quyền vào website chuyển cho file Error.asp(file hiển thị thơng báo lỗi user khơng có quyền truy cập) 1.4.2.3 Response.End Ngừng xử lý Script Dùng lệnh muốn dừng xử lý vị trí bỏ qua mã lệnh ASP phía sau Đây cách hay dùng số tình huống, chẳng hạn debug lỗi 1.4.3 Đối tượng Session Session phiên làm việc người dùng web server, bắt đầu người lần truy cập tới trang web website kết thúc người rời khỏi website khơng tương tác với website khoảng thời gian định (time out) Như thời điểm website có người truy cập có nhiêu phiên ứng với người, phiên độc lập Để lưu thông tin tác dụng Chương 1: Giới thiệu ASP 17 phiên, người ta dùng đối tượng Session, ví dụ user bắt đầu session với việc login vào hệ thống, user login cần hệ thống ghi nhớ toàn phiên làm việc (nhằm tránh việc người dùng phải đăng nhập lại đưa request).Giá trị biến kiểu session có phạm vi tất trang ASP ứng dụng, khơng có tác dụng phiên làm việc khác Ví dụ, sử dụng biến session sau đếm số lần người truy cập vào trang web: Home.asp session(“x”) đại diện cho số lần mà user truy cập vào trang home.asp Với người dùng khác giá trị session(“x”) lại khác Thật , A truy cập 10 lần (session(“x”) =10) B truy cập lần (session(“x”) =2) Server kết thúc hủy bỏ đối tượng session khi: - Người dùng không triệu gọi trang ứng dụng cập nhật làm (refresh) lại thông tin trang thời gian định Khi session hết thời gian hiệu lực xem hết hạn sử dụng ,tất biến lưu session thân session bị hủy bỏ Có thể kiểm tra tăng giảm thời gian Timeout Session tính giây sau: - Trang ASP gọi đến phương thức Abandon Session Việc khởi tạo kết thúc biến session viết hàm kiện Session_OnStart Session_OnEnd định nghĩa file global.asa 1.4.4 Đối tượng Application Application đại diện cho toàn ứng dụng, bao gồm tất trang web website Để lưu trữ thơng tin có tác dụng tồn ứng dụng, tức có giá trị tất trang asp tất phiên, người ta dùng đối tượng Application Điểm khác biến application so với biến session session có tác dụng phiên, cịn biến application có tác dụng với phiên Ví dụ, để đếm xem có người truy cập vào website, dùng biến Application Mỗi người dùng truy cập vào website ta tăng biến lên đơn vị để có thêm người truy cập Trang home.asp muốn hiển thị số người truy cập cần in giá trị biến Với phiên khác giá trị application(“x”) Thật , A 18 ASP B truy cập vào trang home.asp thấy: “Số người truy cập vào website 3” (trong trường hợp application(“x”) =3) Việc khởi tạo kết thúc biến application viết hàm kiện Application_onStart Application_onEnd định nghĩa file global.asa Khóa Application: Do biến application dùng chung nhiều phiên nên có trường hợp xảy xung đột có phiên thay đổi giá trị biến application Để ngăn chặn điều dùng phương thức Application.lock để khóa biến application trước thay đổi Sau sử dụng xong biến giải phóng khóa phương thức application.unlock (xem ví dụ sau) 1.4.5 File Global.asa File file tùy chọn chứa khai báo đối tượng, biến có phạm vi tồn ứng dụng Mã lệnh viết dạng Script Mỗi ứng dụng phép có nhiều file Global.asa, nằm thư mục gốc ứng dụng Người ta thường dùng global.asa trường hợp muốn có xử lý session bắt đầu hay kết thúc, application bắt đầu hay kết thúc, thông qua hàm kiện : Application_Onstart : hàm kiện xảy ứng dụng asp bắt đầu hoạt động, tức người dùng truy cập tới trang web ứng dụng hoạt động Session_Onstart: hàm kiện xảy có người dùng truy cập vào ứng dụng (bắt đầu session) Session_OnEnd: hàm kiện xảy người dùng kết thúc session họ Application_OnEnd: hàm kiện xảy ứng dụng dừng File Global.asa có cấu trúc sau: Sub Application_OnStart ‘ End sub Sub Application_OnEnd ‘ End Sub Sub Session_OnStart ‘ Application("x")=Application("x")+1 End sub Sub Session_OnEnd ‘ End Sub Chương 1: Giới thiệu ASP 19 Ví dụ sau đếm số người dùng truy cập website Số người dùng lưu trữ biến Application(“songuoi”) Ở đâu ứng dụng muốn hiển thị số người dùng việc chèn lệnh hiển thị nó: Ngồi ứng dụng cho phép đếm số lần người truy cập website phiên làm việc họ Số lần lưu trữ biến Session(“solan”) Global.asa Sub Application_OnStart Application("songuoi")=0 End Sub Sub Session_OnStart Application.Lock Application("songuoi")=Application("songuoi")+1 Application.UnLock Session(“solan”)=0 End Sub Sub Session_OnEnd Application.Lock Application("songuoi")=Application("songuoi")-1 Application.UnLock End Sub Sub Application_OnEnd End Sub Home.aspCó người truy cập website
Bạn truy cập trang lần!
20 ASP 1.4.6 Đối tượng Dictionary Đối tượng Dictionary lưu trữ thơng tin theo cặp khóa/ giá trị Nó giống với mảng có khả xử lý linh hoạt cặp liệu có quan hệ kiểu từ điển (cặp khóa/ giá trị ví dụ : mã Sinh viên/ tên Sinh viên), khóa xem từ cần tra giá trị nội dung từ tra từ điển Muốn sử dụng đối tượng Dictionary phải khởi tạo nó: Một số ứng dụng đối tượng dùng mô giỏ hàng chứa hàng hóa(shopping cart) với cặp khóa/giá trị :ProductID/Quantity (xem chương 2), sổ địa với cặp khóa/giá trị là: CustomerName/Address 1.4.7 Đối tượng Server Đối tượng Server dùng để truy cập thuộc tính phương thức server Ta thường dùng lệnh sau 1.4.7.1 Server.CreateObject khởi tạo đối tượng Ví dụ: Tạo đối tượng Connection: Tạo đối tượng Dictionary: 1.4.7.2 Server.Mappath biến đường dẫn tương đối thành tuyệt đối Ví dụ: Sẽ cho kết quả: “C:\WEB\nhanvien.mdb” trường hợp file nhanvien.mdb nằm thư mục C:\WEB Ta thường áp dụng server.mappath trường hợp xử lý đường dẫn tương đối, ví dụ chuỗi kết nối vào database connstr="provider=microsoft.jet.oledb.4.0; data source="&server.mappath("nhanvien.mdb")&";" 1.5 Sử dụng Database với ASP Hầu hết ứng dụng Web động lưu trữ liệu Database Vì thao tác kết nối vào Database, xem, thêm, sửa, xóa liệu bảng phần quan trọng ngơn ngữ lập trình web ASP Chúng ta học kỹ thuật sử dụng Asp để thao tác với liệu Database thông qua kiến trúc ADO Chương 1: Giới thiệu ASP 21 1.5.1 Các cú pháp để truy xuất liệu từ DB Để thao tác với liệu bảng DB, có thao tác với câu lệnh SQL tương ứng sau: (Lấy ví dụ với Database cụ thể Quanlyhocvien.mdb, có bảng HosoHocVien (MaHV:text, Ten: text) 1.5.1.1 Lựa chọn Lấy tất ghi bảng: “Select * from HosoHocVien” Nếu lựa chọn có điều kiện: “Select * from HosoHocVien where MaHV=’10’ “ Nếu lựa chọn số trường bảng: “Select Ten from HosoHocVien where MaHV=’10’ ” 1.5.1.2 Thêm liệu vào bảng “Insert into HosoHocVien values (‘001’,’Tran Van A’) “ 1.5.1.3 Sửa liệu “Update HosoHocVien set Ten=’Tran Van B’ where MaHV=’001’ “ 1.5.1.3 Xoá liệu “Delete from HosoHocVien where MaHV=’001’ “ Chúng ta sử dụng lệnh SQL phức tạp để có kết mong muốn sử dụng lệnh join, order by, group by, having 1.5.2 Đối tượng Connection Đối tượng Connection cho phép tạo kết nối đến DB Các bước sử dụng Connection: - Khai báo đối tượng Connection - Khởi tạo - Tạo chuỗi kết nối - Mở Connection với chuỗi kết nối - Sử dụng Connection - Đóng Hủy Connection Ví dụ sau kết nối đến database Access QuanlyHocvien.mdb (database nằm thư mục với file Asp) 22 ASP (chuỗi “stringconn=…” viết dịng, đó: “… data source = …”chú ý có dấu cách “data” “source”, chuỗi với Access) 1.5.3 Đối tượng Recordset Đối tượng Recordset thường dùng để xem, thêm, sửa, xóa ghi bảng liệu Database Nó trỏ đến tập hợp ghi kết trả từ câu lệnh select Các bước sử dụng đối tượng Recordset : - Khai báo đối tượng Recorset - Khởi tạo - Tạo sql query - Mở Recordset với chuỗi sql query connection mở - Sử dụng Recordset - Đóng Hủy Recordset Ví dụ sau cho phép lấy ghi bảng hiển thị trang web Chúng ta kết hợp script thẻ html để liệu hiển thị trang web với giao diện theo ý muốn : MA HOC VIEN TEN Chương 1: Giới thiệu ASP 23 Sau ví dụ hoàn chỉnh liệt kê user bảng tblUser trang web: Connection.asp ListUser.asp IDUsernameAddress Thông thường người sử dụng nhập từ khố cần tìm kiếm vào trường form ta việc dùng lệnh request.form để lấy lại từ khố cần tìm kiếm đưa vào câu lệnh SQL Chẳng hạn người sử dụng nhập từ khố cần tìm vào trường “Ten” form mở bảng câu lệnh SQL sau: Nếu khơng tìm thấy ghi giá trị rs.EOF true Chương 1: Giới thiệu ASP 27 ... báo đăng nhập thất bại) File Xulyform .asp viết thủ tục gọi thủ tục này: Form .asp Chương 1: Giới thiệu ASP 13 ... thuật sử dụng Asp để thao tác với liệu Database thông qua kiến trúc ADO Chương 1: Giới thiệu ASP 21 1.5.1 Các cú pháp để truy xuất liệu từ DB Để thao tác với liệu bảng DB, có thao tác với câu... Information Services (IIS) chọn cài đặt thành phần Chương 1: Giới thiệu ASP 1.3 Cài đặt chạy ứng dụng ASP Để bắt đầu chạy website viết ngôn ngữ ASP thực bước sau: • Cài đặt web server IIS ( phần