ASP访问SQL Server数据库Word文档格式.docx
《ASP访问SQL Server数据库Word文档格式.docx》由会员分享,可在线阅读,更多相关《ASP访问SQL Server数据库Word文档格式.docx(83页珍藏版)》请在冰豆网上搜索。
在Windows2000操作系统上,通常选择IIS5.0作为ASP得以运行的网络服务器。
IIS是InternetInformationServer的缩写,它是微软公司主推的Web服务器,最新的版本是WindowsXP里面包含的IIS6.0。
IIS与WindowNTServer完全集成在一起,因而用户能够利用WindowsNTServer和NTFS文件系统内置的安全特性,建立强大、灵活而安全的Internet和Intranet站点。
IIS3.0版本以后引入了ASP,可以很容易地张贴动态内容和开发基于Web的应用程序。
IIS的安装、管理和配置都相当简单。
下面介绍IIS的安装及其配置:
1.在“控制面板”的“添加/删除程序”中,选择“添加/删除Windows组件”,选中列表中的“Internet信息服务(IIS)”,如图10-6;
图10-6安装Internet信息服务IIS
2.单击“详细信息”按钮,选择要安装的子组件,如图10-7,确认“FrontPage2000服务器扩展”、“Internet信息服务管理单元”和“万维网服务”组件被选中,其他组件可以根据用户的需要选择安装,单击“确定”返回“安装Internet信息服务IIS”界面,单击“下一步”,即可开始安装文件和配置系统参数,安装完毕后,重新启动系统;
图10-7选择要安装的子组件
3.可以通过在开始菜单的“管理工具”中选择“Internet信息服务”打开IIS的配置管理主界面,如图10-8,选中“默认网站”,单击鼠标右键,可以“暂停”、“停止”或者“启动”默认的Web站点,也可以新建“虚拟目录”来发布一个新的Web站点,还可以对某个Web站点进行“服务器扩展检查”来提高IIS的安全性。
4.选择鼠标右键菜单中的“属性”选项,可以对当前Web站点进行进一步的管理配置。
图10-8IIS的配置管理主界面
图10-9“网站”属性页面
如图10-9,在“网站”属性页面可以设置该站点的“描述”、服务器的“IP地址”和Web服务所使用的“TCP端口”等,还可以设置“连接超时”和“日志纪录”等项目;
在“主目录”属性页面可以设置Web站点在服务器上的物理路径,并且可以进行访问权限的设置,如“读取”、“写入”、“目录浏览”、“记录访问”、“脚本资源访问”和“索引资源”,如图10-10,单击“配置”按钮,进行“应用程序配置”,在“调试”属性页面中确认选中“启用ASP服务器脚本调试”和“启用ASP客户端脚本调试”,这在进行对ASP应用程序的调试过程中会有所帮助,如图10-11;
在“文档”属性页面可以设置当客户端对该Web站点请求连接时默认启动的HTML页面或者ASP应用程序;
在“目录安全性”属性页面可以设置“匿名访问和身份验证控制”和“安全证书”,以确保管理信息系统运行的安全性能;
在“服务器扩展”属性页面可以设置“客户脚本”,默认为VBScript,如图10-12。
图10-10“主目录”属性页面
图10-11应用程序配置页面
图10-12“服务器扩展”属性页面
10.1.3在WindowsXP上建立ASP的运行环境
在WindowsXP操作系统中集成了IIS5.1,在WindowsXP上建立ASP的运行环境的步骤和在Windows2000下基本相同,此处不再重复。
10.2ASP对象和组件
如果你想编写ASP应用程序,首先应该掌握一种脚本语言,如VBScript,并且熟练掌握ASP的各种内嵌对象和ActiveX组件。
这些对象以及组件都可以用来拓展ASP应用程序的功能,实际上,只要掌握了内嵌对象和ActiveX组件,你就可以编写功能强大的ASP应用程序。
一个对象具有方法、属性或者集合,其中对象的方法决定了我们可以用这个对象做什么事情;
对象的属性可以读取,它描述对象状态或者设置对象状态;
对象的集合包含了很多和对象有关系的键与值的配对。
下面是对每一种对象的快速浏览:
●Request对象为脚本提供客户端在请求一个页面或传送一个窗体时提供的所有信息,这包括能够标识浏览器和用户的HTTP变量,存储他们的浏览器对应于这个域的cookie,以及附在URL后面的值(查询字符串或页面中<
Form>
段中的HTML控件内的值)。
它也给我们提供了通过SecureSocketLayer(SSL)或其他的加密通信协议访问证书的能力,并提供有助于管理连接的属性。
●Response对象用来访问所创建的并返回客户端的响应。
它为脚本提供了标识服务器和性能的HTTP变量,发送给浏览器的信息内容和任何将在Cookie中存储的信息。
它也提供了一系列用于创建输出页的方法,如无所不在的Response.Write方法。
●Application对象是在为响应一个ASP页的首次请求而载入DLL时创建的,它提供了存储空间用来存放变量和对象的引用,可用于所有的页面,任何访问者都可以打开它们。
●Session对象是在每一位访问者从Web站点或Web应用程序中首次请求一个ASP页时创建的,它将保留到默认的期限结束(或者由脚本决定终止的期限)。
它与Application对象一样提供一个空间用来存放变量和对象的引用,但只能供目前的访问者在会话的生命期中打开的页面使用。
●Server对象提供了一系列的方法和属性,在使用ASP编写脚本时是非常有用的。
最常用的是Server.CreateObject方法,它允许我们在当前页的环境或会话中在服务器上实例化其他COM对象。
还有一些方法能够把字符串翻译成在URL和HTML中使用的正确格式,它通过把非法字符转换成为正确、合法的等价字符来实现。
●ASPError对象通过Server对象的GetLastError方法使用。
它提供了发生在ASP中的上一次错误的详细信息。
●ObjectContext对象:
ObjectContext对象可以用来控制ASP的执行。
这种执行过程由MicrosoftTransactionServer(MTS)来进行管理。
可以把这些对象看作是基于ObjectContext对象的一个层次关系的成员,这有助于理解它们与接受和响应客户请求的过程之间的关系,如图10-13所示。
图中表现了ASP和创建及服务于ASP页的过程之间的关系。
图10-13ASP中各种对象之间的关系
10.2.1Response对象
1.Response对象的集合
Response对象只有一个集合,如表10-1所示,该集合设置希望放置在客户系统上的cookie的值,它直接等同于Request.Cookies集合。
表10-1Response对象的集合及说明
集合名称
说明
Cookies
在当前响应中,发回客户端的所有cookie的值,这个集合为只写的
2.Response对象的属性
Response对象也提供一系列的属性,可以读取和修改,使响应能够适应请求。
当设置某些属性时,使用的语法可能与通常所使用的有一定的差异。
如表10-2所示。
表10-2Response对象的属性及说明
属性
Buffer=True/False
读/写,布尔型,表明由一个ASP页面所创建的输出是否一直存放在IIS缓冲区,直到当前页面的所有服务器脚本处理完毕或Flush、End方法被调用。
在任何输出(包括HTTP报头信息)送往IIS之前这个属性必须设置。
因此在.asp文件中,这个设置应该在<
%@LANGUAGE=...%>
语句后面的第一行。
在ASP3.0以及后续版本中缺省设置缓冲为开(True),而在早期版本中缺省为关(False)
CacheControl"
setting"
读/写,字符型,设置这个属性为“Public”允许代理服务器缓存页面,如为“Private”则禁止代理服务器缓存的发生
Charset="
value"
读/写,字符型,在由服务器为每个响应创建的HTTPContent-Type报头中附上所用的字符集名称(例如:
ISO-LATIN-7)
ContentType="
MIME-type"
读/写,字符型,指明响应的HTTP内容类型,标准的MIME类型(例如“text/xml”或者“Image/gif”)。
假如省略,表示使用MIME类型“text/html”,内容类型告诉浏览器所期望内容的类型
续表
Expiresminutes
读/写,数值型,指明页面有效的以分钟计算的时间长度,假如用户请求其有效期满之前的相同页面,将直接读取显示缓冲中的内容,这个有效期间过后,页面将不再保留在私有(用户)或公用(代理服务器)缓冲中
ExpiresAbsolute#date[time]#
读/写,日期/时间型,指明当某页面过期和不再有效时的绝对日期和时间
IsClientConnected
只读,布尔型,返回客户是否仍然连接和下载页面的状态标志。
在当前的页面已执行完毕之前,假如一个客户转移到另一个页面,这个标志可用来中止处理(使用Response.End方法)
PICS"
PICS-Label-string"
只写,字符型,创建一个PICS报头并将之加到响应中的HTTP报头中,PICS报头定义页面内容中的词汇等级,如暴力、性、不良语言等
Status="
Codemessage"
读/写,字符型,指明发回客户的响应的HTTP报头中表明错误或页面处理是否成功的状态值和信息。
例如“200OK”和“404NotFound”
3.Response对象的方法
Response对象提供一系列的方法,如表10-3所示,允许直接处理为返给客户端而创建的页面内容。
表10-3Response对象的方法及说明
方法
AddHeader("
name"
"
content"
)
通过使用name和content值,创建一个定制的HTTP报头,并增加到响应之中。
不能替换现有的相同名称的报头。
一旦已经增加了一个报头就不能被删除。
这个方法必须在任何页面内容(即text和HTML)被发往客户端前使用
AppendToLog("
string"
当使用“W3CExtendedLogFileFormat”文件格式时,对于用户请求的Web服务器的日志文件增加一个条目。
至少要求在包含页面的站点的“ExtendedProperties”中选择“URIStem”
BinaryWrite(SafeArray)
在当前的HTTP输出流中写入Variant类型的SafeArray,而不经过任何字符转换。
对于写入非字符串的信息,例如定制的应用程序请求的二进制数据或组成图像文件的二进制字节,是非常有用的
Clear()
当Response.Buffer为True时,从IIS响应缓冲中删除现存的缓冲页面内容。
但不删除HTTP响应的报头,可用来放弃部分完成的页面
End()
让ASP结束处理页面的脚本,并返回当前已创建的内容,然后放弃页面的任何进一步处理
Flush()
发送IIS缓冲中所有当前缓冲页面给客户端。
当Response.buffer为True时,可以用来发送较大页面的部分内容给个别的用户
Redirect("
url"
通过在响应中发送一个“302ObjectMoved”HTTP报头,指示浏览器根据字符串url下载相应地址的页面
Write("
在当前的HTTP响应信息流和IIS缓冲区写入指定的字符,使之成为返回页面的一部分
4.Response对象的应用
通常情况下,Response对象是与Request对象组合使用的,关于Response对象的应用将在下一节与Request对象的应用一起讲述。
10.2.2Request对象
1.Request对象的集合
Request对象提供了5个集合,可以用来访问客户端对Web服务器请求的各类信息,这些集合如表10-4所示。
表10-4Request对象的集合及说明
ClientCertificate
当客户端访问一个页面或其他资源时,用来向服务器表明身份的客户证书的所有字段或条目的数值集合,每个成员均是只读
根据用户的请求,用户系统发出的所有cookie的值的集合,这些Cookie仅对相应的域有效,每个成员均为只读
Form
METHOD的属性值为POST时,所有作为请求提交的<
FORM>
段中的HTML控件单元的值的集合,每个成员均为只读
QueryString
依附于用户请求的URL后面的名称/数值或者作为请求提交的且METHOD属性值为GET(或者省略其属性)的,或<
中所有HTML控件单元的值,每个成员均为只读
ServerVariables
随同客户端请求发出的HTTP报头值,以及Web服务器的几种环境变量的值的集合,每个成员均为只读
2.Request对象的属性
Request对象唯一的属性及说明如表10-5所示,它提供关于用户请求的字节数量的信息,它很少用于ASP页,我们通常关注指定值而不是整个请求字符串。
3.Request对象的方法
Request对象唯一的方法及说明如表10-6所示,它允许访问从一个<
段中传递给服务器的用户请求部分的完整内容。
表10-5Request对象的属性及说明
TotalBytes
只读,返回由客户端发出的请求的整个字节数量
表10-6Request对象的方法及说明
BinaryRead(count)
当数据作为POST请求的一部分发往服务器时,从客户请求中获得count字节的数据,返回一个Variant数组(或者SafeArray)。
如果ASP代码已经引用了Request.Form集合,这个方法就不能用。
同样,如果用了BinaryRead方法,就不能访问Request.Form集合
4.Requeat对象和Response对象的应用
(1)维护Headers
浏览器的请求和服务端的响应都包含头信息,头信息提供了有关请求和响应的附加信息,也包括了浏览器生成请求和服务端提供响应的过程信息。
ASP包含了相当多的集合和方法来维护Headers。
一部分方法对应于特定的任务,例如提供了站点内容分级以及站点限期时间等功能;
其他的方法和集合用于一般的Headers维护。
以下部分详细介绍如何使用这些集合方法来影响Headers。
当浏览器在服务端接收到一个主页时,这个请求就包括了相当数量的Headers,你可以利用Request对象的ServerVariable集合来接收这些Headers,ServerVariable集合既包括了Headers也包括了服务端的一些其他信息。
集合存储了相互有关系的字符串、数字、对象和其他值。
集合与数组非常相近,但它在存储或取出项目时会自动扩展与搜索。
另外,集合被修改后,项目的位置将会移动。
可以通过集合中项目的名称、索引访问项目,也可以遍历访问项目。
下面的例子将ServerVariable集合的所有内容名称显示出来。
<
HTML>
HEAD>
Title>
服务器端变量
/Title>
/HEAD>
BODY>
%
FOREachnameINRequest.ServerVariables
Response.Write("
p>
b>
"
&
name&
/b>
Response.Write(Request.ServerVariables(name))
NEXT
%>
/BODY>
/HTML>
结果显示如图10-14所示:
图10-14ServerVariable集合的所有内容
可以看出,ServerVariables集合包含了很多类型的信息,表10-7中为常用的信息类型:
表10-7ServerVariable集合的名称及说明
ALL_HTTP
客户端发送的所有HTTP头文件。
ALL_RAW
检索未处理表格中所有的头名称。
ALL_RAW和ALL_HTTP不同,ALL_HTTP在头文件名前面放置HTTP_prefix,并且标题名称总是大写的。
使用ALL_RAW时,头名称及其值只在客户端发送时才出现
APPL_MD_PATH
检索ISAPIDLL的(WAM)Application的元数据库路径
APPL_PHYSICAL_PATH
检索与元数据库路径相应的物理路径。
IIS通过将APPL_MD_PATH转换为物理路径以返回值
AUTH_PASSWORD
该值输入到客户端的鉴定对话中。
只有使用基本鉴定时,该变量才可用
AUTH_TYPE
这是用户访问受保护的脚本时,服务器用于检验用户的验证方法
AUTH_USER
未被鉴定的用户名
CERT_COOKIE
客户端验证的唯一ID,以字符串方式返回。
可作为整个客户端验证的签字
CERT_FLAGS
如有客户端验证,则bit0为1。
如果客户端验证的验证人无效(不在服务器承认的CA列表中),bit1被设置为1
CERT_ISSUER
用户验证中的颁布者字段(O=MS,OU=IAS,CN=username,C=USA)
CERT_KEYSIZE
安全套接字层中连接关键字的位数,如128
CERT_SECRETKEYSIZE
服务器验证私人关键字的位数。
如1024
CERT_SERIALNUMBER
用户验证的序列号字段
CERT_SERVER_ISSUER
服务器验证的颁发者字段
CERT_SERVER_SUBJECT
服务器验证的主字段
CERT_SUBJECT
客户端验证的主字段
CONTENT_LENGTH
客户端发出内容的长度
CONTENT_TYPE
内容的数据类型。
同附加信息的查询一起使用,如HTTP查询GET、POST和PUT
GATEWAY_INTERFACE
服务器使用的CGI规格的修订,格式为CGI/revision
HTTP_<
HeaderName>
HeaderName存储在头文件中的值。
未列入该表的头文件必须以HTTP_作为前缀,以使ServerVariables集合检索其值。
注意,服务器将HeaderName中的下划线(_)解释为实际头名称中的破折号。
例如,如果指定HTTP_MY_HEADER,服务器将搜索以MY_HEADER为名发送的头文件
HTTPS
如果请求穿过安全通道(SSL),则返回ON。
如果请求来自非安全通道,则返回OFF
HTTPS_KEYSIZE
HTTPS_SECRETKEYSIZE
服务器验证私人关键字的位数,如1024
HTTPS_SERVER_ISSUER
HTTPS_SERVER_SUBJECT
INSTANCE_ID
文本格式IIS实例的ID。
如果实例ID为1,则以字符形式出现。
使用该变量可以检索请求所属的(元数据库中)Web服务器实例的ID
INSTACE_META_PATH
响应请求的IIS实例的元数据库路径
LOCAL_ADDR
返回接受请求的服务器地址。
如果在绑定多个IP地址的多宿主机器上查找请求所使用的地址时,这条变量非常重要
LOGON_USER
用户登录WindowsNT的账号
PATH_INFO
客户端提供的额外路径信息。
可以使用这些虚拟路径和PATH_INFO服务器变量访问脚本。
如果该信息来自URL,在到达CGI脚本前就已经由服务器解码了
续表
PATH_TRANSLATED
PATH_INFO转换后的版本,该变量获取路径并