Web应用程序设计基础,1章Web

怎么做 10
应用程序设计基础 随着互联网及相关技术的迅猛发展,Web应用事实上已经成为当今企业最广泛的软件应用形式。
本章先介绍Web应用技术的发展情况,再介绍Web应用基础技术(HTTP、HTML和JavaScript),接下来介绍ASP.NET技术的相关知识,包括.NETFramework的概念、ASP.NET的概念、ASP.NET的工作原理,最后介绍VisualStudio.NET2008的操作方法,以及在VisualStudio.NET2008中创建Web应用程序的一般方法等。
1.1Web应用技术的发展概况 1.1.1Web应用的概念 在应用软件领域,如果按照软件的运行模式或安装部署的体系结构来分,往往可将其分为B/S(Browser/Server,浏览器/服务器)和C/S(Client/Server,客户/服务器)两种模式。
其中,在C/S模式下,一般来说应用软件可分为两部分,一部分在服务器运行,一部分在客户端运行,因此,既要在服务器中安装,也要在客户端安装。
C/S模式的优点是:应用程序主要在本机运行,故响应速度快;具有友好的操作界面。
C/S模式的主要缺陷是:要求网络系统高度可靠,如果客户端与服务器之间网络连接不稳定,应用软件将无法正常运行。
C/S模式比较适合局域网环境,解决诸如医院门诊管理之类的问题,以满足因为病人挂号时间非常集中、数据必须高效处理等情况的要求。
在B/S模式下,应用程序在服务器端运行,用户通过浏览器访问服务器。
B/S模式的数据输入通过浏览器实现,数据的显示以网页形式输出,数据的运算、检索与存储等处理操作由服务器端的应用程序完成。
例如,当想要查询公交路线时,首先用浏览器打开“搜狗地图”网站,输入起点和终点等相关数据,之后服务器端的应用程序将根据这个查询条件进行数据检索处理,最后把检索结果以网页形式显示在浏览器窗口中。
B/S模式的主要优点是:客户端无需安装,有Web浏览器即可使用;基于环境,对企业来说能够满足异地办公的需要;特别适合于为公众提供交互式的服务。
正因为如此,网上新闻、电子商务、电子政务、远程教学、远程医疗、博客、在线电影等如雨后春笋般出现。
可见,Web应用就是指在B/S体系结构下的应用软件系统。
2Web应用程序设计实用教程 1.1.2客户端技术的发展 Web应用的雏形由出生于伦敦的TimBerners-Lee设计。
Tim尚在牛津大学学习的时候就试图找出一种能像人脑一样通过神经传递、自主作出反应的程序。
1984年,Tim进入了著名的欧洲粒子研究中心(CERN),负责网络信息共享软件的开发。
经过努力,他成功编制了第一个高效局部存取浏览器Enquire,并把它应用于数据共享浏览,Web技术从此诞生。
经过几十年的发展,如今Web技术分为客户端技术和服务器端技术,其中,客户端技术的发展大概可分为以下几个阶段。

1.HTML诞生 HTML的历史最早可以追溯到20世纪40年代。
1945年,VannevarBush在一篇文章中阐述了文本和文本之间通过超链接相互关联的思想,并在文中给出了一种能实现信息关联的计算机Memex的设计方案。
DougEngelbart等人则在1960年前后,对信息关联技术做了最早的实验。
与此同时,TedNelson将这种信息关联技术正式命名为超文件(HyperText)技术。
1969年,供职于IBM公司的CharlesGolgfarb发明了可用于描述超文本信息的GML(GeneralizeMarkupLanguage,通用标记语言)。
在美国国家标准学会(ANSI)等组织的努力下,GML语言进一步发展为SGML(StandardGML,标准通用标记语言)。
1986年,SGML被国际标准化组织(ISO)发布为国际标准。
1989年,Tim及其同事试图创建一个基于超文本的分布式应用系统,SGML是很好的选择。
但由于SGML过于复杂,不利于信息的传递和解析,因此,Tim对SGML语言进行大刀阔斧的简化,最后成功开发出世界上第一个Web服务器和第一个Web客户机。
同时,Tim把他的发明正式定名为WorldWideWeb(WWW,万维网),并将简化后用于开发Web网页的语言定名为HTML(HypertextMarkupLanguage)。
1991年5月WWW在上首次露面,立即引起轰动,获得了极大的成功,被广泛推广应用。

2.动态HTML的出现 Tim制定的HTML只能在浏览器中展现静态的文本或图像信息,它无法满足人们对信息丰富性和多样性的需求。
这种需求必然导致一种变革,静态Web技术向动态Web技术转变是Web客户端技术发展的必然趋势。
动态概念最早是由GIF提出的。
GIF(GraphicsInterchangeFormat,图像互换格式)是CompuServe公司在1987年开发的图像文件格式。
GIF格式的显著特点有两点:一是采用压缩技术,图像文件的压缩率一般在50%左右;二是在一个GIF文件中可以存多幅彩色图像,把存于一个文件中的多幅图像数据逐幅读出并显示到屏幕上,就构成一种最简单的动画。
因此,GIF第一次为HTML页面引入了动态元素。
但真正的变革来源于1995年Java语言的问世。
Java语言天生具有的平台无关性的特点,让人们一下子找到了在浏览器中开发动态应用的捷径。
1996年,网景(Netscape)公司在其2.0版的NetscapeNavigator浏览器中,增加了对JavaApplet和JavaScript的支持。
紧接着,微软(Microsoft)公司在3.0版的Explorer(IE)浏览器中也引入了Java 第1章Web应用程序设计基础
3 技术,同时微软公司还推出了一种新的脚本语言VBScript。
现在,从事动画、交互操作、客户端应用开发的技术人员都纷纷使用Java或JavaScript语言设计出效果更加丰富多彩的网页。
真正让HTML动感无限的是CSS(CascadingStyleSheets,层叠样式表或级联样式表单)和DHTML(DynamicHTML,动态HTML)技术。
1996年,W3C(WorldWideWebConsortium,万维网联盟)提出了CSS标准。
CSS大大提高了开发人员对信息呈现格式的控制能力,受到了各浏览器提供商的热烈欢迎和支持。
1997年,微软公司发布了IE4.0,并把新技术CSS、JavaScript、VBScript、DOM(DocumentObjectModel,文档对象模型)发展成为一套完整、实用、高效的客户端开发技术体系,被称为DHTML。
JavaScript、VBScript和DOM可以加强页面中的数据处理,CSS实现了页面内容设计与效果设计的分离。
DHTML技术与Java技术的最大区别在于:Java技术依赖Java虚拟机(一种安装在浏览器端计算机中的基础程序)来运行JavaApplet,以实现动态效果;而DHTML无需启动Java虚拟机或其他脚本运行环境,直接在浏览器的支持下即可实现动态效果。
可见,DHTML更为简单,它的出现使Web应用变得多姿多彩。
为了在HTML页面中实现音频、视频等更为复杂的多媒体应用,1996年,网景公司首先在其2.0版的浏览器产品中引入QuickTime插件,与此同时,IE3.0正式支持在HTML网页中插入ActiveX技术,从此,插件技术迅速风靡于浏览器的世界。
值得纪念的是Flash插件的横空出世。
在20世纪90年代初,JonathanGay在FutuerWave公司开发了一种名为FutureSplashAnimator的二维矢量动态展现工具。
1996年,Macromedia公司收购了FutuerWave,并将JonathanGay的发明改名为Flash,从此Flash成为动画制作的标准技术。
1999年,Realplayer插件先后在Netscape和IE游览器中取得成功,而微软公司的MediaPlayer多媒体播放插件被预装到了各种Windows版本之中。
2007年,微软公司又推出了Silverlight技术。
Silverlight是一个跨浏览器和跨平台的插件,为Web带来下一代媒体体验和丰富的交互式应用程序体验。
它包括了许多先进的技术及设计概念,提供灵活的编程模型,支持JavaScript、.NET和其他的语言,并集成到现有的Web应用程序中,具有优化的搜索引擎、向量化的图形引擎,甚至支持3D、图形处理器加速以及H.264视频等。
总之,直到今天,新的动态技术仍然层出不穷。

3.客户端脚本语言的产生 客户端的开发人员除了需要制作HTML网页之外,有时还需要把浏览器的一些功能添加到应用程序中,以增强应用程序的功能。
从1992年起,万维网联盟就免费向开发人员提供libwww开发库。
借助它,开发人员可以编写Web浏览器和Web搜索工具,可以分析、编辑或显示HTML网页。
1999年,微软公司在IE5.0中引入HTML应用程序技术,利用它可直接把HTML页面转换为一个真正的应用程序。
从1997年的IE4.0起,微软公司为开发人员提供了Web浏览器控件和其他相应的组件接口,允许开发人员在自己的程序中直接嵌入浏览器窗口,或者直接调用IE浏览器的各种功能,如分析或编辑HTML页面等。
Windows98及其后的Windows操作系统甚至还利用WSH(WindowsScriptHost)技术把原本只在浏览器中运行的JavaScript、VBScript变成可以在Windows环境下使用的通用脚本语言。
总之,客户端脚本语言的产生让Web应用具有人机交互能力。
4Web应用程序设计实用教程
4.XML的诞生与迅速发展 1996年,供职于Sun公司的JohnBosak在W3C的领导下开始简化SMGL语言。
Bosak删除了SGML中的非核心的、未被使用的和含义模糊的部分之后得到XML(eXtensibleMarkupLanguage,可扩展标记语言)。
XML的最大特点是一方面保证了XML具有SGML的强大功能和可扩展性,另一方面XML又像HTML一样简单。
1998年,W3C正式发布了XML1.0标准,XML与HTML的最大区别在于,XML关心的是信息本身的格式和数据内容,HTML关心的是信息在浏览器窗口中的表现形式。
正因为如此,如今XML成为互联网的数据生成、发布、传输和共享的标准。
它的迅猛发展让Web网页具有信息自我描述的能力。
由于XML没有描述数据的表现形式,为此W3C专门制作了XSL(eXtensibleStylesheetLanguage)标准。
XSL由三个子语言组成:XPath、XSLT、XSL-FO。
其中,XPath专门用来在XML文档中查找信息;XSLT用来转换XML文档结构,如把XML文档转换为HTML文档;XSL-FO(formattingobjects)用来实现格式化输出,类似于CSS在HTML中的作用。
1.1.3服务器端技术的发展 与客户端技术从静态向动态的转变过程类似,Web服务器端的开发技术也是由静态向动态方向逐渐发展、完善起来的。
服务器端技术大体可以划分为以下3个阶段。

1.CGI和ISAPI阶段 最初的Web服务器只能简单地响应浏览器的访问请求并将存储在服务器上的HTML文件返回给浏览器。
一种名为SSI(ServerSideIncludes)的技术可以让Web服务器在返回HTML文件前,更新HTML文档的某些内容,不过其功能非常有限。
第一种真正使服务器根据运行时的具体情况生成HTML页面的技术是CGI(CommonGatewayInterface,公共网关接口)技术。
CGI的标准是由伊利诺斯大学超级计算机应用程序国家中心(NationalCenterforputingApplication,NCSA)提出的,并于1993年制定。
CGI实际上是一种运行于服务器端的特殊程序,其工作原理为:当用户从浏览器提出HTTP请求后,Web服务器激活CGI,然后CGI解析客户端提交的信息,并将信息传给服务器应用程序进行数据库查询,最后CGI将查询结果以HTML的格式返回给浏览器,由浏览器最终显示结果。
CGI的最大特点是允许服务端的应用程序根据客户端的请求,动态生成HTML页面,这就使得客户端和服务器端的动态信息交换成为了可能。
有了CGI技术,聊天室、论坛、电子商务、信息查询、全文检索等各种各样的Web应用蓬勃发展。
早期的CGI程序一般是经过编译后的可执行程序,使用
C、C++、PASCAL等高级程序设计语言设计。
为了简化CGI程序的修改、编译和发布,人们开始使用脚本语言编写CGI程序。
1987年,LarryWall发明了Perl语言,该语言既具有C语言的高效,又具有脚本语言所要求的便捷,非常适用于CGI程序的编写。
1995年,第一个使用Perl语言编写的CGI程序问世,很快Perl语言在CGI编程领域的风头就盖过了C语言。
之后,Python等脚本语言也陆续加入了CGI编程语言的行列。
后来,微软公司又提出了ISAPI(ServerApplicationProgramInterface,互联网服务 第1章Web应用程序设计基础
5 器应用程序接口),它可实现CGI能提供的全部功能,并在CGI的基础上进行了扩展,如提供了过滤器应用程序接口。
实际上,ISAPI就是一种能够被Web服务器IIS(InformationServer)加载和调用的DLL(DynamicLinkLibrary,动态链接库),其工作原理和CGI大体上是相同的,都是通过交互式主页取得用户输入信息,然后交服务器后台处理。
但是二者在实现机制上大相径庭。
ISAPI与CGI最大的区别在于:在ISAPI下建立的应用程序是以动态链接库的形式存在,而CGI的应用程序一般都是可执行程序。
ISAPI应用的工作流程与CGI也有一些不同:ISAPI应用的DLL不仅可以像CGI程序一样被用户请求激活,还可以被系统预先激活来监视用户输入;对于被用户激活的DLL,在处理完一个用户请求后不会马上消失,而是继续驻留在内存中等待处理别的用户输入,直到过了一段时间后一直没有用户输入时才退出内存。

2.PHP、ASP和JSP阶段 CGI和ISAPI的出现是为了解决以前所有技术都不能满足大型网站动态交互的需求,可它们具有天生的不足。
CGI和ISAPI都运行于服务器,当大量用户并发访问网站时,系统资源消耗迅速,稳定性和安全性成为最大的问题。
除此之外,CGI和ISAPI程序编写困难,对用户请求的响应时间较长,以进程方式运行导致性能受限等。
正由于CGI和ISAPI技术的这些缺点,开发人员需要寻找其他的解决方案。
1994年,RasmusLerdorf发明了专用于Web服务端编程的PHP(HypertextProprocessor,超文本预处理器)技术。
PHP的最大特点是它将HTML代码和PHP指令合成为完整的服务器端动态页面,Web应用的开发人员可以更加简便、快捷地实现动态Web功能。
1996年,微软公司的开发人员借鉴了PHP的思想,在微软的Web服务器产品IIS3.0中引入了ASP(ActiveServerPage,活动服务页)技术。
ASP使用JavaScript和VBScript脚本语言,借助MicrosoftVisualStudio等开发工具在市场上获得极大的成功,ASP迅速成为Windows平台下的Web服务器端的主流开发技术。
1997年,Sun公司推出了Servlet技术,作为Java阵营的CGI解决方案,并于1998年推出了JSP技术,允许在HTML页面中嵌入Java脚本代码,从而实现动态网页功能。
至此,Web服务端编程技术进入了三足鼎立阶段。

3.Web2.0阶段 Web2.0是相对Web1.0(2003年以前的互联网模式)的一类新的互联网应用的统称,是一次从核心内容到外部应用的革命。
由Web1.0单纯通过网络浏览器浏览HTML网页模式向内容更丰富、联系性更强、工具性更强的Web2.0互联网模式的发展已经成为互联网新的发展趋势。
Web1.0到Web2.0的转变,标志着用户从原来单纯地读网页到写网页的转变,从坐享网站建设成果到与信息服务商共同建设网站的转变,或者说,由被动地接收互联网信息向主动创造互联网信息迈进。
有人对Web1.0和Web2.0之间的区别作了以下形象的归纳: •Web1.0谈门户,Web2.0谈个人化。
•Web1.0谈内容,Web2.0谈应用。
•Web1.0谈商业模式,Web2.0谈服务。
•Web1.0谈密闭、大而全,Web2.0谈开放、联合。
•Web1.0网站中心化,Web2.0个人中心化。
6Web应用程序设计实用教程 •Web1.0为一对
一,Web2.0为社会性网络。
•Web1.0不知道对方是谁,Web2.0知道对方的来龙去脉。
实际上,Web2.0本身并不是全新的技术,而是将一些好的技术加以整合和发扬后形成的全新的Web应用模式,它是以Flickr、Craigslist、Linkedin、Tribes、Ryze、Friendster、等网站为代表,以Blog、TAG、SNS、RSS、Wiki等应用为核心,依据六度分隔、XML、SOAP、WSDL、Ajax等新理论和技术实现的互联网服务。
若从软件编程的角度来讲,则在Web2.0时代Web应用系统通常使用高级语言(如C#或Java)来开发;若从应用系统之间的相互关系来讲,则在Web2.0时代Web应用系统以XMLWebServices的形式为其他应用系统提供支持。
因此,Web2.0意味着软件发布周期的终结。
1.1.4Web浏览器与服务器的发展
1.Web浏览器 浏览器是一个用于文档检索和显示的客户端应用程序,通过超文本传输协议HTTP与Web服务器通信。
常见的Web浏览器主要有微软开发的Explorer(IE)、Mozilla开发的Firefox和网景公司开发的NetscapeNavigator等。
其中,IE在Windows平台上运行,Netscape可运行于UNIX、VMS、MAC和Windows平台,Firefox主要运行于Linux和Windows平台,相对IE来说它在安全性能方面更为突出。
目前,主流的浏览器除了提供基本的HTML解析、文档检索、显示与导航等功能外,还支持ActiveX、Java、JavaScript、DOM、XML、CSS以及Ajax等技术。
由于HTML语言自产生以后经历了多次修改,存在着多个版本,且不同的浏览器支持不同版本的HTML,不同的网页编辑软件(如MacromediaDreamweaver和MicrosoftFrontPage)也支持不同版本的HTML,因此这会导致网页的显示效果在不同的浏览器中存在一定的差异。

2.Web服务器 Web服务器运行在网络操作系统平台之上,通常也是网络操作系统的核心服务之
一。
目前,使用最多的Web服务器是Apache和IIS。
Apache是一种开放源码的HTTP服务器,可以在大多数的操作系统中运行。
由于其跨平台和安全特性而被广泛使用,是目前最流行的Web服务器端软件之
一。
它快速、可靠且可通过简单的API扩展,将Perl、Python和PHP等解释器编译到服务器中。
Linux+Apache+MySQL+PHP是一个开发Web应用系统的完美的组合。
IIS(InformationService,互联网信息服务)是微软公司推出的Web服务器。
IIS6.0集成于WindowsServer2003,在安装操作系统时将自动安装。
IIS支持HTTP、FTP(FileTransferProtocol)以及SMTP(SimpleMailTransferProtocol)协议,通过CGI和ISAPI,IIS可以得到高度扩展。
在默认情况下,在WindowsServer2003中的IIS支持CGI、ASP、ASP.NET1.1等应用类型,如果需要在IIS中运行ASP.NET2.0及以上版本等应用,则需要安装相对应版本的.NETFramework。
目前,最新的IIS版本为7.0。
第1章Web应用程序设计基础
7 注意:在WindowsXP也集成了IIS,只不过某些功能受到限制,并且在安装WindowsXP时系统不会自动安装IIS,需要通过添加和删除Windows组件来单独安装IIS。
有关在WindowsXP中安装IIS的操作,请参阅相关书籍或资料。
1.2HTTP、HTML与JavaScript 1.2.1HTTP HTTP(HypertextTransferProtocol,超文本传输协议)是万维网联盟W3C于1990年发布的标准协议,用于Web浏览器与Web服务器之间交互信息通信。

1.URLHTTP协议使用URL(UniformResourceLocator,统一资源定位符)来确定Web浏览器将访问的资源的位置。
URL的格式如下:就是Web服务器的域名地址,/new/china/1001.shtml就是要访问的网页1001.shtml的路径。

2.HTTP的工作机制HTTP协议是用于从Web服务器传输超文本到本地浏览器的传输协议,基于请求/响应模式,如图1-1所示。
开发者把所设计的网页发布到Web服务器。
一个客户机与服务器建立连接后,访问者通过浏览器(如IE、FireFox、NetscapeNavigator等)发出访问请求给Web服务器。
服务器接收到请求后,先解析并响应客户端的请求,再通过HTTP把响应信息(通常为网页)回传给访问者的浏览器,由浏览器最终显示网页。
图1-1HTTP工作机制 8Web应用程序设计实用教程 HTTP请求的基本内容有method、URL、version、headers、message-body等。
其中,method代表HTTP传递参数给服务器的方法是GET还是POST,GET以查询字符串的形式把客户端的参数传递给服务器,查询字符串的长度不能超过1024个字节;POST类似于信件的投递,把客户端的参数封装为消息体传递给服务器。
version代表HTTP协议的版本号,headers是MIME信息,包括请求修饰符、客户机信息等内容。
message-body就是当HTTP以POST方法传递参数时的消息体。
【例1-1】一个HTTP以GET方法发送请求的例子。
GET/Trading/GetProductPrice.aspx?
id=10001HTTP/1.1HOST:localhost 本例表示请求本机中位于虚拟目录Trading下的网页文件GetProductPrice.aspx,同时将参数“id=10001”以查询字符串的形式提交给服务器。
HTTP响应的基本内容与请求的内容相似,主要包括version、status-code、description、headers、message-body等。
其中,status-code代表请求是否成功的状态编码,浏览器可根据该状态编码分析请求失败的原因。
description是对状态编码的描述。
message-body代表服务器回传给浏览器的消息的正文,如果访问请求成功,它就是用户想要浏览的HTML网页的源代码。
【例1-2】一个HTTP响应的例子。
HTTP/1.1200okContent-Type:text/html;charset=uft-8Content-Length:61Productid="10001"Price="1998.50$" 在本例中,“200”是HTTP响应的状态编码;“ok”是该编码的描述信息,表明HTTP请求成功;“text/html;charset=uft-8”表示HTTP响应的消息体为HTML文档,并使用UTF-8编码;“61”表示消息体的长度为61字节。
最后一行就是Web服务回传给客户端的消息体。
值得注意的是,HTTP协议是一种无状态的协议。
这就意味着无论客户端何时发出请求,在客户端接收到服务器返回的响应后,客户端与服务器的连接都将关闭。
因此,如果需要保留客户端与服务器之间交互的任何状态,服务器必须将状态信息与这个响应一同返回给客户端,这样才能使得服务器在下一次客户端请求时从客户端恢复相关的状态信息。
1.2.2HTML
1.HTML标记 HTML(HypertextMarkupLanguage,超文本标记语言)是一种标记语言,用于声明网页文档的结构、网页内容的格式、标识超链接等。
HTML标记最终由浏览器来解释,浏览器一般都具有容错特性,对网页制作人员书写的HTML文档中的语法错误自动忽略,这本身是一件好事,但事实上却造成了HTML语法不严格。
为此,W3C根据XML的思想,在1999年规范了HTML,得到XHTML(eXtensibleHypertextMarkupLanguage)。
在XHTML中,标记有两种形式:单独出现的标记和成对出现的标记。
第1章Web应用程序设计基础
9 单独出现的标记的一般格式为: <元素名称属性1=""属性2=""…/> 例如,
大多数的标记都是成对出现的,一般格式为: <元素名称属性1=""属性2=""…>… 例如,新闻。
值得注意的是,HTML标记不区别大小写,不过XHTML规定在书写HTML文档时要么全部使用小写形式,要么全部使用大写形式,最好不要大小写混合书写。

2.HTML文档结构 用HTML编写的超文本文档称为HTML文档,文件扩展名一般为htm或html。
所谓超文本,就是指HTML允许在网页中加入图片、表格、表单、声音、动画、影视素材等内容,事实上,每一个HTML文档都是一种静态的网页文件。
【例1-3】一个简单的HTML文档。
本网页由罗福强设计

这只是一个HTML的测试文档

以下是一个超链接
更多内容……
该网页在浏览器窗口中的显示效果如图1-2所示。
上例虽然简单,但却体现了HTML文档的基本结构。
其中,是文档标记符,它 是成对出现的,开始标记位于文档的最开始,结 束标记位于文档的最后。
整个HTML文档由文档 头部和文档主体两部分组成。
文档头部由 标识,可以包含文档标题等标记;文档主体则规定 了将在浏览器窗口中显示的内容及其显示格式。<br> 现在,随着大量支持“所见即所得”的功能强大的 网页制作软件(如Dreamweaver、FrontPage等)的普及, 网页制作人员通过点击鼠标就可以完成网页设计,且网页制作软件将自动生成HTML文档。<br>不过,当需要在网 图1-2HTML文档的显示效果 10Web应用程序设计实用教程 页添加网页制作软件本身不支持的格式或功能时,仍需要直接编辑HTML文档,因此仍然有必要了解HTML语言。<br>有关HTML语言的详细使用,请读者参考相关书籍。<br> 1.2.3JavaScript <br><span class='xp'>1.</span>JavaScript的特性 JavaScript语言是一种面向对象和基于事件驱动的解释性的脚本语言。<br>在语法构成上,它与<br><span class='xp'>C、</span>C++和Java相似,都具有诸如if语句、while循环和&&运算符这样的结构。<br>但是它与这些语言的相似之处也仅限于语法上的类同。<br>实际上,JavaScript语言具有以下几个鲜明的基本特点。<br> 1)面向对象的解释性脚本编写语言JavaScript是一种脚本编写语言。<br>与<br><span class='xp'>C、</span>C++和Java不相同,JavaScript脚本或程序不需要编译器编译,在程序运行过程中由浏览器逐行解释执行,遇到程序有错误时停止解释执行。<br>目前,JavaScript的通用核心已经嵌入到大多数Web浏览器中。<br>因为它是一种面向对象的语言,可以像其他面向对象的语言那样创建应用对象。<br>如果把它同DOM(DocumentObjectModel,文档对象模型)技术结合起来,则HTML文档中的元素将成为JavaScript脚本可直接引用的对象,这样编程人员就可以直接通过编程来改变在浏览器窗口中将要显示的内容或显示的效果。<br>实际上,大多数的浏览器早已把JavaScript和DOM进行集成。<br>2)简单而安全的脚本编写语言JavaScript语言常被误解认为它是Sun公司的Java的简化版本,其实,它和Java完全没有关系。<br>JavaScript是一种简单的脚本编写语言,简单性主要体现在:首先,它在语法上是类似<br><span class='xp'>C、</span>C++和Java的,很容易学习和掌握;其次,它是无类型的语言。<br>注意,此处的“无类型”不是指JavaScript不提供任何数据类型,而是指在编写脚本时变量不需要像<br><span class='xp'>C、</span>C++和Java一样要先声明后引用,而是直接引用。<br>除此之外,在<br><span class='xp'>C、</span>C++或Java中的变量一旦确定了其类型,在程序中就不能改变,而JavaScript允许编写人员把任意类型的数据赋值给同一个变量。<br>JavaScript是一种安全的语言,它不允许访问本地的硬盘,也不能把数据直接存储到服务器上,可以创建HTML文档但不允许对现有的HTML文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互,从而有效地防止数据的丢失。<br>3)基于事件驱动的脚本编写语言JavaScript可以直接对用户或客户的输入做出响应,它对用户的响应是采用事件驱动的方式进行的。<br>事件(Event)是指在Web网页中执行某种操作所产生的动作,如单击鼠标、移动窗口、选择菜单等都可以视为事件;所谓事件驱动,就是当事件发生后,可能会引起相应的事件响应。<br>JavaScript基于事件驱动的这一特性允许编程人员通过编写事件处理程序来直接控制浏览器窗口、HTML文档元素的行为,从而实现动态交互。<br>正是因为这一点,JavaScript受到普遍的欢迎。<br>4)跨平台性JavaScript内核是嵌入到浏览器中的,它依赖于浏览器本身,与操作系统平台无关。<br>也就是说,只要用户所用的浏览器支持JavaScript,就可以保证嵌入到Web网页的JavaScript 第1章Web应用程序设计基础11 脚本得到正确执行。<br>JavaScript最出色之处在于可以用很小的程序做大量的事,无需高性能的计算机,它实现了“编写一次,走遍天下”的梦想。<br> <br><span class='xp'>2.</span>简单的JavaScript脚本 【例1-4】以下HTML文档包含简单的JavaScript脚本。<br> <htmlxmlns=""><head> <title>测试JavaScript语言的HTML文档 functionsum(price,amount){ returnprice*amount;}

图书信息如下:

varo=newObject();o.name="C#程序设计";o.price=25;o.amount=41;o.sum=sum(o.price,o.amount);document.write("书名:"+o.name+"
");document.write("单价:"+o.price+"
");document.write("数量:"+o.amount+"
");document.write("金额:"+o.sum+"
"); 该HTML文档包含了两段JavaScript脚本,每一段脚本均放置于标记之间。
第1段脚本使用保留字function定义了一个名叫sum的函数,该函数使用return语句返回产品单价和数量的乘积。
第2段脚本首先使用保留字var和new来创建对象a,并为之添加4个成员,分别是name、price、amount和sum,用来记录产品的名称、单价、数量和金额,最后连续引用document对象的write函数在浏览器窗口输出相关数据信息(注意,document对象是DOM规范定义的,由浏览器提供,可直接引用)。
本例在浏览器中的运行效果如图1-3所示。
可见,JavaScript脚本是嵌入到HTML文档中的特殊小程序。
为了保证浏览器正确解释执行脚本、正确解析HTML文档,脚本必须放置于标记之间。
除此之外,JavaScript脚本同C++程序类似,可以创建对象、定义函数、引用变量等。
有关JavaScript语言的详细使用,请参考相关书籍。
1.3ASP.NET概述 1.3.1ASP的宿命 为了克服CGI和ISAPI的不足,微软公司于1996年推出了ASP技术。
ASP(ActiveServerPage,活动服务页)是由Web服务器动态产生的页面,它可以调用其他程序去做诸如存取数据库之类的事情,也能根据不同的浏览器类型给出不同的结果。
基本上,所有CGI或ISAPI能做的事情它都可以做。
ASP也是一种开放式的非编译的应用环境,它能够组合HTML、JavaScript/VBScript和可重用的ActiveX服务器组件,以构造动态的、强大的、基于Web的商业应用系统。
事实上,直到现在,很多电子商务网站都是使用ASP技术开发的。
ASP的出现标志着Web应用技术从网页设计向Web应用程序设计转变。
ASP技术在被广泛使用的同时,其缺陷也逐渐暴露出来,主要问题有:•ASP使用脚本语言编写程序,但脚本语言功能有限。
•ASP程序与HTML标记混合在一起,可维护性差。
•对于设计人员要求较高,既要擅长界面设计,又要擅长程序设计。
•ASP程序的可扩展性和代码的可重用性都较差。
基于这些缺陷,早在1997年,IIS的开发人员就提出了ASP.NET的技术架构,而当时ASP刚好面世1年。
1.3.2什么是ASP.NET ASP.NET彻底抛弃了脚本语言,而代之以编译式语言(如VisualBasic和C#),为开发者提供更加强有力的编程资源;允许用服务器端控件取代传统的HTML元素,并充分支持事件驱动机制。
ASP.NET是.NETFramework强大功能的一部分。
随着VisualStudio.NET开发平台的不断升级,在VisualStudio2005中,已经完全统一了控制台应用程序、Windows应用程序、Web应用程序、COM+组件和XMLWeb服务等的开发模式。
在VisualStudio2005及后续的版本中,只要掌握了Windows应用程序设计就会开发基于ASP.NET的Web应用程序。
ASP.NET是一种动态网页设计技术,它比其他任何一种动态网页设计技术更容易使用。
它是一种可升级的Web应用程序开发技术,特别擅长于用户交互和数据处理。
ASP.NET不是程序设计语言,是建立在.NETFramework基础之上的程序设计框架,它用来创建Web应用程序。
ASP.NET的语法与ASP兼容,但ASP应用程序不能直接在ASP.NET环境下运行,需要适当修改。
ASP.NET与ASP的最大区别在于:前者是编译型的动态网页技术,而后者是解释型的动态网页技术。
ASP.NET比较流行的版本是1.1版、2.0版和3.0版。
与VisualStudio.NET2003一起发 第1章Web应用程序设计基础13 布的ASP.NET是1.1版,与VisualStudio2005一起发布的ASP.NET是2.0版。
在2007年与VisualStudio2008一起发布的ASP.NET是3.0版。
本书以ASP.NET3.0、.NETFramework3.5和VisualStudio2008为开发平台,所有案例均在VisualStudio2008中经过调试运行。
1.3.3ASP.NET的优势 ASP.NET是ASP“脱胎换骨”后的产物。
相对于ASP和JSP而言,ASP.NET具有不可比拟的优势。

1.可管理性 ASP.NET使用基于文本的、分级的配置系统,简化了将设置应用于服务器环境和Web应用程序的工作。
因为配置信息是存储为纯文本的,因此可以在没有本地管理工具的帮助下应用新的设置。
配置文件的任何变化都可以自动检测到并应用于应用程序。

2.安全性 ASP.NET运行在.NETFramework平台之上,独立于操作系统,.NET的CLR类似于Java的虚拟机,使用代码托管机制,打破了Java虚拟机安全的神话地位。
另外,.NETFramework的类库包含了功能强大、使用方便、用于处理应用程序和数据安全问题的类,ASP.NET应用程序可直接调用这些类来强化程序和数据的安全,使得在安全方面ASP.NET比JSP更优秀。
ASP.NET为Web应用程序提供了默认的授权和身份验证方案,开发人员可以根据应用程序的需要很容易地添加、删除或替换这些方案。

3.易于部署 ASP.NET应用程序在VisualStudio.NET平台上开发,而VisualStudio.NET集成了界面设计、源代码编辑、编译、调试、应用程序部署与发布等功能并且支持智能感知技术,这就使得Web网站的开发效率大大提高。
当Web网站开发结束后,通过简单地将必要的文件复制到服务器上,ASP.NET应用程序即可部署到该服务器上。
不需要重新启动服务器,甚至在部署或替换运行的已编译代码时也不需要重新启动。

4.增强的性能 与ASP不同,ASP.NET使用编译型程序设计语言(如C#),支持预编功能和实时(JIT)编译,内置缓存对象和页面缓存技术。
相比ASP来说,ASP.NET大大提高了应用程序的性能和响应速度。

5.灵活的输出缓存 根据应用程序的需要,ASP.NET可以缓存页数据、页的一部分或整个页。
缓存的项目可以依赖于缓存中的文件或其他项目,或者可以根据过期策略进行刷新。

6.国际化 ASP.NET在内部使用Unicode编码以表示请求和响应数据,可以为每台计算机、每个 14Web应用程序设计实用教程 目录和每页配置国际化设置。
ASP.NET支持主流的20多种程序设计语言,其中包括C#、VisualBasic、J#等。
这些语言都是完全面向对象、编译型的语言。
正因为如此,微软公司统一了DOS程序、Windows程序、Web程序、COM+组件和Web服务的开发模式,实现了代码与界面的分离,其好处在于修改网页时不需要大量修改源代码程序。

7.移动设备支持 ASP.NET支持任何设备上的任何浏览器。
开发人员可使用与用于传统的桌面浏览器相同的编程技术来处理新的移动设备。

8.扩展性和可用性 ASP.NET被设计成可扩展的、具有特有的功能来提高群集的、多处理器环境的性能。
此外,IIS和ASP.NET的CLR密切监视和管理进程,以便在一个进程出现异常时,可在该位置创建新的进程使应用程序继续处理请求。

9.跟踪和调试 ASP.NET提供了跟踪服务,该服务可在应用程序级别和页面级别调试过程中启用。
可以选择查看页面的信息,或者使用应用程序级别的跟踪查看工具查看信息。
在开发和应用程序处于生产状态时,ASP.NET支持使用.NETFramework调试工具进行本地和远程调试。
当应用程序处于生产状态时,跟踪语句能够留在产品代码中而不会影响性能。
10.与.NETFramework集成 因为ASP.NET是.NETFramework的一部分,整个平台的功能和灵活性对Web应用程序都是可用的,Web应用程序可以流畅地访问.NET的类库,可以直接共享.NET的消息和数据访问解决方案。
ASP.NET是独立于语言之外的,所以开发人员能选择最适于应用程序的语言。
另外,CLR的互用性还保护了基于COM开发的现有投资。
11.数据库连接 ASP.NET使用ADO.NET技术实现数据库编程,而ADO.NET大大优化了ADO对象、ODBC、OLE-DB和事务处理管理器等。
因此使用ASP.NET构建的网站在处理数据库中的数据时高效、简单、安全。
JSP使用JDBC访问数据,由于JDBC与ADO.NET有明显的差距,因此在数据连接上,APS.NET比JSP有明显的优势。
1.4VisualStudio2008与Web应用程序的创建 VisualStudio.NET是.NET应用程序的主要集成开发环境。
目前使用较多的VisualStudio.NET有3个版本,分别是VisualStudio.NET2003、VisualStudio2005和VisualStudio2008。
本节将主要介绍VisualStudio2008的基本操作方法以及在VisualStudio2008中创建Web应用程序的基本方法。
第1章Web应用程序设计基础15 1.4.1VisualStudio2008的视图 当计算机安装了VisualStudio2008后,选择“开始”→“所有程序”→MicrosoftVisualStudio2008→MicrosoftVisualStudio2008菜单命令,即可启动VisualStudio2008。
启动成功后,显示VisualStudio2008的操作窗口,如图1-4所示。
菜单栏 工具栏 图1-4VisualStudio2008窗口 刚启动的VisualStudio2008窗口由“菜单栏”、“工具栏”、“起始页”、“解决方案资源管理器”以及“属性”窗口组成。
其中,菜单栏列出了VisualStudio2008的所有操作命令;工具栏则列出了常用的操作命令;解决方案资源管理器用于显示将要创建的应用程序项目的文件夹结构;“属性”窗口列出了当前操作对象的所有属性。
VisualStudio2008是一个集资源管理、用户界面设计、源程序编辑、编译、调试等功能为一体的应用程序集成开发环境(IntegratedDevelopmentEnvironment,IDE)。
其每一项功能几乎都对应着一系列操作界面或操作窗口,不同的功能在不同窗口或对话框中完成,常用窗口有:服务器资源管理器、解决方案资源管理器、工具箱、设计器、编辑器、类视图、“属性”窗口等。
其中,解决方案资源管理器用于显示解决方案、解决方案的项目及这些项目中的项,如图1-5所示。
通过解决方案资源管理器,可以打开文件进行编辑,向项目中添加新文件,以及查看解决方案、项目和项属性。
工具箱列出了可以被添加到VisualStudio项目中的项的图标,如图1-6所示。
VisualStudio2008支持拖放式操作,允许软件开发人员将每个工具箱图标直接拖放到设计视图,或将其粘贴到代码编辑器中。
每一次拖放操作执行后,VisualStudio2008都会自动添加相对应的基础代码。
VisualStudio2008的这种操作方式又称为可视化设计,它借鉴了“傻瓜化”的设计理念。
VisualStudio2008的设计器和编辑器有很多种,常见的设计器有Windows窗体设计器、Web窗体设计器(如图1-7所示)、数据集设计器、XML架构设计器、报表设计器等。
这些 16Web应用程序设计实用教程 设计器的窗口在设计人员添加新项时根据项目类型由VisualStudio2008自动打开。
常见的编辑器有文本编辑器和代码编辑器。
文本编辑器是IDE中的基本字处理器,而代码编辑器是基本源代码编辑器。
其他的编辑器(如CSS编辑器、HTML设计器和XML设计器等)共享代码编辑器中提供的许多功能,以及特定于所支持的代码或标记类型的增强功能。
编辑器和设计器通常有两个视图:图形设计视图和代码隐藏视图或源视图(如图1-8所示)。
图1-5解决方案资源管理器 图1-6工具箱 图1-7Web窗体设计器 图1-8HTML源视图 VisualStudio2008的类视图展示了正在开发项目的代码类的结构。
类视图包含两个窗格:上部的“对象”窗格和下部的“成员”窗格,如图1-9所示。
“对象”窗格包含一个可以展开的树型结构,其顶级节点表示项目。
单击树中的加号(+),即可展开树型结构。
树中的图标用于标识项目中使用的分层结构,如命名空间、类型、接口、枚举和类,体现类的派生与继承关系。
“成员”窗格中列出了某个类属性、方法、事件、变量、常量和包含的其他项。
VisualStudio2008的“属性”窗口用来查看和更改位于编辑器和设计器中的选定对象的设计时属性及事件,也可用来编辑和查看文件、项目和解决方案的属性,如图1-10所示。
“属性”窗口显示编辑字段的不同类型,具体取决于特定属性的需要。
这些编辑字段包括编辑框、下拉列表以及到自定义编辑器对话框的链接。
属性以灰色显示且是只读的。
在“属性”窗口中列出所选对象的内容有:对象名(表示当前选定的一个或多个对象)、所有属性 第1章Web应用程序设计基础17 及属性值(可按类别顺序或字线顺序显示)、“属性页”对话框、事件列表(表示该对象支持的事件)。
VisualStudio2008的每一个功能子窗口都采用悬浮设计,允许程序设计人员自由拖动这些子窗口,并把它们放置于主窗口的任意位置。
在完成某一项操作后,用户可以关闭这些子窗口。
当然,子窗口一旦关闭,初学者往往不知道怎样才能让它重新显示或打开。
其实,显示子窗口的操作非常简单,只需在“视图”菜单中选择即可,如图1-11所示。
图1-9类视图 图1-10“属性”窗口 图1-11VisualStudio2008的“视图”菜单 1.4.2VisualStudio2008的基本操作
1.应用程序项目的创建与打开 1)新建项目VisualStudio2008是一个高度集成的开发工具,它集VisualBasic、C++、C#和J#4种程序设计语言为一体,可以创建这4种语言的应用程序。
它具有创建控制台应用程序、Windows应用程序、类库、设备应用程序、Windows控件库、安装项目、Web应用程序(ASP.NET网站)和ASP.NETWeb服务等功能。
因此,在创建新项目之前应该先做好选择。
选择“文件”→“新建”→“项目”菜单命令,打开“新建项目”对话框,根据需要选择所有创建的项目即可,如图1-12所示。
例如,在“项目类型”列表框中选择“VisualC#”项,在“模板”列表框中选择“Windows应用程序”项,在“名称”文本框中输入应用程序项目的名字,在“位置”下拉列表框中设置应用程序项目的创建位置,在“解决方案名称”文本框中输入解决方案的名称,然后单击“确定”按钮即可。
2)打开项目要打开一个已经存在的应用程序项目,可按如下方法操作: 18Web应用程序设计实用教程 图1-12“新建项目”对话框 选择“文件”→“打开”→“项目/解决方案”菜单命令,可以打开控制台应用程序、Windows应用程序等;选择“文件”→“打开”→“网站”菜单命令,可以打开Web应用程序项目;也可以通过选择“文件”→“最近的项目”菜单命令打开已存在的项目,还可以通过“起始页”选择最近的项目来打开。

2.应用程序项目的设计与编辑在创建或打开项目之后,即可在VisualStudio2008窗口的工作区中对应用程序项目进行设计和编辑。
VisualStudio2008窗口的工作区一般分为3部分,左边是工具箱,中间是设计区,右边是解决方案资源管理器和属性窗口,如图1-13所示。
图1-13设计或编辑应用程序 第1章Web应用程序设计基础19 修改项目文件名、添加或删除项目文件在解决方案资源管理器中进行,具体操作方法是:先在解决方案资源管理器中选择操作对象,然后右击鼠标,再选择相应的快捷菜单命令。
界面设计或源代码编写在设计区中进行,具体操作方法是:直接拖动工具箱中的控件图标并放到设计区。
想要修改某个控件或对象的属性,在“属性”窗口中即可完成操作。
编辑或修改程序源代码时,先在设计区右击鼠标,然后在快捷菜单中选择“查看源代码”命令,把VisualStudio2008的设计视图切换到源代码编辑视图即可;反之,在源代码编辑视图中,在文本编辑窗口中右击鼠标,在快捷菜单中选择“查看设计器”命令,即可切换到设计视图。
当应用程序的设计和编辑操作完成之后,如果需要保存,只需单击工具栏上的“全部保存”按钮,即可把所有编辑或修改操作保存到磁盘中。

3.应用程序项目的调试与生成 在应用程序开发过程中或开发结束后,可能需要查看设计的某个部分的运行情况或结果,此时只需选择“调试”→“启动调试”菜单命令,或直接按键进行调试。
当程序中有错误时,“错误列表”窗口显示编译器产生的错误提示信息,程序员可根据错误提示信息修改程序。
值得注意的是,语言编译器只能发现源程序中的语法错误,并不能发现程序逻辑错误。
当设计已经全部完成后,可选择“生成”→“生成XXX”菜单命令,生成解决方案(其中,“XXX”为项目名)。
此时,语言编译器会在应用程序项目所在目录下的bin\debug文件夹中生成一个可执行文件(.exe)。
但Web应用程序经过编译后不会生成可执行文件,只能得到.dll文件。
注意:VisualStudio2008会自动根据在创建应用程序项目时所选择的语言,来选择相应的语言编译器对源程序进行编译,通过语言编译器编译之后,源代码被翻译成.NET公共语言运行库能够识别的中间语言代码。
因此,VisualStudio.NET生成的.exe文件或.dll文件与传统的可执行文件或动态链接库文件虽然扩展名相同,但有很大的区别,传统的可执行文件或动态链接库文件可直接在操作系统平台上运行,而VisualStudio.NET生成的.exe文件或.dll文件离不开.NETFramework,必须先安装.NETFramework之后才能运行。
1.4.3创建Web应用程序的基本方法 与创建Windows程序或者控制台应用程序不同的是,在VisualStudio2008中创建Web应用程序必须选择“文件”→“新建”→“网站”菜单命令,并在弹出的“新建网站”对话框中根据需要选择相应的项目即可,如图1-14所示。
在创建网站时,应注意以下几点:•“模板”列表框中的“ASP.NET网站”表示Web应用程序,而“ASP.NETWeb服 务”表示能通过互联网远程调用的组件。
•“位置”下拉列表框中有3种选择,其中,“文件系统”表示将网站创建到磁盘文件 夹中,“HTTP”表示把网站直接创建到某一个Web服务器中,“FTP”表示把网站创建到某一个FTP服务器,以便于上传文件到Web服务器。
•“语言”下拉列表框中列举了可用的程序设计语言,如“VisualC#”。
20Web应用程序设计实用教程 图1-14“新建网站”对话框 【例1-5】设计一个简单的Web应用程序,效果如图1-15所示。
详细操作步骤如下:
(1)启动VisualStudio2008。

(2)新建网站。
选择“文件”→“新建”→“网站”菜单命令,弹 出“新建网站”对话框,在“模板”列表框中选择“ASP.NET 网站”。
然后在“新建网站”对话框中的“位置”下拉列表框中选择“文件系统”,并在后面的输入框中输入保存网 图1-15运行效果 站的文件夹(如d:\temp\TestWebSite),单击“确定”按钮,系统自动完成项目的配置(包 括自动生成Web窗体文件Default.aspx,以及与之关联的源代码文件Default.aspx.cs等)。

(3)设计页面并编辑源程序。
首先从工具栏的“标准”选项卡中拖动以下控件图标到设计区中:两个 ,一个 ,一个 ,并根据图1-15排列。
之后,通过属性窗口分别修改这些控 件对象的属性,如表1-1所示。
控件,Label1,TextBox1 ,LinkButton1 ,Label2 表1-1属性TextIDTextIDTextIDText 需要修改的属性项属性设置客户名称:txtCustomerName""btnSearch查找lblResult"" 第1章Web应用程序设计基础21 接下来,双击 对象,把Web窗体的设计视图切换为源程序文件Default.aspx.cs 的编辑视图。
同时,VisualStudio.NET2008将自动生成该对象的单击鼠标事件函数的 框架。
再在Default.aspx.cs文件的源代码编辑窗口中添加源程序代码,输入后的完整代码如下: usingSystem;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.HtmlControls;usingSystem.Web.UI.WebControls; publicpartialclass_Default:System.Web.UI.Page{ protectedvoidPage_Load(objectsender,EventArgse){ }protectedvoidbtnSearch_Click(objectsender,EventArgse){ boolisSearched=false;string[]customers=newString[]{"联想集团","国腾电子","微软公司","希望集团","通威集团","西门子电子公司"};for(inti=0;i=-1){ lblResult.Text="查找成功!该客户是"+i+"个客户。
";isSearched=true;}}if(!
isSearched)lblResult.Text="Sorry!你要查找的客户不存在。
";}} 最后,切换到Default.aspx文件的设计视图。
如果单击设计区左下角的按钮,即可切换到HTML源视图,看到由VisualStudio2008自动生成的ASP.NET页面源代码了,详细如下: <%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%> DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://1-transitional.dtd"> 22Web应用程序设计实用教程 Web应用程序示例
查找

(4)调试并运行程序。
在解决方案资源管理器中右击Default.aspx,选择“在浏览器中查看”命令,VisualStudio 2008将自动启动C#语言编译器编译源程序,并启动系统进程WebDev.WebServer.exe(即 ASP.NETDevelopmentServer)来执行Web应用程序,最后把运行结果输出到浏览器。
说明:
(1)在第2步中确认创建新网站后,VisualStudio2008会把与网站有关的文件保存到指 定的文件夹中(如d:\temp\TestWebSite),同时也会在“我的文档\VisualStudio2008\Projects” 下创建一个同名的文件夹(如TestWebSite),用来保存与网站无关的文件(如解决方案文件 TestWebSite.sln)。
VisualStudio2008的这个自动功能为发布网站提供了很多便利。

(2)在第3步中由VisualStudio2008自动生成的Default.aspx文件存在两种视图:一种是 设计视图,另一种是HTML源视图。
其中,设计视图与Windows窗体的设计视图一样,具有 所见即所得的特点;HTML源视图将显示Web窗体的源代码(一种由HTML标记、WebServer 控件页面元素等组成的文本文档)。
切换视图操作方法如下:选择“视图”→“设计器”或“视 图”→“标记”菜单命令即可,也可在设计区的左下角单击 按钮或按钮来切换。

(3)在第4步中也可以选择“调试”→“启动调试”或“调试”→“开始执行(不调 试)”菜单命令执行Web应用程序。
当项目中存在若干个Web窗体时,需要先将要浏览的 Web窗体设置为起始页。

(4)在VisualStudio2003中,所创建的Web应用程序需要通过IIS来管理,以便远程 客户端通过浏览器来访问。
而从VisualStudio2005开始,IDE实现了Web应用程序的开发 与IIS分离,在开发过程中不需要IIS,而是直接启动系统进程WebDev.WebServer.exe来执 行Web应用程序,这就大大方便了程序设计员调试Web应用程序。

(5)在设计Web应用程序时,既要考虑自定义类(如_Default),也要考虑重用.NET Framework类库中的类。
一个Web应用程序必须借助于命名空间System.Web、System.Web.UI、 System.Web.UI.WebControls等来实现,因此需要将这些命名空间引入。
在使用VisualStudio 2008设计Web应用程序时,VisualStudio2008会自动将这些命名空间引入到项目中,并自 动链接相应的动态链接库(DLL),以保证编译器能正确识别它们。
第1章Web应用程序设计基础23
(6)Web应用程序与控制台应用程序和Windows应用程序的不同之处在于,Web应用程序不需要从Main方法开始执行,因此不需要为Web应用程序添加Main方法。

(7)Web应用程序同样采用事件驱动编程思想,只有当事件发生时系统才调用相应的事件方法。
例如,在本例中,只有客户端单击了“查找”按钮时,单击鼠标事件才会触发,Web服务器才会去执行事件方法btnSearch_Click。

(8)事件方法btnSearch_Click的主要作用是:在数组中查找客户端所输入的客户名称,并根据查找是否成功来显示相应的结果,结果最终通过标签lblResult输出。
注意:对本例中所涉及的内容只需要了解或者有感性认识即可,相关知识在后续章节将详细介绍。
1.4.4ASP.NETWeb应用程序的结构 在VisualStudio2008中,创建一个网站就是创建一个Web应用程序,整个网站项目的文件就由VisualStudio2008的解决方案管理器来管理。
一个完整的ASP.NETWeb应用程序通常包含以下文件:
1.解决方案文件 解决方案文件(文件的扩展名为.sln)用于连接一个或多个项目并存储某些全局信息。
与解决方案文件相关的文件是解决方案用户选项文件(扩展名为.suo),该文件用于记录加入到解决方案中的所有解决方案记录和自定义设置。
严格来说,解决方案文件与网站是没有关系的,客户端浏览器是不关心这两个文件的,是没有必要发布到Web服务器中的。
为此,VisualStudio2008采用分离技术,在“我的文档\VisualStudio2008\Projects”下自动创建一个与网站项目同名的文件夹来保存解决方案文件。

2.网站项目文件 在同一个解决方案中,VisualStudio2008允许添加多个网站项目。
每一个网站项目都是存储在自己的文件夹中的一个独立的Web应用程序。
在网站项目中,通常可以添加以下项目文件: 1)ASP.NETWeb窗体一个ASP.NETWeb窗体通常由两个文件组成:一个是.aspx文件;另一个是同名的.cs文件,如实例1-5中的Default.aspx和Default.aspx.cs文件所示。
.aspx文件保存了最终能够在客户端浏览器中显示的界面元素,而.cs文件则封装了Web窗体需要的源程序。
2)ASP.NETWeb服务Web服务用于创建只能被其他程序远程访问的动态Web站点,它通常不包含用户界面。
一个Web服务同样包含两个文件:一个是.asmx文件;另一个是同名的.cs文件。
前者是Web服务的入口文件,后者包含了客户端通过能够远程调用的程序。
3)全局应用程序类全局应用程序类,即Global.asax文件,它包含了响应应用程序级的事件代码,如应用程序的onStart事件、OnError事件等。
ASP.NET将根据该文件自动从HttpApplication类创 24Web应用程序设计实用教程 建一个派生类,再由派生类创建一个应用程序实例来代表一个正在运行的Web应用程序。
Global.asax文件是可以没有的,如果没有,ASP.NET的编译器将直接创建HttpApplication类的实例来代表应用程序。
4)配置文件配置文件Web.config包含了公共语言运行库CLR能读取的配置信息。
当Web应用程序使用默认设置时,该文件可以没有。
例如,实例1-5就不需要配置文件。

3.程序集文件 程序集文件存放在Web站点的\bin目录下,一个站点可以有很多的程序集文件。
这些程序集文件一般有两种来源:一是该Web应用程序要引用的又不包含在.NETFramework类库中的其他动态链接库文件;二是由Web窗体的源程序文件编译而成的.dll文件。
第二种程序集文件一般在发布Web应用程序时由VisualStudio.NET2008自动生成。
综上所述,一个Web应用程序实质上就是一个ASP.NET网站。
本章小结 本章主要介绍了Web应用技术的发展概况、HTTP、HTML、JavaScript、.NETFramework概述、ASP.NET概述、VisualStudio.NET2008的基本操作以及Web应用程序的创建方法等。
其中,针对Web应用技术的发展概况,分客户端技术和服务器端技术重点介绍了有关HTML、DHTML、CSS、JavaScript、XML、CGI、PHP、ASP、JSP以及插件技术等的演变过程。
针对HTTP、HTML与JavaScript,通过实例重点介绍了HTTP的工作机制、HTML文档的结构、JavaScript语言的特点。
针对NetFramework概述,重点介绍了什么是.NET、.NETFramework、CLR以及.NETFramework类库,同时介绍了.NETFramework的优势。
针对ASP.NET概述,重点介绍了ASP.NET的发展历程、工作原理以及特点。
针对VisualStudio.NET2008与Web应用程序的创建,以实例重点介绍了VisualStudio.NET2008的基本操作方法,以及在VisualStudio.NET2008中创建一个Web应用程序的方法。
习题1
1.写出以下Web应用技术的中文含义:HTML、CSS、DOM、XML、HTTP、URL、IIS、CGI、ASP、CLR2.JavaScript、ASP和ASP.NET的主要区别是什么?
3.简述静态网页技术与动态网页技术的区别。

4.简述在VisualStudio.NET2008中创建一个Web应用程序的操作流程。

5.指出下列文件的作用:.sln、.aspx、.cs、.dll、Global.asax、Web.config6.查询相关资料,试比较JSP和ASP.NET两种技术的特点。

标签: #文件 #尺寸 #文件 #打不开 #文件 #文件 #文件 #文件