ASP编程:ASP的劈头
因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。还无法完全实现一些企业级的功能:完全的集群、负载均横。Microsoft的静态服务器网页(ActiveServerPages,ASP)手艺今朝已开展到了3.0版。对良多人来讲,用ASP来创立Windows服务器平台上的静态Web网页、全部站点和基于Web的使用程序已成为极为天然而然的办法。在扫瞄器地点栏中,文件扩大名.ASP同暗示静态创立的网页的文件扩大名.pl或.cgi一样,已被扫瞄者所承受。现实上,关于在微软的操纵体系上事情的Web程序员来讲,ASP正在酿成一种不再使人冲动的手艺,而仅是一种事情体例。这类意见的改动表现了一种手艺的慢慢成熟。因为ASP的使用程序的数目日趋增加,ASP的工具也在日趋增添,同时有愈来愈多的第三方开辟商开辟出一系列基于ASP或利用ASP的附加功效模块、ActiveX服务器组件,乃至成套的“本人做(do-it-yourself)”Web站点工具。人们几近不再存眷微软公司最后利用的奇异的名字。如今ASP外行业内已成为一个公认的名词。
这是一本关于ASP成熟手艺最新版本的书,其目标是希冀读者在必定水平上熟习ASP的构成,懂得ASP可以做甚么及怎样利用它。本书的目标不但是使读者入手下手利用ASP,而且还要使读者懂得ASP新版本的变更和它可以做到而初期版本不克不及做到的事变。
这其实不意味着读者必需成为专家才干浏览本书,但但愿读者已懂得Web事情的基础体例和剧本言语的相干常识,如VBScript或JavaScript。
本书将更多地从研讨和手艺的角度会商ASP,使读者对ASP怎样事情有个更好的了解,有助于读者编写的ASP代码到达更高的程度。ASP3.0中心大概没有良多实质上的改动,但有良多使人冲动的利用办法。
本节先复杂回忆一下ASP是怎样发生的,和ASP为何可以在Web程序开辟职员中盛行。起首从懂得Web的基本和静态Web页面的开展入手下手。把ASP与其他很多可以供应这类静态化的手艺比拟较,由此深切懂得ASP的开展情形,同时懂得Web使用程序的开展,而不但限于懂得纯真的静态Web站点。
HTML的劈头
万维网(WorldWideWeb,WWW)劈头于设在瑞士的CERN实行室。TimBerners-Lee及其开辟小组,消费大批的工夫,研讨创建了一种以必定格局传输信息的办法,这就是尽人皆知的超文本传输协定(简称为HTTP)。该协定利用了超文本标志言语(HTML)。HTML计划复杂,布局天真,同意在Web扫瞄器及其他兼容的使用程序中显现文本及图象。文档的某些部分能够成为超链接,即当其被选择时,能够显现分歧的页面或统一页面的分歧部分。
标志言语是由特定字符分开的基础元素,指定基础元素中所包括的文本或其他条目怎样显现。比方<EM>ThisissomeEmphasizedtext</EM>。HTML是一种普遍基于尺度通用标志言语(StandardGeneralizedMakeupLanguage,SGML)的标志言语。SGML是形貌言语的一种办法,其自己并非用来创立网页的言语。
HTML言语从复杂入手下手,不休增添一些附加的功效,直至构成了明天所用的HTML4.0版本。这些新增的特征供应了更天真的文本字体作风(比方<FONT>元素),和对输入页面结构的更多把持(如窗体和帧的利用)。
初期的网页所缺少的是静态的内容。刚一入手下手时,这还不是一个成绩,由于HTML的开辟是为了在盘算机、收集及操纵体系之间显现和传送信息(出格是手艺和迷信信息)。这类尺度化的文档仅是一种复杂的文本和标志,个中的图象和其他非文本的内容以独自文件情势寄存,它们能够在各类收集上自在传送。别的,因为信息的格局是流动的,其构成元素的寄义也是在HTML中界说好的。关于一个“浏览器”或扫瞄器使用程序,用任何程序言语在任何平台或操纵体系中绝对来讲是对照简单完成的。
只需创建这些信息网页,文本文件和图象可经由过程Web服务器使用程序传送给用户,Web服务器使用程序复杂地从磁盘中读取它们而且把输入转换成可以在收集中传送的准确HTTP协定。在客户或用户端,扫瞄器吸收传送到的信息流,并转换成为可以显现的页面。
HTML和HTTP除具有跨平台特征以外,其最次要的优点就是其文档能够包括有关内容的相干信息、作者意欲表达的体例等。它能够被使用程序浏览而纷歧定显现出来:比方瞽者可使用特别的程序把它转换成为语音。一样,其内容能够特别体例显现出来,以便那些目力差或有其他缺点的人们更简单举行会见。因而,手艺界常常用“用户代办署理”(useragent)这一通用术语取代“扫瞄器”(browser)。
静态页面的劈头
关于新范例的文档内容,出格是那些计划成为同意在页面上输出信息的文档(比方HTML中<INPUT>等的窗体控件),开辟一种可以读取这类信息并加以使用的使用程序成为一定。很分明,传送从其他使用程序中失掉的内容,出格是特定范例的数据库的内容,必要一种新的办法。每次都必要重写一个基于文本的页面,关于供应及时性很强的信息固然不是一个幻想的办法。
关于Web服务器来讲,供应一个接口使其他使用程序可以与之相连成为一种经常使用的办法。经由过程这个接口,定制的可实行程序可以吸收来自客户真个信息,包含经由过程点击超链接或在扫瞄器中键进一致资本定位符(URL)所提出的页面哀求的细节。使用程序对客户真个哀求可以天生响应的呼应,而不是从服务器磁盘上读取文本或标志文件。从这些初期办法入手下手,渐渐构成一套完全的系列办法静态创立网页,以呼应用户的哀求或信息的变更。
用于这些使用程序的接口仍旧在利用,并被称为大众网关接口(CommonGatewayInterface,CGI),这是一种可用任何言语(如C言语)完成的尺度。它发生于那些利用cgi-bin目次的使用程序(这里“bin”代表二进制代码,而不是文本)。初期的使用程序都是编译后的程序,一般用C或C++编写。但是这天然请求明白C言语的编程办法,而且每当对程序做很小的笔墨上或标志上的变化,都必需从头编译、从头天生可实行文件,这就限定了CGI和静态页面的利用。
取而代之的是开辟了一种用剧本言语创立网页的办法,这类言语就是有用择要和呈报言语(PracticalExtractionandReportingLanguage),或简称为Perl,它同意信息的创立者以一种十分相似于简化版C或C++的言语编写代码。在Perl剧本中,能够“写”文本和标志,用尺度输出(stdin)和尺度输入(stdout)函数经由过程CGI与Web服务器通讯,输入到扫瞄器。
Perl在Web上仍旧是一种盛行的言语,出格是在基于UNIX或Linux的体系上。但是这类言语把握起来不是很简单,出格是关于那些没有C或C++言语基本的Web开辟职员更是云云。如今,一些新的剧本言语呈现了,使创立网页加倍简单。我们次要看一下它们怎样使开辟职员的事情变得加倍简单。
1.服务器端剧本手艺
关于服务器真个剧本必要用某品种型的两头使用程序,或插件程序来毗连。它必需可以承受用户哀求,读取并注释符合的基于服务器的剧本文件,接着创立输入页,并传送给Web服务器,在那边作为呼应发送给客户端。
在某些情形下,这个义务分别为两个部分:
一个使用程序或插件程序处置与Web服务器的来往通讯(一样平常经由过程CGI)。
另外一个处置注释和实行剧本。
这就是ASP中的情形,剧本引擎的利用与在其他情况下不异。
Perl是第一个盛行的服务器端剧本言语,可是今朝已呈现良多其他的言语。在UNIX及基于Linux的体系上,一种新的称之为PHP(PersonalHomePage)的言语正变得愈来愈盛行。另有一些言语的方针是一些特定范例的用户,比方TCL就是一种在迷信情况下使庞大的数学运算复杂化的言语。
2.微软的静态页面创立手艺
微软随WindowsNT3.51推出了他们的Web服务器软件―InternetInformationServer(IIS)1.0。这是一个供应了良多功效的相称尺度的软件,它撑持CGI。但是微软也供应了别的一个接口,同意利用C和C++等编译言语天生可实行文件,使操纵加倍高效。这就是Internet服务器使用编程接口(InternetServerApplicationProgrammingInterface,ISAPI)。它可以供应比传统
Perl引擎和其他手艺所依附的stdin和stdout更加普遍的对Web服务器的会见。
今后微软和其他第三方开辟商推出了很多能经由过程ISAPI毗连到IIS的使用软件,这也就是为何ASP可以毗连到IIS和其他微软服务器端静态手艺。在ASP之前,用得最普遍的是Internet数据库毗连器(InternetDatabaseConnector,IPC)。ASP为Web开辟者利用微软的平台启示了一个新的六合,这使接纳数据库中的数据创立静态网页加倍简单。出格是它引进了模板(template),即包括了带有可以拔出数据库查询了局的文本和标志的模板文件。
现有的(或将过期的)其他微软服务器端页面创立手艺有dbWeb和OLEISAPI。现实上,dbWeb就是OLEISAPI的完成,而关于多半人来讲,迄今只是证明了这一手艺在实践使用中的不顺应性。OLEISAPI是经由过程特别版本的ISAPI接口与IIS通讯的一些COM工具。Web服务器软件挪用COM工具中单个指定函数并以参数为用户的哀求供应细节。COM工具前往的是作为字符串的页面的文本和标志,然后作为呼应发送给客户端。
OLEISAPI创始了COM工具的静态Web页面创立,为编程职员供应经由过程编译的ActiveXDLL创立静态页面的才能。但是它所利用的特定的完成和数据通讯手艺关于较小的义务和外部网(intranet)事情缺少无效性和可扩大性。同时,每当改动页面的文本和标志时,也必要从头编译静态链接库。-1给出了到今朝为止所会商的手艺的互相干系。
3.静态Web页面创立办法的对照
对照静态页面创立手艺是一个既坚苦又敏感的义务,但是了解各类接口和与之相干联的使用程序的差别性又是很主要的。当创立与Web服务器交互的使用程序时,触及到的两个次要的成绩是它们对Web服务器自己不乱性的影响,和处置多发或并发页面哀求的效力。这
两个成绩是互相接洽的,又是互相排挤的。
使用CGI和ISAPI的编译的可实行使用程序(不是DLL文件),一般在服务器盘算机上以历程外(out-of-process)体例运转,这就意味它们要作为独自使用程序运转,占据独自的与Web服务器使用程序分歧的内存空间。操纵体系将其作为一个独自的历程举行办理,克制它们会见自己所占内存之外的内存。
因而,假如一个历程外使用程序失利,不会影响到Web服务器。一样,假设使用程序包括毛病,妄图间接写进Web服务器的内存,会因一样平常性回护毛病中断运转。历程外使用程序也会因用户或操纵体系的命令而中断,这时候代码会从内存中主动卸载。
由于运转历程外程序意味着会见Web服务器内存的哀求被克制,所请求的或发生的输入了局值不克不及间接传送给Web服务器。以是必需实行一种跨历程挪用,但这比在统一历程内会见内存要多消费几倍的工夫。关于可实行文件的装载和卸载工夫另有必定的影响。
相反,使用历程内(in-process)程序―一般是可以利用ISAPI或OLEAPI接口的DLL(不是独自的可实行文件),由于其运转在Web服务器的内存空间中,能够间接会见Web服务器内存中的值,这可供应更快的会见和呼应。但是其代码的毛病或失利会影响到Web服务器。比方DLL文件中的代码间接写进包括Web服务器操纵代码的内存空间,大概引发Web服务器的失利。其干系如-2所示。
历程外使用程序实例是Perl剧本注释器和利用ISAPI接口的.exe文件。历程内组件的实例有dbWeb、IDC和ASP手艺。但是,ASP和IIS互相毗连的体例另有很多种。因而,先把其他相干手艺放在一边,进一步研讨ASP。
ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。 ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。 因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。 尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。 如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助: 用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。 如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。 没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
页:
[1]