ngayxua
12-01-2007, 09:13 AM
ASP & lập trình máy chủ
Mạng máy tính ngày nay đã trở thành một thành phần quan trọng trong ngành truyền thông và cuộc sống hàng ngày. Song song với việc phát triển của mạng là sự phát triển của một hớng mới trong lập trình. đó là lập trình mạng. Sự bùng nổ thông tin trên toàn càu, sự ra đời của Web đặt ra yêu cầu phải xử lý thông tin một cách nhanh chóng, chính xác giữa các Web server với client.
Để giải quyết vấn đề này, một trong những công cụ lập trình máy chủ phổ biến hiện nay là ASP. Bài viết không đi vào chi tiết các thủ thuật lập trình mà cung cấp cho bạn đọc một cái nhìn tổng quát, nguyên lý về ASP cũng nh sẽ so sánh nó với một số ngôn ngữ lập trình máy chủ khác nh Perl, CGL, Rexx, Python.
ASP là gì ?
Microsoft Active Server Pages (ASP) không hẳn là một ngôn ngữ lập trình, Microsoft gọi nó là môi trờng server-side scripting, môi trờng này cho phép tạo và chạy các các ứng dụng Web server động, tơng tác và có hiệu quả cao. Để làm việc trong môi trờng này, các ASP coder thờng sử dụng VBScript hoặc JavaScript, cả hai loại này đều tự động hỗ trợ ASP.
Trong các HTML, mỗi tag đợc bắt đầu và kết thúc bởi cặp "< />" , ASP cũng tơng tự nh vậy. Để đánh dấu nơi nào ASP script bắt đầu và kết thúc dùng cặp lệnh "<% %>".
Các đoạn ASP script có thể xuất hiện ở mọi nơi trong trang HTML, ASP & HTML có sự gắn bó chặt chẽ với nhau. Với ASP ta có thể chen các script thực thi đợc vào trực tiếp các file HTML. Khi đó việc tạo ra trang HTML và xử lý script trở nên đồng thời, điều này cho phép tạo ra các tơng tác của Websife một cách linh hoạt uyển chuyển, có thể chen các thành phần HTML động vào trang Web tuỳ vào từng trờng hợp cụ thể.
VBScript là ngôn ngữ mặc định của ASP nếu muốn sử dụng một ngôn ngữ khác thì chúng ta cần phải định nghĩa ngôn ngữ. Tại đầu trang thêm dòng : <%@LANGUAGE=tên ngôn ngữ%>
VBScript dễ học và rất tiện lợi nếu chúng ta đã học qua VB, các ví dụ trong bài báo này đều viết bằng VBScript. Các ASP script đợc viết và đặt trong các file có phần mở rộng là ".asp". Khi cho script chạy, ví dụ nh: http://msdn.microsoft.com/default.asl) thì mọi quá trình xử lý của file default.asp sẽ diễn ra trên server thay vì chạy ở client, Web server sẽ làm mọi công việc cần thiết để tạo ra một trang kết quả dạng HTML, nh thế không cần phải bận tâm rằng các Web browser có thể xử lý trang Web hay không vì server đã làm mọi việc.
Các tính chất và u điểm của ASP
Các ASP script thông thờng chỉ chạy trên các server cài IIS (Microsoft Internet Information Server). Quy trình nh sau: khi một user thông qua trình duyệt Web gửi yêu cầu tới một file .asp ở server thì script chứa trong file đó sẽ đợc chạy trên server và trả kết quả về cho browser đó. Khi Web server nhận đợc yêu cầu tới một file .asp thì nó sẽ đọc từ đầu tới cuối file .asp đó, thực hiện các lệnh script trong đó và trả kết quả về cho Web blowser là một trang HTML. Do môi trờng hoạt động là mạng nên một script ASP khi đợc viết ra có thể sử dụng đợc ở mọi nơi, không cần trình biên dịch hay kết nối . Các ASP script đợc viết dựa trên các ngôn ngữ hớng đối tợng nên rất tiện lợi, sẵn có các object đi kèm nh: Request, Response, Application, Server, Session. Tận dụng đợc các ActiveX components nh : Database access , Content linking, Collaboration Data Object, Browser capabilities, File Access, ... Hơn nữa nó cũng có thể tận dụng đợc components từ các nhà phân phối khác, cung cấp dới dạng các file .dll
Những tính chất trên đem đến cho ta những lợi ích xác thực, cho phép tạo ra các ứng dụng Web thơng mại có tơng tác chứ không chỉ đơn thuần là phổ biến các nội dung tĩnh. Ví dụ nh để lu giữ lại thông tin về các khách hàng đã ghé thăm qua web site của mình, các web builder có thể dùng ASP để tạo ra các file cơ sở dữ liệu khách hàng lu trên máy chủ, khi cần có thể tiện tra cứu.
Các Objects & Components cơ bản
Object là những đoạn chơng trình có khả năng thực hiện những công việc cơ bản nào đó. Mỗi object là một kết hợp giữa lập trình và dữ liệu mà có thể xử lý nh một đơn vị thống nhất. Các ASP object cho phép chúng ta giao tiếp tơng tác với cả máy chủ lẫn trình duyệt, thông thờng chúng ta dùng vài object trong các scripts. Các objecl này đã sẵn có nên ta chỉ cần nhớ cách sử dụng chúng
Reqllest Object
Request object cho phép lấy thông tin thông qua một HTTP request. Chúng ta có thể dùng Request object để đọc URL, truy cập thông tin từ một form, đọc cookies và các HTTP header.
Response object
Response object là chìa khóa để gửi thông tin tới user, là đại diện cho phần thông tin do server trả về cho Web browser. Chúng ta có thể viết lên màn hình, tái định hớng các trang, tạo các cookies sử dụng Response object.
Application Object
Sử dụng Application object chúng ta có thể điều khiển các đặc tính liên quan đến việc khởi động và dùng ứng dụng, cũng nh việc lu trữ các thông tin có thể đợc truy nhập bởi các ứng dụng nói chung.
Server Object
Server object cho phép thực thi một chuỗi các tác vụ chẳng hạn nh ánh xạ một đờng dẫn ảo tới một đờng dẫn vật lý và tạo một instance của một component.
Session obiect
Sử dụng object này chúng ta có thể ln thông tin liên quan tới từng user đã truy nhập vào site của bạn.
Khác với các object, các ASP components là các điều khiển ActiveX ghép nối với ASP để đơn giản hoá các thủ tục thông thờng. Chúng ta sẽ lớt qua số components thờng đợc sử dụng.
Browser Capabilities
Component này cho phép xác định trình duyệt của user là gì và những tính năng nào đợc hỗ trợ bởi trình duyệt đó. Collaboration Data Objects (CDO) CDO đợc liên kết chặt chẽ với IIS SMTP server; CDO hỗ trợ chúng ta gửi và nhận email. Ví dụ với CDO chúng ta có thể xử lý một form mà không cần nhận biết đó là Perl script hay CGI.
Database Access
Một trong những tài sản lớn nhất mà ASP có đợc là khả nàng thâm nhập vào các cơ sở dữ liệu. ASP thờng làm việc với hai ngời bạn đồng nghiệp là Access và hệ cơ sở dữ liệu SQL. Component rất hữu ích giúp chúng ta có thể kết nối vào một cơ sở dữ liệu bằng cách sử dụng ActiveX Data Object để viết nội dung lên màn hình trình duyệt và tạo lập hoặc cập nhật các file cơ sở dữ liệu.
File Access
File Access component chứa đựng các phơng thức và thuộc tính có thể sử dụng để truy cập vào các file trên máy tính. Thông qua component này ta tạo ra một object là FileSystemObject giúp ta thực hiện một số công việc nh tạo, đọc file,... Ngoài ra còn có những components đợc cung cấp miễn phí hoặc phải mua từ các nhà phân phối khác nh :
Microsoft Aspcomponent Catalog (http://msdn.microsoft.com/workshop/server/components/catalog.asp)
ASP Central (http://www.aspcentral.com/ac/)
Active Server Pages.Com (http://www.activeserverpages.com/components/toc.asp )
Một ví dụ về ASP script
Các phần trên đã giúp bạn có một nhìn nhận cơ bản, mục này sẽ đa ra một ví dụ đơn giản để hình dung rõ hơn cách viết mã lệnh và thởng thức hơng vị sức mạnh của ASP. Một điều cần lu ý là để test chơng trình chúng ta cần phải cài bộ IIS (Internet Information Server) hoặc bộ PWS ( Personal Web Server), sau đó máy tính của chúng ta sẽ trở thành một local server. Hoặc chúng ta upload các file test lên một server nào đó cho phép chạy các asp script. Trong hai bộ này đều có phần trợ giúp hóng dẫn ta về các hàm và lệnh, nếu các hàm trong ví dụ này bạn cha nắm đợc thì có thể tra cứu trong đó.
Có một điều gây khó khăn cho chúng ta khi muốn tìm kiếm các mã lệnh ASP đó là khi truy nhập vào một site dùng ASP (ví dụ http://msdn.microsoft.com/default.asp) chúng ta không thể xem mã nguồn đợc. Sự thực những thông tin bạn xem trên browser đã đợc default.asp xử lý và trả về mã html. Một ví dụ khác, nếu bạn thêm dòng <% Response.Write "Đây là"&strname %> vào trang Web của bạn (giả sử strname đợc gán bằng "TinHọc&ĐờiSống") thì khi chạy và xem mã nguồn bạn sẽ thấy dòng: Đây là TinHọc&ĐờiSống .
Còn bây giờ chúng ta hãy mở một trình soạn thảo nào đó, Notepad chẳng hạn và viết những mã lệnh sau:
<HTML>
<HEAD>
<TITLE>Ví dụ 1 về ASP script</TITLE>
</HEAD>
<BODY>
<% Response.Write "Chào bạn" %>
<BR> Bây giờ là<%= Time %>
</BODY>
<?HTML>
Sau khi viết xong ghi file ày tên là vd1.asp và chạy, trên màn hình browser sẽ xuất hiện dòng "Chào bạn - Bây giờ là...". Trong ví dụ này ta dùng object Response và hàm Time của VBScript để đa thông tin ra màn hình của user. Chúng ta có thể thấy rõ là asp đã đợc xử lý trên server một cách dễ dàng bằng cách chỉnh lại đồng hồ máy tính của bạn và chạy lại script trên thì vẫn báo giờ chuẩn vì giờ ở đây lấy ở máy chủ chứ không lấy giờ ở máy client. Ví dụ trên chỉ là một minh hoạ rất thô sơ cho ASP, bạn có thể viết các chơng trình khác phức tạp hơn nhiều.
Những bàn luận khác về ASP
Phần này chúng ta sẽ so sánh ASP với một số ngôn ngữ lập trình máy chủ khác nh CGI, Perl, Python,... Theo quan điểm cá nhân thì tôi thích ASP vì rất dễ học, mã lệnh tơng tự nh VisualBasic, đễ thực hành thí nghiệm. So với học Perl thì chúng ta mất ít thời gian hơn nhiều để học ASP. Có nhiều chuyên gia cho rằng ASP có độ bảo mật kém hơn CGI, theo tôi có thể lý giải điều này là do ASP chạy trên các server với hệ điều hành mạng của Microsoft, mà Microsoft vẫn có tiền lệ là tính bảo mật hệ thống kém, không thể bì đợc với UNIX. Nhng mặt khác, ASP lại có tính năng truy cập cơ sở dữ liệu tuyệt vời, nhất là đối với các SQL server, nếu so với CGI thì ASP hơn hẳn mặt này.
Kết:
Trong phạm vi một bài báo không thể nêu đầy đủ mọi mặt của một hệ thống nh ASP, hy vọng bài viết sẽ giúp các bạn mới tìm hiểu biết thêm nhiều điều. Dới đây là một số tài liệu tham khảo rất hay về ASP mà các bạn có thể tìm đọc
1. MSDN Library / Active Server Pages & VisualBasic Scripting
2. http://www.developer.com/
3. http://www.activeerverpages.com/
4. http://www.zdnet.com/developer
Theo Tạp chí Tin học & Đời sống
Mạng máy tính ngày nay đã trở thành một thành phần quan trọng trong ngành truyền thông và cuộc sống hàng ngày. Song song với việc phát triển của mạng là sự phát triển của một hớng mới trong lập trình. đó là lập trình mạng. Sự bùng nổ thông tin trên toàn càu, sự ra đời của Web đặt ra yêu cầu phải xử lý thông tin một cách nhanh chóng, chính xác giữa các Web server với client.
Để giải quyết vấn đề này, một trong những công cụ lập trình máy chủ phổ biến hiện nay là ASP. Bài viết không đi vào chi tiết các thủ thuật lập trình mà cung cấp cho bạn đọc một cái nhìn tổng quát, nguyên lý về ASP cũng nh sẽ so sánh nó với một số ngôn ngữ lập trình máy chủ khác nh Perl, CGL, Rexx, Python.
ASP là gì ?
Microsoft Active Server Pages (ASP) không hẳn là một ngôn ngữ lập trình, Microsoft gọi nó là môi trờng server-side scripting, môi trờng này cho phép tạo và chạy các các ứng dụng Web server động, tơng tác và có hiệu quả cao. Để làm việc trong môi trờng này, các ASP coder thờng sử dụng VBScript hoặc JavaScript, cả hai loại này đều tự động hỗ trợ ASP.
Trong các HTML, mỗi tag đợc bắt đầu và kết thúc bởi cặp "< />" , ASP cũng tơng tự nh vậy. Để đánh dấu nơi nào ASP script bắt đầu và kết thúc dùng cặp lệnh "<% %>".
Các đoạn ASP script có thể xuất hiện ở mọi nơi trong trang HTML, ASP & HTML có sự gắn bó chặt chẽ với nhau. Với ASP ta có thể chen các script thực thi đợc vào trực tiếp các file HTML. Khi đó việc tạo ra trang HTML và xử lý script trở nên đồng thời, điều này cho phép tạo ra các tơng tác của Websife một cách linh hoạt uyển chuyển, có thể chen các thành phần HTML động vào trang Web tuỳ vào từng trờng hợp cụ thể.
VBScript là ngôn ngữ mặc định của ASP nếu muốn sử dụng một ngôn ngữ khác thì chúng ta cần phải định nghĩa ngôn ngữ. Tại đầu trang thêm dòng : <%@LANGUAGE=tên ngôn ngữ%>
VBScript dễ học và rất tiện lợi nếu chúng ta đã học qua VB, các ví dụ trong bài báo này đều viết bằng VBScript. Các ASP script đợc viết và đặt trong các file có phần mở rộng là ".asp". Khi cho script chạy, ví dụ nh: http://msdn.microsoft.com/default.asl) thì mọi quá trình xử lý của file default.asp sẽ diễn ra trên server thay vì chạy ở client, Web server sẽ làm mọi công việc cần thiết để tạo ra một trang kết quả dạng HTML, nh thế không cần phải bận tâm rằng các Web browser có thể xử lý trang Web hay không vì server đã làm mọi việc.
Các tính chất và u điểm của ASP
Các ASP script thông thờng chỉ chạy trên các server cài IIS (Microsoft Internet Information Server). Quy trình nh sau: khi một user thông qua trình duyệt Web gửi yêu cầu tới một file .asp ở server thì script chứa trong file đó sẽ đợc chạy trên server và trả kết quả về cho browser đó. Khi Web server nhận đợc yêu cầu tới một file .asp thì nó sẽ đọc từ đầu tới cuối file .asp đó, thực hiện các lệnh script trong đó và trả kết quả về cho Web blowser là một trang HTML. Do môi trờng hoạt động là mạng nên một script ASP khi đợc viết ra có thể sử dụng đợc ở mọi nơi, không cần trình biên dịch hay kết nối . Các ASP script đợc viết dựa trên các ngôn ngữ hớng đối tợng nên rất tiện lợi, sẵn có các object đi kèm nh: Request, Response, Application, Server, Session. Tận dụng đợc các ActiveX components nh : Database access , Content linking, Collaboration Data Object, Browser capabilities, File Access, ... Hơn nữa nó cũng có thể tận dụng đợc components từ các nhà phân phối khác, cung cấp dới dạng các file .dll
Những tính chất trên đem đến cho ta những lợi ích xác thực, cho phép tạo ra các ứng dụng Web thơng mại có tơng tác chứ không chỉ đơn thuần là phổ biến các nội dung tĩnh. Ví dụ nh để lu giữ lại thông tin về các khách hàng đã ghé thăm qua web site của mình, các web builder có thể dùng ASP để tạo ra các file cơ sở dữ liệu khách hàng lu trên máy chủ, khi cần có thể tiện tra cứu.
Các Objects & Components cơ bản
Object là những đoạn chơng trình có khả năng thực hiện những công việc cơ bản nào đó. Mỗi object là một kết hợp giữa lập trình và dữ liệu mà có thể xử lý nh một đơn vị thống nhất. Các ASP object cho phép chúng ta giao tiếp tơng tác với cả máy chủ lẫn trình duyệt, thông thờng chúng ta dùng vài object trong các scripts. Các objecl này đã sẵn có nên ta chỉ cần nhớ cách sử dụng chúng
Reqllest Object
Request object cho phép lấy thông tin thông qua một HTTP request. Chúng ta có thể dùng Request object để đọc URL, truy cập thông tin từ một form, đọc cookies và các HTTP header.
Response object
Response object là chìa khóa để gửi thông tin tới user, là đại diện cho phần thông tin do server trả về cho Web browser. Chúng ta có thể viết lên màn hình, tái định hớng các trang, tạo các cookies sử dụng Response object.
Application Object
Sử dụng Application object chúng ta có thể điều khiển các đặc tính liên quan đến việc khởi động và dùng ứng dụng, cũng nh việc lu trữ các thông tin có thể đợc truy nhập bởi các ứng dụng nói chung.
Server Object
Server object cho phép thực thi một chuỗi các tác vụ chẳng hạn nh ánh xạ một đờng dẫn ảo tới một đờng dẫn vật lý và tạo một instance của một component.
Session obiect
Sử dụng object này chúng ta có thể ln thông tin liên quan tới từng user đã truy nhập vào site của bạn.
Khác với các object, các ASP components là các điều khiển ActiveX ghép nối với ASP để đơn giản hoá các thủ tục thông thờng. Chúng ta sẽ lớt qua số components thờng đợc sử dụng.
Browser Capabilities
Component này cho phép xác định trình duyệt của user là gì và những tính năng nào đợc hỗ trợ bởi trình duyệt đó. Collaboration Data Objects (CDO) CDO đợc liên kết chặt chẽ với IIS SMTP server; CDO hỗ trợ chúng ta gửi và nhận email. Ví dụ với CDO chúng ta có thể xử lý một form mà không cần nhận biết đó là Perl script hay CGI.
Database Access
Một trong những tài sản lớn nhất mà ASP có đợc là khả nàng thâm nhập vào các cơ sở dữ liệu. ASP thờng làm việc với hai ngời bạn đồng nghiệp là Access và hệ cơ sở dữ liệu SQL. Component rất hữu ích giúp chúng ta có thể kết nối vào một cơ sở dữ liệu bằng cách sử dụng ActiveX Data Object để viết nội dung lên màn hình trình duyệt và tạo lập hoặc cập nhật các file cơ sở dữ liệu.
File Access
File Access component chứa đựng các phơng thức và thuộc tính có thể sử dụng để truy cập vào các file trên máy tính. Thông qua component này ta tạo ra một object là FileSystemObject giúp ta thực hiện một số công việc nh tạo, đọc file,... Ngoài ra còn có những components đợc cung cấp miễn phí hoặc phải mua từ các nhà phân phối khác nh :
Microsoft Aspcomponent Catalog (http://msdn.microsoft.com/workshop/server/components/catalog.asp)
ASP Central (http://www.aspcentral.com/ac/)
Active Server Pages.Com (http://www.activeserverpages.com/components/toc.asp )
Một ví dụ về ASP script
Các phần trên đã giúp bạn có một nhìn nhận cơ bản, mục này sẽ đa ra một ví dụ đơn giản để hình dung rõ hơn cách viết mã lệnh và thởng thức hơng vị sức mạnh của ASP. Một điều cần lu ý là để test chơng trình chúng ta cần phải cài bộ IIS (Internet Information Server) hoặc bộ PWS ( Personal Web Server), sau đó máy tính của chúng ta sẽ trở thành một local server. Hoặc chúng ta upload các file test lên một server nào đó cho phép chạy các asp script. Trong hai bộ này đều có phần trợ giúp hóng dẫn ta về các hàm và lệnh, nếu các hàm trong ví dụ này bạn cha nắm đợc thì có thể tra cứu trong đó.
Có một điều gây khó khăn cho chúng ta khi muốn tìm kiếm các mã lệnh ASP đó là khi truy nhập vào một site dùng ASP (ví dụ http://msdn.microsoft.com/default.asp) chúng ta không thể xem mã nguồn đợc. Sự thực những thông tin bạn xem trên browser đã đợc default.asp xử lý và trả về mã html. Một ví dụ khác, nếu bạn thêm dòng <% Response.Write "Đây là"&strname %> vào trang Web của bạn (giả sử strname đợc gán bằng "TinHọc&ĐờiSống") thì khi chạy và xem mã nguồn bạn sẽ thấy dòng: Đây là TinHọc&ĐờiSống .
Còn bây giờ chúng ta hãy mở một trình soạn thảo nào đó, Notepad chẳng hạn và viết những mã lệnh sau:
<HTML>
<HEAD>
<TITLE>Ví dụ 1 về ASP script</TITLE>
</HEAD>
<BODY>
<% Response.Write "Chào bạn" %>
<BR> Bây giờ là<%= Time %>
</BODY>
<?HTML>
Sau khi viết xong ghi file ày tên là vd1.asp và chạy, trên màn hình browser sẽ xuất hiện dòng "Chào bạn - Bây giờ là...". Trong ví dụ này ta dùng object Response và hàm Time của VBScript để đa thông tin ra màn hình của user. Chúng ta có thể thấy rõ là asp đã đợc xử lý trên server một cách dễ dàng bằng cách chỉnh lại đồng hồ máy tính của bạn và chạy lại script trên thì vẫn báo giờ chuẩn vì giờ ở đây lấy ở máy chủ chứ không lấy giờ ở máy client. Ví dụ trên chỉ là một minh hoạ rất thô sơ cho ASP, bạn có thể viết các chơng trình khác phức tạp hơn nhiều.
Những bàn luận khác về ASP
Phần này chúng ta sẽ so sánh ASP với một số ngôn ngữ lập trình máy chủ khác nh CGI, Perl, Python,... Theo quan điểm cá nhân thì tôi thích ASP vì rất dễ học, mã lệnh tơng tự nh VisualBasic, đễ thực hành thí nghiệm. So với học Perl thì chúng ta mất ít thời gian hơn nhiều để học ASP. Có nhiều chuyên gia cho rằng ASP có độ bảo mật kém hơn CGI, theo tôi có thể lý giải điều này là do ASP chạy trên các server với hệ điều hành mạng của Microsoft, mà Microsoft vẫn có tiền lệ là tính bảo mật hệ thống kém, không thể bì đợc với UNIX. Nhng mặt khác, ASP lại có tính năng truy cập cơ sở dữ liệu tuyệt vời, nhất là đối với các SQL server, nếu so với CGI thì ASP hơn hẳn mặt này.
Kết:
Trong phạm vi một bài báo không thể nêu đầy đủ mọi mặt của một hệ thống nh ASP, hy vọng bài viết sẽ giúp các bạn mới tìm hiểu biết thêm nhiều điều. Dới đây là một số tài liệu tham khảo rất hay về ASP mà các bạn có thể tìm đọc
1. MSDN Library / Active Server Pages & VisualBasic Scripting
2. http://www.developer.com/
3. http://www.activeerverpages.com/
4. http://www.zdnet.com/developer
Theo Tạp chí Tin học & Đời sống