【Asp.net精品源码栏目提醒】:以下是网学会员为您推荐的Asp.net精品源码-Web应用程序其实是由许多Web页面构成的【精品文档-doc】 - 励志,希望本篇文章对您学习有所帮助。
ASP.NETC基础教程 2 Web应用程序其实是由许多Web页面构成的这些Web页面有动态的也有静态的。
Web应用程序的范围很广可以包括从提供HTML页的传统Web站点到在intranet或Internet上运行的功能完善的业务应用程序直到提供基于Web的组件的复杂业务及业务应用程序。
本章将介绍以下内容
ASP.NET Web应用程序基本概念 Web服务器概念 运行
ASP.NET Web应用程序 1.1
ASP.NET Web应用程序概述 Web应用程序是指Web服务器上包含的许多静态和动态的资源的集合对于
ASP.NET Web应用程序来说这些资源包括多个静态的HTML页面、动态的
ASP.NET页面、
ASP.NET用户控件、Web 服务等。
这些资源的集合成为Web应用程序。
1.1.1 HTTP协议 Internet 遵循一个重要的协议即“超文本传输协议”HTTP。
HTTP 是用于传输Web页的客户端/服务器协议。
当浏览器发出 Web 页请求时此协议将建立一个与服务器的连接。
当连接通畅后服务器将找到请求的页并将它发送给客户端。
信息发送到客户端后HTTP将释放此连接。
这使得此协议可以接受并服务大量的客户端请求。
图1-1所示为HTTP遵循的过程。
服务器 客户端浏览器 客户端将“请给我发送‘微软主页’” 页请求 请求发送给 Web 服务器 服务器 Web 服务器发送请求的HTML
文档 客户端浏览器 超文本简介 图1-1 HTTP协议演示 HTTP服务会作为应用程序在Web服务器上运行并管理HTTP协议。
1.1.2 Web服务器——IIS简介 第1章 开发第一个
ASP.NET Web应用程序 3 如图1-1所示Web服务器承担着为浏览器提供服务的责任这些服务主要包括 1 / 浏览器提供其请求的HTML静态的页面 这些静态页面主要包括一些HTML页面。
例如在浏览器中输入http://www.microsoft. com那么Web服务器将为浏览器返回微软的主页这是一个静态的Web页面。
2 / 处理浏览器请求的动态页面 这些动态页面包括很多类型有ASP页面、
JSP页面、
PHP页面等。
例如如果在微软的网站查找微软提供的一些产品信息单击“查询”按钮后浏览器将向Web服务器请求一个动态的页面该页面将返回用户
查询的产品的相关信息。
图1-2显示了Web浏览器和Web服务器交互的过程。
图1-2 Web浏览器和Web服务器之间的交互 目前Web浏览器有很多不同的产品比较常见的有微软的Internet Explorer浏览器和网景公司的Netscape浏览器。
同样目前的Web服务器产品也有多种基于微软Windows平台的有IIS Web服务器基于其他平台的有Tomcat等不同的服务器产品。
ASP.NET是Microsoft开发的Web应用程序开发的技术。
因此本书所使用的Web服务器为IIS。
可以在安装Windows 2000、Windows 2003时安装IIS Web服务器。
可以通过打开“控制面板管理工具”的Internet信息服务IIS管理器程序以对IIS Web服务器进行操作管理。
如图1-3所示为Windows 2003提供的IIS 6.0的操作平台。
IIS提供的基本服务包括发布信息、传输文件、支持用户
通信和更新这些服务所依赖的数据存储。
所有的Web站点都有一个主目录。
在默认情况下IIS将Web的主目录安装到位于Inetpubwwwroot的根驱动器上。
可以使用 IIS 管理器来更改网站的主目录当然操作的时候操作者的身份必须是本地计算机上 Administrators 组的成员或者已被委派了相应的权限。
一般情况下使用默认的Web主目录即可。
网站主目录创建完毕后我们就可以设置网站的默认主页并在其中创建虚拟目录来组织Web应用程序。
下面
演示如何在IIS中创建虚拟目录来组织Web应用程序步骤如下。
ASP.NETC基础教程 4 从“开始”菜单中单击“所有程序”→“管理工具”→“Internet信息服务IIS管理服务器”菜单项打开Internet信息服务管理器即IIS管理器。
2 在IIS管理器中展开“本地
计算机”→“网站”目录选中“默认网站”节点单击鼠标右键在弹出菜单中选择“停止”命令或者直接单击工具栏上的“停止”按钮将默认网站的Web服务停止。
图1-3 IIS操作平台 3 打开Windows资源管理器在D盘上建一个目录wwwroot然后把Inetpubwwwroot下所有的文件都复制到D:wwwroot中。
4 在IIS管理器中在“默认网站”节点上右击打开快捷菜单然后单击“属性”打开“默认网站属性”对话框。
打开“主目录”选项卡将本地路径更改为D:wwwroot如图1-4所示。
单击“确定”按钮退出。
第1章 开发第一个
ASP.NET Web应用程序 5 图1-4 更改网站默认目录 5 单击IIS 管理器工具栏上的“启动”按钮启动Web服务。
6 在IIS管理器中用鼠标右击“默认网站”图标选择“新建”→“虚拟目录”命令。
IIS将启动“虚拟目录创建向导”对话框帮助我们完成创建虚拟目录的步骤。
7 单击对话框中的“下一步”按钮以显示虚拟目录别名页如图1-5所示。
为文件夹输入别名SimpleWebApplication。
别名是我们用来标识该目录中的资源的名称。
在Visual Studio .
NET中别名是用来指定项目位置的名称。
8 单击“下一步”按钮以显示Web站点内容目录页如图1-6所示。
打开Windows资源管理器创建一个目录TestWeb。
然后在Web站点内容目录页中填入路径为D:test
web。
图1-5 设置虚拟目录别名 图1-6 网站内容目录设置页面 9 单击对话框中的“下一步”按钮打开虚拟目录访问权限设置页面如图1-7所示。
我们默认的虚拟目录访问权限不变即允许读取、运行脚本权限。
ASP.NETC基础教程 6 图1-7 设置虚拟目录访问权限 单击“下一步”按钮再单击“完成”按钮创建虚拟目录并终止向导。
查看IIS管理器中虚拟目录的创建结果我们可以发现默认网站中已经增加了一个节点SimpleWeb Application其图标为齿轮状。
1.1.3 动态页面技术 随着
网络技术的发展用户不仅需要浏览一些静态的页面还希望获得动态的交互式的内容。
这里的动态内容不是指在Web页面上可见的动态图标或者会跳舞的小动物这些动画通常是在用户浏览器中使用客户端
JavaScript创建的。
动态内容是指为单个用户的每次访问量身定制的内容它允许双向的交流。
通过使用Web页中的窗体用户可以请求定制的内容。
例如在一些论坛中用户输入用户名和密码后就可以进入为该用户定做的论坛页面比如这个页面中可能会包含用户已经发表的文章或者用户的好友等信息。
用户和服务器之间的交流也就是浏览器与Web服务器之间的交互了这种交互有很多种方式其中
HTML的Web表单就是一种常见的交互方式。
与将静态的HTML
文档放在合适的目录并允许用户通过浏览器阅读相比管理所有的动态内容非常地有挑战性。
可以提供动态内容的方法不止一种以下将介绍创建动态内容的各种技术。
每种技术都有各自的优缺点并且都是为提供动态内容而特别
设计。
本节列出这些动态网页技术的目的是为了让读者对动态页面技术有一个全面的了解读者也可以不了解这些技术直接进入
ASP.NET部分进行
学习。
1通用网关接口CGI 早期的动态Web内容的解决方案之一是通用网关接口CGI规范它现在在Unix领域中还是十分流行。
CGI应用程序是可在Web服务器上运行的可执行程序并且能够用来创建动态Web内容。
以下程序为一个CGI控制台程序它在浏览器中的运行结果如图1-8所示。
第1章 开发第一个
ASP.NET Web应用程序 7 图1-8 CGI程序运行效果图 使用C开发CGI程序实例代码 include stdafx.h include int mainint argc char argv printfHTTP/1.0 200 OK nContent-Type:text/html nn printfr n r n printfr n 使用CGI开发动态Web页面 printfr n r n printf return 0 读者只需要将以上程序的EXE文件放在虚拟目录下就可以在浏览器中浏览该CGI程序生成的动态网页了。
CGI程序几乎无所不能它可以访问数据库读取文件和操作
注册表并且可以执行Win32程序的其他功能。
在以上程序中我们使用了C语言或者C语言来开发CGI
程序。
在Unix环境下通常使用Perl来创建CGI程序。
如果程序员具备HTML稍有联系的文本模式的经验则基本能够创建CGI程序。
CGI程序容易测试、调试。
在部署的时候只需要将可执行文件保存在虚拟目录下即可在浏览器中测试程序。
CGI程序在执行的时候必须先将CGI程序的可执行文件即EXE文件从虚拟目录下载到Web服务器上或者执行该程序。
在开发CGI程序的时候我们创建的虚拟目录必须有执行CGI程序的权限如图1-7所示。
图1-7显示了创建虚拟目录时设置权限的对话框。
只有创建的虚拟目录拥有执行CGI的权限才能在Web服务器中执行CGI的可执行程 ASP.NETC基础教程 8 序它通过标准输入得到请求的信息并且将发送给标准输出的所有信息发送给浏览器。
如果没有正确地建立HTTP头有的浏览器将忽略该文本但是有的浏览器同时显示出错信息。
CGI程序在程序运行完毕并且退出之后可以像其他程序那样修改或者删除CGI程序。
CGI 这种特性将导致一些问题的出现。
CGI程序在运行时加载到内存中在完成时将完全从内存中删除。
创建和删除进程需要做大量的
工作。
与阅读HTML文件相比创建和删除进程是一个非常“昂贵”的操作。
Web服务器如果为每一个请求创建和删除进程将导致性能问题也会涉及到资源消耗问题。
如果有很多客户端访问同一个CGI程序在内存中就会有该程序的很多个实例这将很快消耗掉Web服务器的资源并且导致可伸缩性的
问题。
当Web站点从纯粹的文件共享服务器发展到大型的电子商务或者电子政务机构时使用CGI解决
方案将面临大量的问题。
2Internet服务器应用程序编程接口ISAPI 为了解决CGI带来的性能和可伸缩性问题微软公司为开发人员提供了另一种动态Web页面开发方法通过这种方法可以建立可伸缩性的应用程序。
这种方法为Internet服务器应用程序编程接口ISAPI。
ISAPI的功能依赖于DLL而不是可执行文件。
毫无疑问使用DLL而不是可执行程序在性能和可伸缩性上都有一定的优势。
下面是使用Visual Studio.NET创建的一个ISAPI程序该程序使用C开发。
读者可以打开Visual Studio.NET然后选择“MFC ISAPI扩展DLL”模板即可创建ISAPI程序如图1-9所示。
图1-9 创建ISAPI程序 使用Visual C.NET开发ISAPI程序时将需要开发者进行对象设置如图1-10所示。
从图1-10中可看出有两种类型的对象即筛选对象和服务器扩展对象。
第1章 开发第一个
ASP.NET Web应用程序 9 图1-10 ISAPI扩展向导 ISAPI服务器扩展对象被发送到IIS服务器的URL中显示调用。
API扩展可以带参数调用该参数允许一个ISAPI扩展执行多个任务。
与CGI例子一样必须启用目录的可执行权限否则ISAPI服务器扩展DLL将会下载到客户机而不是在服务器端执行。
ISAPI服务器扩展通
常用来处理客户端的请求并且以HTML格式输出响应这一点和CDI相似。
ISAPI筛选对象具有CGI应用程序所不能实现的功能。
ISAPI筛选器不会被显示调用它们必须在响应某一个请求事件时由IIS调用。
开发人员可以请求IIS筛选器在下列事件发生时被调用 服务器已经预处理客户端头信息时 服务器对客户端进行验证时 服务器将逻辑URL映射为物理URL时 在原始数据从客户端发送到服务器之前 在原始数据从客户端发送到服务器之后当在服务器处理它之前 服务器记录日志时 会话结束时 与其他筛选器一样ISAPI筛选器应该只响应它需要的通知并尽可能地处理它们。
ISAPI筛选器对象的用途之一就是提供客户端的验证或者修改要发送到客户端的HTML。
以下代码使用Visual Studio.NET创建一个ISAPI服务器扩展对象图1-11为以下程序在浏览器中浏览的结果。
在下面的代码中突出显示的代码是经过修改的代码其他代码为自动生产的代码。
ASP.NETC基础教程 10 图1-11 运行效果图 ISAPI应用程序编程接口实例代码