Active Server Pages
维基百科,自由的百科全书
動態伺服器網頁(Active Server Pages),由微软公司开发的服务器端运行的脚本平台,它被Windows下Internet Information Services (IIS)的程式所管理。透過ActiveX server 的技術讓不同的使用者能有不同的畫面,或需要讓他們可以存取服务器 (server)上的資料時,使用ASP3.0中提供了五個內建的物件建立模擬和安全性的動態內容,來協助程序员隱藏複雜的溝通機制,讓程序员可以專注在解決問題和應用之上,這樣可以更快速地开发动态网页的同時每一个组件都是可以由一组富有经验的程序员根据动态网页最常用的功能而獨立开发。
五个组件包括:
- Application:在一個 ASP-based application 讓不同使用者共享資訊。
- Request:從使用者處理取得資訊
- Response:將資訊送給使用者
- Server:提供一些 Web Server 的工具
- Session:儲存在一個 session 內使用者的資訊
目录 |
[编辑] ASP 的特色
ASP隱藏了網頁伺服器與瀏覽者之間溝通的煩瑣機制的同時也基於script base的特性,網頁撰寫員可以專心撰寫應用的程式的邏輯部份,再者ASP也像 HTML 般透過選寫程序來即時測試網頁是否安全地運行,而不必擔心程式和伺服器不能溝通的問題,另外因為那些 script 是於發送前於伺服器中先行轉譯處理成為HTML後再而發送至代理伺服器邊的動態網頁技術,不必擔心瀏覽器的支援性及,網頁撰寫員的程式邏輯像 client-side script 會被盜用,因此最終瀏覽者只會是使用 HTML 來瀏覽。
利用ASP程序最常用的是Cookies,它利用Session组件实现的。同時还可以利用第三方组件延伸ASP的作用,如利用MailSender组件发送电子邮件。
通过ASP我们可以结合HTML网页、ASP指令和ActiveX元件建立动态、交互且高效的WEB服务器应用程序。同时,ASP也支持VBScript和JScript等脚本语言,默认为VBScript。其中JScript是微软公司的ECMAScript标准的实现,并且有自己的扩展。
[编辑] 物件的支援
ASP對 COM 的支援會允許撰寫員使用 server component(或OLE Automation server)。透過它撰寫員可以發展自已的物件,或將把程式轉成 Web-base 的介面。
[编辑] 狀態 (State) 的管理
狀態管理是ASP的重要功能之一,原因為HTTP是一個stateless的協定,當有匿名的 request進入時,瀏覽者無法辨認這些的request 是否安全,或那些request 之間的關連性時,便無法透過瀏覽者取得資訊如帳戶及密碼等,對交易特性的 Web 應用程式造成了阻礙。因此ASP透過 cookie的包裝和使用讓瀏覽者可以簡單地管理眾多使用者名稱的不同狀態。
ASP 對的管理更是令人稱讚,我們知道,HTTP 本身是一個 stateless 的協定,也就是說對於匿名的 request,你無法分辨這些 request 是屬於誰的、或這些 request 之間的關連性,這對發展一個有交易特性的 Web 應用程式實在是個傷腦筋的問題。現在,ASP 透過 cookie 的包裝和使用,讓你可以簡單的管理不同使用者的不同 state。
[编辑] 版本
ASP已经是.NET的成员之一,即ASP.NET 目前最新的版本是 ASP.NET 2.0
[编辑] 原理
ASP是经过服务器解析之后再向网页浏览器返回数据,所以有了ASP就不必担心客户的浏览器是否能运行你所编写的代码。因为所有的程序都将在网页服务器端执行,包括所有嵌在普通HTML中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。
由于代码是需要经过服务器执行之后才向浏览器发送的,所以在客户端看到的只能是经过解析之后的数据,而无法获得源代码,故编写者不用担心自己的源代码会被别人剽窃。但不排除黑客利用系统漏洞窃取服务器端的ASP源代码。
基于这样的解析方式,也导致运行ASP页面相对于普通的HTML页面要慢一点。因为普通的HTML页面只需要浏览器就能够解析,而ASP则必须是服务器将整页的代码都执行一遍之后再发送数据。
ASP提供与数据库的交互,如Microsoft SQL Server、Microsoft Access、MySQL和Oracle,比较流行的是ASP和Microsoft SQL Server的组合。
[编辑] 范例
ASP程序(包括与数据库连接的部分)都是嵌入在普通HTML和其他客户端语言中的。例如
你好! <!--上面是将“你好!”在浏览器中输出,这是通过HTML实现的--> <% ' 这一行注释,将不会显示 Response.write "Wikipedia!" ' 这行将在浏览器中输出“Wikipedia!” %>
从中我们可以看出,ASP语言是嵌入在“<%...%>”之间的部分。而这个程序最终结果将是:
你好!Wikipedia!
[编辑] 参见
[编辑] 外部链接
|
|
|
|---|---|
| 文档呈现语言 | HTML* - XHTML* - XML* - XForms* - DHTML* |
| 样式格式描述语言 | CSS* - XSL* |
| 动态网页技术 | CGI - ASP - ASP.NET - ColdFusion - JSP - PHP - Ruby on Rails |
| 客户端交互技术 | ActiveX - Java Applet - Flash - Flex - AJAX - XMLHTTP* AIR- Silverlight - JavaFX |
| 客户端脚本语言 | JavaScript - JScript - VBScript - ECMAScript - ActionScript |
| 标识定位语言 | URL - URI - XPath |
| 文档纲要语言 | DTD* - XML Schema* |
| *由W3C制定和维护的标准与规范 | |
|
|
|
|---|---|
| 桌面软件 | Windows (Windows歷史) · Office · Internet Explorer · Dynamics · Visual Studio · Money · Encarta · Microsoft Student · Expression |
| 服务器软件 | Windows Server · SQL Server · IIS · Exchange · BizTalk · Commerce · ISA Server · Systems Management |
| 技术 | 活动目录 · DirectX · .NET · Windows Media · PlaysForSure |
| 网络 | Windows Live · Office Live · MSNBC · ninemsn · MSN · Hotmail · Live Messenger · Spaces · Groups · Live ID · Ignition · CodePlex |
| 游戏 | Microsoft Game Studios · Zone · XNA · Xbox · Xbox 360 (Elite) · Xbox Live (Arcade · Marketplace) · Games for Windows (Live) · Live Anywhere · 帝国时代 · 微軟模擬列車 · 微軟模擬飛行 |
| 硬件 | Surface · Zune · MSN TV · 微软自然键盘 · IntelliType · IntelliPoint · LifeCam · LifeChat · SideWinder · 超级移动电脑 · Fingerprint · Audio System |
| 教育与认证 | 微软认证 ·微软开发者网络 ·微软教育联盟计划 ·微软签约授权 ·微软出版社 ·微软最有价值专家 ·微软创新联盟 |
| 许可证 | 客户端访问许可 · 共享原始碼 |
| 董事会成员 | 巴尔默 · 凯什 · 杜伯伦 · 盖茨 · 吉尔玛特 · 哈斯廷斯 · 马夸特 · 诺斯基 · 庞克 · 雪利 |

