ASP的对象结构

简介: ASP的对象结构 前面我们学习了ASP的基础应用,现在我们要系统地了解一下ASP的对象结构,然后,大家就可以举一反三,不用我过多解释每一个例子了。这一部分,可能有些困难,不过,要学习东西,是不能怕的,是不是? 一、Request Request对象把客户信息保存在几个集合中,供ASP应用使用。

ASP的对象结构<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

前面我们学习了ASP的基础应用,现在我们要系统地了解一下ASP的对象结构,然后,大家就可以举一反三,不用我过多解释每一个例子了。这一部分,可能有些困难,不过,要学习东西,是不能怕的,是不是?

一、Request

Request对象把客户信息保存在几个集合中,供ASP应用使用。通用的访问方法为:

Request.Collection("membername")

当你不指定集合名时,以(1)QueryString,(2)Form,(3)Cookie(4)ServerVariable的顺序搜索所有集合,当发现第一个匹配的变量时,就认定他是要引用的成员。当然,为了提高效率,你最好显式指定是那个集合中的成员。

QueryString集合

HTML表单使用GET方法向ASP文件传递数据时,数据被保存在集合QueryString中。其成员可以具有与之相关的多个值,也就是说,同一个表单中,多个元素可以有相同的名字,下面的代

码访问这些数据:

Response.write?Item?&"
"

Next?%>

Form集合——当表单用POST方法时,数据被保存在Form集合中。

ServerVariable集合——保存了随HTTP请求一起传送HTTP头的信息,可以通过他获取有关浏览器的信息,主要成员有:REMOTE_ADDR?远程主机IP地址

REMOTE_HOST?远程主机名称

REMOTE_USER?客户名称

REQUEST_METHOD?请求方法(如POSTGETHEAD

SERVER_NAME?服务器名

SERVER_PROTOCOL?服务器版本号(如HTTP/10

?

二、Response对象

用来控制向客户返回的HTML的内容,有若干属性和方法。下面介绍我认为重要的:

Buffer属性——如果为True,Response的内容要写入缓冲区,当脚本处理完时再发给客户。

Status属性——传递HTTP?Response报文的状态。服务器返回的状态代码由三位数字组成,可以用于测试阶段和转换控制到其他站点(即Forward

Write方法——向客户输出HTML,可以是任何合法的HTML脚本。

Redirect方法——使浏览器重新定向到另外一个URL上,如:

IF?Left(browsetype,11)="Mozilla/2.0"?then

Response.Redirect?"FancyStart.asp"

Else

Response.Redirect?"OldStart.asp"

End?if%>

Clear方法——如果设Buffer属性为True,则Clear方法清楚所有缓冲区内容。

Flush方法——将缓冲内容立即发送给客户。

End方法——Active?Server遇到该方法时,立即停止处理ASP文件,如果有缓冲,立即发送内容到客户。

BinaryWrite方法——输出二进制数据

?

三、Request对象和Response对象的Cookies集合

1.写入Cookies——Response.Cookies("Cookie名称")[("键名称").属性]=值。如果该Cookie已经存在,则值被新值替代,否则,创建该cookie。例如:

2.读取Cookies——如:Cookie还有一些属性,请参见有关资料。

四、Application对象

Active?Server应用程序是虚拟目录及其子目录下的所有文件,即一个WEB。可以使用Application对象在应用软件的所有用户中共享信息,并可以在服务器运行期间持久地保存数据。他有一些控制访问应用层数据的方法和事件。

Application本身没有内置属性,可以有用户定义:Application("属性名")=

保存在Application对象中的数据可以被Application的所有用户读取。如用来做访问记数:

Application("aVisits")=Application("aVisits")+1

方法有两个:

Lock方法——当用户调用Lock时,只有当前用户能够编辑或增加Application对象的属性。

Unlock方法——一定要记住,调用了Lock,完成时一定要调用Unlock.

事件也有两个:

Application_OnStart事件:应用程序启动时调用。

Application_OnStart事件:应用程序终止时调用。

这两个事件再加上Session的两个事件的处理程序都放在文件Global.asp中,一个Web应用只

有一个Global.asa文件,且放在该应用的根目录下。一个Global.asp文件的例子如下:

Sub?Application_OnStart

Dim?laChats(15)

Application("gaChats")=maChats

Application("giCounter")=0

End?Sub

五、Session对象

Active?Server使用会话设置为使用应用程序的单个用户持久保持数据。当用户请求Active?Server应用程序中ASP文件的URL时,要启动Session。在缺省情况下,如果没有用户请求,则服务器只保留Session20分钟。用户也可以通过设Session的属性TimeOut来改变。或显示地调用Session.Abandon方法来释放Session对象。

SessionID属性——唯一标识一个会话的标识符。

TimeOut属性——定义Session保留的时限,单位为分钟,如:Session.TimeOut=10

Application一样,Session也可由用户来定义属性。Session的唯一方法是Abandon,用来取消用户的Session对象,并释放其占用的服务器资源。如:

事件有Session_OnStartSession_OnEnd,其处理程序应放在文件Glabal.asa中。

六、Server对象

1.HTMLEncode方法:对特定的字符串进行HTML编码,如你本来要显示下列内容:

The?Underline?tag()?is?used?to?underline?the?surrounded?text.

但很可能实际显示成:The?Underline?tag()?is?used?to?underline?the?surrounded?text.

为了避免这种情况,可以调用Server对象的HTMLEncode方法,如:

Response.Write?Server.HTMLEncode("The?Underline?tag()?is?used?to?underline?the?surrounded?text.")%>

2.URLEncode方法

根据URL规则对字符串进行编码。当字符串数据以URL格式传递到服务器时,串中间不能有空格,不能有特殊字符,这时,你就必须用URL编码。

3.CreateObject方法

用于创建已注册到服务器机器上的ActiveX组件例程,这恐怕是最重要的一个方法了:-)

句法如下:Server.CreateObject("ComponentName")

可以作为例程启动的组件可以是ActiveX能够使用的所有内置组件,实际上是存在于服务器上的任何ActiveX组件。比如,要使用金融计算,步骤如下:

1.创建对象

2.调用对象的方法

response.write?Format(x.futval(.07/12,200,-500),"###,###,##0.00")%>

3.释放例程

七、FileSystemTextStream对象

FileSystemTextStream对象可用于建立对文件系统的访问,并提供顺序访问文件的机制。FileSystem没有属性,只有两个方法,第一个方法是CreateTextFile方法,可以在宿主机上创建新的文本文件,并返回TextStream对象以提供对新创建文件的访问机制。第二个是OpenTextFile方法,用于打开文本文件供顺序访问并返回一个TextStream对象。如:

set?tsCoffee=fsFilesys.CreateTextFile("c:/coffe.txt",True)

tsCoffee.WriteLine("Man,I?Could?use?some?coffee.")

tsCoffee.Close%>

TextStream对象的使用有:

AtEndOfLine:如果文件当前字符处在行的末尾则返回true

AtEndOfScreen:如果当前字符在文件的末尾则返回true

Column:返回当前字符的列号

Line:返回当前字符的行号

TextStream对象的方法为:

Close:关闭并释放TextStream对象

Read:从一个文件中读取给定个数的字符到一个变量中

ReadAll:读取文件的全部内容到一个变量中

ReadLine:读取给定行号的内容到一个变量中

Skip:跳过给定个数的字符

SkipLine:跳过给顶的行书

Write:写如字符串

WriteLine:写入以换行结束的字符串

WriteBlankLines:写入给顶数量的空格

目录
相关文章
|
6月前
|
开发框架 .NET API
ASP.NET Core Web中使用AutoMapper进行对象映射
ASP.NET Core Web中使用AutoMapper进行对象映射
|
开发框架 .NET 数据库
asp.net企业费用报销管理信息系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
asp.net 企业费用报销管理信息系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使 用c#语言开发 应用技术:asp.net c#+sqlserver 开发工具:vs2010 +sqlserver
106 0
|
开发框架 移动开发 前端开发
ASP.NET MVC中使用jQuery Ajax通过FormData对象异步提交图片文件到服务端保存并返回保存的图片路径
ASP.NET MVC中使用jQuery Ajax通过FormData对象异步提交图片文件到服务端保存并返回保存的图片路径
290 0
|
开发框架 .NET 数据库
ASP.NET Core Identity自定义数据库结构和完全使用Dapper而非EntityFramework Core
ASP.NET Core Identity自定义数据库结构和完全使用Dapper而非EntityFramework Core前言原本本节内容是不存在的,出于有几个人问到了我:我想使用ASP.NET Core Identity,但是我又不想使用默认生成的数据库表,想自定义一套,我想要使用ASP.NE Core Identity又不想使用EntityFramework Core。
1133 0
|
.NET 开发框架 数据安全/隐私保护
基于ASP.Net Core 开发的纯BS结构的RoadFlow工作流平台
RoadFlow是一款集成工作流引擎的ASP.NET CORE MVC快速开发框架
3841 0
|
.NET API 开发框架
使用 dynamic 类型让 ASP.NET Core 实现 HATEOAS 结构的 RESTful API
上一篇写的是使用静态基类方法的实现步骤:  http://www.cnblogs.com/cgzl/p/8726805.html 使用dynamic (ExpandoObject)的好处就是可以动态组建返回类型, 之前使用的是ViewModel, 如果想返回结果的话, 肯定需要把ViewModel所有的属性都返回, 如果属性比较多, 就有可能造成性能和灵活性等问题.
1707 0
|
.NET 程序员 开发框架
ASP.NET Core 新核心对象WebHost(一)
以本系列文章向Fish 前辈的那篇我心中的ASP.NET 核心对象致敬。(虽然不知道前辈现在在干什么)。一晃就6年过去了,那首 郝云 的《回到那一天》怎么唱来着? 时光一晃,你就三十了。 而我们都变成了老了的程序员
913 0
|
前端开发 .NET 开发框架