ASP内置对象沙场点兵

a.Application
在应用程序内共享信息
可以使用Application对象在应用程序的所有访问者间共享信息,该应用程序与在IIS中所创建的应用程序相对应
b.Request
获取客户端传入信息
可以使用Request对象来获取客户端传来的任何消息,包括:post.get方法,cookies及客户端证书从html表单传递的参数。还可以访问发送到服务器的二进制数据,例:上传
c.Response
向客户端发送信息
可以使用Response对象来控制发送给客户端的信息,包括:直接发送信息到浏览器,重定向浏览器到其它的url或设置cookie值
d.Server
服务器本地操作
可以访问服务器上的方法和属性,常用的:用来创建com组件的server.CreateObject方法,对字符串应用url或html编码,将虚拟目录映射到物理路径,设置脚本超时时限
e.Session
存储单个用户会话信息
可 以使用session对象来存储特定会话所需的信息,当一个客户端访问服务器时,就会创建一个会话,当用户在应用程序不同的页面跳转时,不会丢失存储在 session对象中的变量,该变量在用户访问应用程序的期间都会保留,同时可以显式的结束会话并设置闲置会话的超时时限
f.ObjectContext
事务处理
可以使用ObjectContext对象来提交或中止由asp脚本启动的事物
g.ASPError
错误消息
可以使用ASPError对象来捕获ASP错误并向用户返回的详细的错误描述

a:Application对象
通常用来实现以下功能
a.1存储应用程序级全局变量
a.2锁定与解锁全局变量
a.3网站计数器

包含的集合,方法,事件
类型  名称  说明
---------------------------------------------------------------
集合  Contents                 没用使用<object>元素定义的存储于Application对象中的所有变量的集合
    可以简写为:Application("Numvisits")全写为Application.Contents("Numvisits")
  StaticObjects 使用<object>元素定义的存储于Application对象中的所有变量的集合
方法  Contents.Remove 通用引元来删除指定的存储于Contents中的变量
  Contents.RemoveAll 全部删除存储于Contents中的变量
  Lock  锁定在Application中存储的变量,不允许其它客户修改,设用Unlock或本页面执行完毕后解锁
  Unlock  手动删除对Application变量的锁定
事件  Application_OnEnd    声明于global.asa中,应用程序首次执行时触发
  Application_OnStart  声明于global.asa中,应用程序结束时触发
说明:
1.在Application对象中存储对象时,仍要用set关健字,使用时可直接调用Application对象调用其方法
2.调用Lock方法的效果是累计的,即:调了几次Lock,就要调几次Unlock来解锁
3.在Application对象中不能存储内置对象
4.不能通过下标来直接引用存储于Application中的数组
5.不要将数据库连接对象Connection存储于Application中

 

b:Request对象
通常用来实现以下功能
b.1获取网址参数
b.2读取表单传递的数据
b.3读取cookie的数据
b.4读取服务器环境变量
b.5上传文件

包含的集合,方法,属性
类型  名称  说明
---------------------------------------------------------------
集合  ClientCertificate         客户证书的集合(se'tifikit)
  Cookies  客户发送的所有Cookies值的集合
  Form  客户提交的表单元素的值,变量名与表单中元素的name属性一样
  QueryString URL参数中的值,若Form的Method属性为"GET",则会把所有的表单元素名称和值自动添加到URL参数中
  ServerVariables 预定义的服务器变量
****************************************************************
属性  TotalBytes 客户端发送的Http请求中的Body部分的总字节数
方法  BinaryRead(Count)   从客户端提交的数据中获取count字节的数据,返回一个无符号型的数组

说明:
1.若查询的变量在以上5个集合中都不存在,返回Empty
2.建义在查询时指定集合名称
当一个变量在不止一个集合中存在时,服务器要找到并返回这个变量就要在集合中检索,顺序是:
QueryString
Form
Cookies
ClientCertificate
ServerVariables
3.使用Request.Form时有两个局限:
3.1只能接受少量的数据(当Form提交的数据字节数大于100K时,就无法使用)
3.2Request.Form与Request.BinaryRead不能同时使用,否则发生错误
4.尽量不要使用服务器变量
5.避免使用非限定的Request对象

 

c:Response对象
通常用来实现以下功能
c.1输出内容到客户端(网页)
c.2网页重定向(尽量使用Server.Transfer)
c.3写入Cookie
c.4下载文件

包含的集合,方法,属性
类型  名称  说明
----------------------------------------------------------------
集合  Cookies  设置客户端Cookie的值,若指定的名称不存在则创建,反之则更新
属性  Buffer  是否启用缓存,该语句必须放在ASP文件的第一行,启用后,只有所有脚本执行完     毕后才会向客户端输出
  CacheControl 设置代理服务器是否可以缓冲ASP,以及缓冲的级别
  Charset  设置字符集,例:简体中文为:gb2312,与在网页中的meta标签的charset=gb2312作用相同
  ContentType 设置Http内容类型:text/html
  Expires  设置或返回一个页面缓冲在浏览器中的有效时限,以分钟为单位(iks'paie)
  ExpiresAbsolute 设置页面缓冲在浏览器中到期的绝对时间
  IsClientConnected     判断客户端是否已经断开连接
  LCID  设定或获取日期,时间或货币的显示格式
  Status  设置服务器的返回状态,以一个三位数加简要说明的格式:Response.Status="401 Unauthorized"
方法  AddHeader(HeaderName,HeaderValue)向Http头加入额外的信息,其中HeaderName可以重复,信息一旦加入,无法删除
  AppendToLog 向Web服务器手动加入一条日志
  BinaryWrite 向Http输出流中写入不经过任何字符转换的数据,用于各种客户端传送图片或下载文件
  Clear  清空缓冲
  End  停止处理ASP文件,直接向客户输出现在的结果
  Flush  向客户端立即发送缓冲中的内容
  Redirect                 向浏览器发送一个重定向的消息,浏览器收到后重定向到指定的页
  Write  向Http输出流中写入一个字符串

说明:
1.为了让网站国际化,建议显式设置Codepage属性,系统查找Codepage的顺序是:
Response.CodePage
Session.CodePage
页面@CodePage指令
虚拟目录设置Metabase属性AspCodePage
以上都没设置时,取默认值ANSI
2.在调用Response.End时,会自动调用Response.Flush,将缓存中现有内容向客户端发送,若不希望如此,可先调用Response.Clear清空缓存
3. 注意Response.Redirect只是向浏览器发送一个重定向的消息,浏览器根据消息中的URL再次向服务器发送新的请求,因为浏览器与服务器之间 存在两次往返,降低了效率,并加长了用户等待的时间,建议用Server.Transfer,它的功能是直接将处理移交到另一个页面而不需要再次发送请求
4.在向客户端输出部分内容后不能再调用Response.Redirect方法
5.当输出较多时,适时使用Flush方法
6.尽可能的使用Server.Transfer代替Response.Redirect
7.使用CodePage使网站走向国际化


d:Server对象
通常用来实现以下功能
d.1创建组件实例
d.2获取服务器的物理物径
d.3对字符串进行HTML编码
d.4转向执行其它ASP文件

包含的方法,属性
类型  名称  说明
-----------------------------------------------------------
属性  ScriptTimeout 设置脚本超时,当一个ASP页面在一个脚本超时时限之内仍没有执行完毕,ASP将终止执行并显示超时错误
方法  CreateObject 创建一个服务器组件的实例,若此组件实现了OnStartPage和OnEndPage方法,在执行CreateObject创建实例时将会执行OnStartPage
  Execute  用来执行一个ASP文件,被执行的ASP文件被看作是当前调用Execute方法的ASP文件的一部分
  GetLastError 返回一个ASPError对象,用来描述错误的详细信息,注意的是:必须向客户端发送一些数据后这个方法才会起作用
  HTMLEncode 将输出的HTML字符串转换为HTML编码,例:<p>输出:&lt;p&gt;
  MapPath  将虚拟目录映射为绝对路径,例Access数据库,为防止下载,将其放在应用程序之外,通过此方法找到数据库在服务器上的绝对路径
  Transfer                 停止执行此ASP文件,转向执行另一个ASP文件,若想用此方法代替Response.Redirect方法,那么在调用Transfer之前,需调用Response.Clear清空缓冲
  URLEncode 将输出的字符串进行URL编码

说明:
1.Execute和Transfer方法都不会清空当前页面向缓冲输出的内容而直接转向执行另一页,不同的是:Execute执行完后会返回继续执行下面的语句,而Transfer会完全放弃下面的语句
2.最常用的是:CreateObject和MapPath


e:Session对象
通常用来实现以下功能
e.1存储与某次访问相关的信息
e.2设置这个访问的代码页,日期格式
e.3处理访问开始与结束事件

包含的集合,方法,属性,事件
类型  名称  说明
---------------------------------------------------------------
集合  Contents                 使用脚本命令(赋mga值语句)向Session中存储的数据,可以省略Contents而直接访问,例:Session("var")
  StaticObjects 使用<Object>标记定义的存储于Session对象中的变量集合,运行期间不能删除
属性  CodePage                 设置当前Session的代码页.参考Response对象的CodePage属性
  LCID  设置当前Session的日期,时间或货币的显示格式,参考Response对象的LCID属性
  SessionID                 返回Session的唯一标识
  Timeout  设置Session的超时时限,以分钟为单位,IIS默认为20
方法  Abandon  当ASP执行完毕时释放Session中存储的变量,当下次访问时,会重新启动一个Session对象,若不显式的调用此方法,只有当Session超时时会释放Session中的变量
  Contents.Remove 删除Contents集合中的指定变量
  Contents.RemoveAll 删除Contents集合中的全部变量
事件  Session_OnEnd 声明于global.asa中,客户首次访问时或调用Abandon时触发
  Session_OnStart 声明于global.asa中,Session超时或调用Abandon后触发

说明:
1.Session.Abandon调用后,在本ASP页内存储于Session中的变量仍可以使用,直到下一次请求,即访问下一个ASP页面时才会生效,此时SessionID值已经改变,并且会再次执行Session_OnStart过程.
Session.Abandon后调用Server.Execute和Server.Transfer时,由于是发生在同一个请求中,所以Session中的变量仍有效
2.Contents.RemoveAll方法用于删除Contents集合中的所有变量,它的作用效果是即时的,并且不会放弃(Abandon)当前的Session对象,即下次请求时SessionID不变
3.Session对象经常使用的是变量的存取,例:Session("UserName")=strName

 

f:ObjectContext对象
通常用来实现以下功能
f.1放弃一个事务ASP
f.2接受一人事务ASP

包含的方法,事件
类型  名称  说明
-----------------------------------------------------------------
方法  SetAbort                 放弃当前事务
  SetComplete 此方法只是说明可以继续此事务,不必放弃,并不是立刻接受此事务,只有当此文件执行完毕,或所有参与此事务的组件都调用SetComplete时,才接受此事务
事件  OnTransactionAbort 放弃此事务时触发
  OnTransactionCommit接受此事物时触发

说明:
1.某个ASP页面要使用这种事物机制或要使用ObjectContext,需要在文件的开头加上<%@Transaction=Required%>
2.只要调用一次ObjectContext.SetAbort方法,就可以放弃此事务
3.一般不用显式的调用SetComplete,因为ASP默认是如果没有调用SetAbort,则执行完此ASP文件即接受事务
4.OnTransactionAbort过程与OnTransactionCommit过程要与上述事物ASP放在同一个文件中


g:ASPError对象
通常用来实现以下功能

包含的属性
类型  名称  说明
------------------------------------------------------------------
属性  ASPCode  返回错误代码
  Number  返回Com标准的错误代码
  Source  返回错误的源代码,若可以的话,还可以返回所在的行数
  Category                 返回一个字符串,用于表明错误类型,例:IIS错误,脚本错误
  File  发生错误的文件名
  Line  发生错误所在的行号
  Column  发生错误所在的列
  Description 错误描述
  ASPDescription 若这个错误与ASP相关的话,返回更详细的错误描述

 

ADO Native Class
ADO提供了一些内置类和方法,用来与数据库建立连接,后对数据库作:增,删,改,查各种操作
a:Connection连接类
该类具有以下功能:
a.1建立数据库连接
a.2执行SQL语句
a.3执行事务

包含的属性和方法
类型  名称   说明
--------------------------------------------------------------------
属性  ConnectionString                 连接字符串,在打开连接前需要设置
  ConnectionTimeout                 超时时限,一般在连接前也需要设置
  Mode   连接模式,一般在连接前也需要设置
  CursorLocation  设置或返回游标的位置
  DefaultDatebase  为连接指定一个默认的数据库
  IsolationLevel  确定事务在连接上隔离级别
  Provider                  为连接指定一个驱动程序,可以包括在ConnectionString中
  Version   返回ADO的版本
方法  Open   建立一个连接
  Close   中断一个连接
  Execute   在连接上执行命令,SQL语句
  BeginTrans
  CommitTrans
  RollbackTrans  以上三个用来管理事务
对象  Error   数据源返回的错误消息

说明:
1.CursorLocation属性的含义:
adUseServer:可以随时反映数据库服务器上的改动,但系统开销很大
adUseClient:没有实时性,可以对数据库作排序,筛选等操作
如果对数据的实时性没有要求的话,尽量用adUseClient以提高性能
注意事项:
1.使用OLE DB驱动程序应使用连接池
2.晚开早关:使用前再创建连接,用完后立即关闭,释放对象
3.绝不要将连接放在Application,Session中
4.若没有返回结果集,在Execute的参数中加上adExecuteNoRecords


b:Command命令类
该类具有以下功能:
b.1预编译SQL语句
b.2执行SQL语句
b.3执行存储过程
b.4返回整个表的内容

包含的属性,方法:
类型  名称   说明
---------------------------------------------------------------------------
属性  ActiveConnection                 将一个命令行对象与一个打开的连接关联
  CommandType  指定命令的类型
  CommandText  定义命令行的内容,例:SQL语句
  CommandTimeout  指定服务器等待一条命令执行的时间
方法  Execute   执行命令行并返回一个数据集对象(Recordset)

说明:
1.Connection与Command类都有自已的Execute方法,都可以用来执行一条SQL语句,从这方面来讲,二者的差别不大,但Command类功能更为强大,通赤指定CommandType属性,还可以执行存储过程等其它操作
注意事项:
1.合理设置CommandType属性,以提高执行效率,不建议用adCmdUnknow
2.若没有返回记录集,那么在CommandType属性上要加上adExecuteNoRecords
3.若需要重复的执行类4的SQL语句,可以先将它预编译,提高的效率会很可观

 

c:RecordSet数据集类
该类具有以下功能:
c.1存放检索结果
c.2操纵数据,对数据进行增,删,改操作
c.3对数据再排序

包含的属性,方法:
类型  名称   说明
-----------------------------------------------------------------------
属性  RecordCount  返回记录集中记录的条数
  LockType                  对数据集的锁定方式
  CursorType  记录集中的游标类型
  BOF/EOF   返回记录集中游标的当前位置是否是记录集的头或尾
方法  MoveNext/MovePre                 将记录集的游标向后,前移动一个位置
  MoveFirst/MoveNext                 将记录集的游标移动到最前或最后

说明:
1.LockType属性的取值:
*************************************
adLockReadOnly=1,默认值,表示以只读的方式打开记录集,
因而无法更改数据,在这种情况下用AddNew方法会发生错误

adLockPessimistic=2,保守式记录锁定(逐条),
用在调用Update方法时立即锁定数据源的方式,此时其它用户不能访问该数据

adLockOptimistic=3, 开放式记录锁定(..),
只在调用Update方法时锁定记录

adLockBatchOptimistic=4,开放式批量更新,
用于批量更新数据,与UpdateBatch方法相对应

2.CursorType属性的取值:
************************************
adOpenForwardOnly=0,默认值,仅向前游标
只能在记录中向前滚动,可以节省资源并提高性能

adOpenStatic=3,静态游标
可以用来查找数据或生成报告的记录集合的静态副本,另外对其它用户所作的添加,删除,更改操作不可见.
----------------------------------
/*推荐在ASP中只使用以上两种游标*/
--------------------------------
adOpenKeyset=1,键集游标
该游标与静态游标相4,不同的只是,/禁止查看其它用户添加的记录,禁止访问其它用户删除的记录,其它用户所作的其它更改依然可见

adOpenDynamic=2,动态游标
可以看到其它用户所作的添加,更改和删除操作,允许在记录集中进行所有类型移动


注意事项:
1.合理设置LockType的值,若只查看结果,设为adLockReadOnly即可
2.合理设置CursorType的值,若只用到MoveNext,设为adOpenForwardOnly
3.若对数据的实时性没有要求的话,尽量使用adUseClient
4.只有当CursorType设为adOpenKeyset或adOpenStatic时,RecordCount才有效

 

Microsoft COM Component
Microsoft 创建了相当多的COM组件,开发者可以免费在应用程序中使作它们,大部分组件都是为许多应用程序的设置而开发的,例如:ADO(ActiveX数据对象),它只不过是一个COM对象的集合,协作我们对数据库的访问工作
除了ADO以外,Microsoft还为ASP提供了大量实用的COM组件,可以通过在IIS内查看已安装的支持ASP的COM组件清单:

组件清单
组件名称   描述
----------------------------------------------------------------------------------
Ad Rotator  提供一个随机横幅滚动系统
Content Linker  可为相关URL集合的内容页面创建显示表格,同时也提供了导航功能,可顺序访问相关URL
Content Rotator  在网页中随机显示文本或HTML代码
Browser Capabilities  用于检测访问者所用的浏览器功能的实用工具.例:确定访问者的浏览器是否支持服务器端VBScript,ActiveX控制和其它的信息
Counters   用于记录网页的点击数,可让访问者了解某个页面的访问量
Permission Checker  用于确定用户是否有访问某个文件或目录的权限,这个功能在启用了Basic或NT的Challenge/Response密码验证系统后特别实用
MyInfo   跟踪一个对象内的Web服务器信息.MyInfo组件可以跟踪一系列的网站信息.例如:Web管理员,公司或组织的名字,地址,电话号码等
Tools   一个极好的小工具,可完成基本的服务器端任务

要了解关于这些组件更详细的各种属性及方法的资料,可访问:http://msdn.microsoft.com/library/psdk/iisref/comp275c.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值