信息系统项目管理师_2024年软考学习应考交流_信息系统项目管理师考试

 找回密码
 马上注册

QQ登录

只需一步,快速开始

楼主: 翔羽
打印 上一主题 下一主题

[转帖]ASP编程常用的代码

  [复制链接]

该用户从未签到

升级  30.8%

11
 楼主| 发表于 2006-2-22 14:11:07 | 只看该作者
<p>Request对象用于接受所有从浏览器发往你的服务器的请求内的所有信息。</p><p>集合</p><p>Request.ClientCertificate(key[SubField])</p><p>所有客户证书的信息的集合。对于Key,该集合具有如下的关键字:</p><p>Subject<br/>证书的主题。包含所有关于证书收据的信息。能和所有的子域后缀一起使用。</p><p>Issuer<br/>证书的发行人。包含所有关于证书验证的信息。除了CN外,能和所有的子域后缀一起使用。</p><p>VadidFrom<br/>证书发行的日期。使用VBScript格式。</p><p>ValidUntil<br/>该证书不在有效的时间。</p><p>SerialNumber<br/>包含该证书的序列号。</p><p>Certificate<br/>包含整个证书内容的二进制流,使用ASN.1格式。</p><p><br/>对于SubField,Subject和Issuer关键字可以具有如下的子域后缀:(比如:SubjectOU或IssuerL)</p><p>C<br/>起源国家。</p><p>O<br/>公司或组织名称。</p><p>OU<br/>组织单元。</p><p>CN<br/>用户的常规名称。</p><p>L<br/>局部。</p><p>S<br/>州(或省)。</p><p>T<br/>个人或公司的标题。</p><p>GN<br/>给定名称。</p><p>I<br/>初始。</p><p><br/>当文件cervbs.inc(VBScript使用)或cerjavas.inc(Jscript使用)通过使用#INCLUDE导向包含在你的Active Server Page里时,下面两个标志可以使用:</p><p>ceCertPresent<br/>指明客户证书是否存在,其值为TRUE或FALSE。</p><p>ceUnrecongnizedIssure<br/>指明在该链表中的最后的证书的发行者是否未知,其值为TRUE或FALSE。</p><p><br/>Request.Cookies(Cookie[(key).Attribute])</p><p>Cookie的集合。允许获得浏览器的Cookie。Cookie指明返回那一个Cookie。Key用于从Cookie字典中返回具有某一关键字的Cookie值。对于Attribute,你能使用属性HasKeys来确定某一Cookie是否具有子关键字。HasKeys的值为TRUE或FALSE。</p><p>Request.Form(Parameter)[(Index).Count]</p><p>填写在HTML的表单中所有的数据的集合。Parameter是在HTML表单中某一元素的名称。当某一参数具有不止一个值(比如,当在&lt;SELECT&gt;中使用MULTIPLE属性时)时,使用Index。当某一参数具有多值时,Count指明多值个数。</p><p>Request.QueryString(Varible)[(Index).Count]</p><p>查询字符串的所有值的集合。Varible是在查询字符串某一变量的名称。当某一变量具有多于一个值时,使用Index。当某一参数具有多值时,Count指明值的个数。</p><p>Request.ServerVaribles(Server Environment Variable)</p><p>环境变量的集合。允许读取HTTP头。你可以通过使用HTTP_前缀来读取任何头信息。比如,HTTP_USER_AGENT接受客户代理HTTP头(浏览器类型)。除此外,你可以使用下表所示的变量获得任何环境信息。</p>

该用户从未签到

升级  30.8%

12
 楼主| 发表于 2006-2-22 14:11:28 | 只看该作者
<p>ALL_HTTP<br/>客户端发送的所有HTTP标头,他的结果都有前缀HTTP_。</p><p>ALL_RAW<br/>客户端发送的所有HTTP标头,其结果和客户端发送时一样,没有前缀HTTP_ </p><p>APPL_MD_PATH<br/>应用程序的元数据库路径。</p><p>APPL_PHYSICAL_PATH<br/>与应用程序元数据库路径相应的物理路径。</p><p>AUTH_PASSWORD<br/>当使用基本验证模式时,客户在密码对话框中输入的密码。</p><p>AUTH_TYPE<br/>这是用户访问受保护的脚本时,服务器用于检验用户的验证方法。</p><p>AUTH_USER<br/>代验证的用户名。</p><p>CERT_COOKIE<br/>唯一的客户证书ID号。</p><p>CERT_FLAG<br/>客户证书标志,如有客户端证书,则bit0为0。如果客户端证书验证无效,bit1被设置为1。</p><p>CERT_ISSUER<br/>用户证书中的发行者字段。</p><p>CERT_KEYSIZE<br/>安全套接字层连接关键字的位数,如128。</p><p>CERT_SECRETKEYSIZE<br/>服务器验证私人关键字的位数。如1024。</p><p>CERT_SERIALNUMBER<br/>客户证书的序列号字段。</p><p>CERT_SERVER_ISSUER<br/>服务器证书的发行者字段</p><p>CERT_SERVER_SUBJECT<br/>服务器证书的主题字段。</p><p>CERT_SUBJECT<br/>客户端证书的主题字段。</p><p>CONTENT_LENGTH<br/>客户端发出内容的长度。</p><p>CONTENT_TYPE<br/>客户发送的form内容或HTTP PUT的数据类型。</p><p>GATEWAY_INTERFACE<br/>服务器使用的网关界面。</p><p>HTTPS<br/>如果请求穿过安全通道(SSL),则返回ON。如果请求来自非安全通道,则返回OFF。</p><p>HTTPS_KEYSIZE<br/>安全套接字层连接关键字的位数,如128。</p><p>HTTPS_SECRETKEYSIZE<br/>服务器验证私人关键字的位数。如1024。</p><p>HTTPS_SERVER_ISSUER<br/>服务器证书的发行者字段。</p><p>HTTPS_SERVER_SUBJECT<br/>服务器证书的主题字段。</p><p>INSTANCE_ID<br/>IIS实例的ID号。</p><p>INSTANCE_META_PATH<br/>响应请求的IIS实例的元数据库路径。</p><p>LOCAL_ADDR<br/>返回接受请求的服务器地址。</p><p>LOGON_USER<br/>用户登录Windows NT的帐号</p><p>ATH_INFO<br/>客户端提供的路径信息。</p><p>ATH_TRANSLATED<br/>通过由虚拟至物理的映射后得到的路径。</p><p>QUERY_STRING<br/>查询字符串内容。</p><p>REMOTE_ADDR<br/>发出请求的远程主机的IP地址。</p><p>REMOTE_HOST<br/>发出请求的远程主机名称。</p><p>REQUEST_METHOD<br/>提出请求的方法。比如GET、HEAD、POST等等。</p><p>SCRIPT_NAME<br/>执行脚本的名称。</p>

该用户从未签到

升级  30.8%

13
 楼主| 发表于 2006-2-22 14:11:44 | 只看该作者
<p>SERVER_NAME<br/>服务器的主机名、DNS地址或IP地址。</p><p>SERVER_PORT<br/>接受请求的服务器端口号。</p><p>SERVER_PORT_SECURE<br/>如果接受请求的服务器端口为安全端口时,则为1,否则为0。</p><p>SERVER_PROTOCOL<br/>服务器使用的协议的名称和版本。</p><p>SERVER_SOFTWARE<br/>应答请求并运行网关的服务器软件的名称和版本。</p><p>URL<br/>提供URL的基本部分。</p><p> </p><p>方法</p><p>Request.BinaryRead(Count)</p><p>接收一个HTML表单的未经过处理的内容。当调用此方法时,Count指明要接收多少字节。在调用此方法后,Count指明实际上接收到多少个字节。</p><p>属性</p><p>Request.TotalBytes</p><p>查询体的长度,以字节为单位。</p>

该用户从未签到

升级  30.8%

14
 楼主| 发表于 2006-2-22 14:12:01 | 只看该作者
<p>Session 对象<br/>可以使用 Session 对象存储特定用户会话所需的信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。</p><p>当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。</p><p>Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。有关使用 Session 对象的详细信息,请参阅“ASP 应用程序”部分的“管理会话”。</p><p>注意 会话状态仅在支持 cookie 的浏览器中保留。</p><p>语法<br/>Session.collection|property|method</p><p>集合 <br/>Contents 包含已用脚本命令添加到会话中的项目。 <br/>StaticObjects 包含通过 &lt;OBJECT&gt; 标记创建的并给定了会话作用域的对象。 </p><p><br/>属性<br/>CodePage 将用于符号映射的代码页。 <br/>LCID 现场标识。 <br/>SessionID 返回用户的会话验证。 <br/>Timeout 应用程序会话状态的超时时限,以分钟为单位。 </p><p><br/>方法<br/>Abandon 该方法破坏 Session 对象并释放其资源。 </p><p><br/>事件<br/>global.asa 文件中声明下列事件的脚本。</p><p>Session_OnEnd <br/>Session_OnStart </p><p><br/>有关以上事件及 global.asa 文件的详细信息, 请参阅 Global.asa 参考.</p><p>注释<br/>您可以在 Session 对象中存储值。存储在 Session 对象中的信息在会话及会话作用域内有效。下列脚本演示两种类型的变量的存储方式。</p><p>&lt;% <br/>Session("username") = "Janine"<br/>Session("age") = 24<br/>%&gt;</p><p>但是,如果您将对象存储在 Session对象中,而且您使用 VBScript 作为主脚本语言。则必须使用关键字 Set。如下列脚本所示。</p><p>&lt;% Set Session("Obj1") = Server.CreateObject("MyComponent.class1") %&gt;</p><p>然后,您就可以在后面的 Web 页上调用 MyComponent.class1 揭示的方法和属性,其调用方法如下:</p><p>&lt;% Session("Obj1").MyMethod %&gt;</p><p>也可以通过展开该对象的本地副本并使用下列脚本来调用:</p><p>&lt;% <br/>Set MyLocalObj1 = Session("Obj1") <br/>MyLocalObj1.MyObjMethod<br/>%&gt;</p><p>创建有会话作用域的对象的另一种方法是在 global.asa 文件中使用 &lt;OBJECT&gt; 标记。 </p><p>但是不能在 Session 对象中存储内建对象。例如,下面每一行都将返回错误。</p><p>&lt;%<br/>Set Session("var1") = Session<br/>Set Session("var2") = Request<br/>Set Session("var3") = Response<br/>Set Session("var4") = Server<br/>Set Session("var5") = Application<br/>%&gt;</p><p>在将对象存储到 Session 对象之前,必须了解它使用的是哪一种线程模型。只有那些标记为“Both”的对象才能存储在没有锁定单线程会话的 Session 对象中。详细信息, 请参阅“创建 ASP 组件”中的“选择线程模型”。</p>

该用户从未签到

升级  30.8%

15
 楼主| 发表于 2006-2-22 14:12:15 | 只看该作者
<p>若您将一个数组存储在 Session对象中,请不要直接更改存储在数组中的元素。例如,下列的脚本无法运行。</p><p>&lt;% Session("StoredArray")(3) = "new value" %&gt;</p><p>这是因为 Session对象是作为集合被实现的。数组元素 StoredArray(3) 未获得新的赋值。而此值将包含在 Application 对象集合中,并将覆盖此位置以前存储的任何信息。</p><p>我们极力建议您在将数组存储在 Session对象中时,在检索或改变数组中的对象前获取数组的一个副本。在对数组操作时,您应再将数组全部存储在 Session 对象中,这样您所做的任何改动将被存储下来。下列的脚本对此进行演示。</p><p>---file1.asp---<br/>&lt;%<br/>'Creating and initializing the array<br/>Dim MyArray()<br/>Redim MyArray(5)<br/>MyArray(0) = "hello"<br/>MyArray(1) = "some other string"</p><p>'Storing the array in the Session object<br/>Session("StoredArray") = MyArray</p><p>Response.Redirect("file2.asp")<br/>%&gt;</p><p>---file2.asp---<br/>&lt;%<br/>'Retrieving the array from the Session Object<br/>'and modifying its second element<br/>LocalArray = Session("StoredArray")<br/>LocalArray(1) = " there"</p><p>'printing out the string "hello there"<br/>Response.Write(LocalArray(0)&amp;LocalArray(1))</p><p>'Re-storing the array in the Session object<br/>'This overwrites the values in StoredArray with the new values<br/>Session("StoredArray") = LocalArray<br/>%&gt;</p><p>示例 <br/>下列代码将字符串 MyName 分配给名为 name 的会话变量,并给名为 year 的会话变量指定一个值,而且为 some.Obj 组件的实例指定一个名为 myObj 的变量。</p><p>Session("name") = "MyName" <br/>Session("year") = 96 <br/>Set Session("myObj") = Server.CreateObject("someObj") <br/>%&gt; </p><p></p><p>&nbsp; </p>

该用户从未签到

升级  30.8%

16
 楼主| 发表于 2006-2-22 14:12:32 | 只看该作者
<p>Server 对象:</p><p>Server 对象提供对服务器上的方法和属性的访问。其中大多数方法和属性是作为实用程序的功能服务的。</p><p>语法 </p><p>Server.property|method</p><p>属性</p><p>ScriptTimeout:<br/>ScriptTimeout 属性指定脚本在结束前最大可运行多长时间。 当处理服务器组件时,超时限制将不再生效。 </p><p>语法 Server.ScriptTimeout = NumSeconds</p><p>参数 NumSeconds <br/>指定脚本在被服务器结束前最大可运行的秒数。默认值为 90 秒。 </p><p>注释<br/>通过使用元数据库中的AspScriptTimeout属性可以为 Web 服务或 Web 服务器设置缺省的ScriptTimeout值。ScriptTimeout属性不能设置为小于在元数据库中指定的值。例如,如果NumSeconds设置为10,而元数据库设置包含了默认值90秒,则脚本在90秒后超时。但如果NumSeconds设置为100,则脚本在100秒后超时。</p><p>关于使用元数据库的详细信息,参阅 关于元数据库。</p><p>示例 以下示例中,如果服务器处理脚本超过 100 秒,将使之超时。<br/>&lt;% Server.ScriptTimeout = 100 %&gt;<br/>以下示例获取 ScriptTimeout 属性当前值,并将其存储在变量 TimeOut 中。<br/>&lt;% TimeOut = Server.ScriptTimeout %&gt;</p><p>方法</p><p>CreateObject <br/>CreateObject 方法创建服务器组件的实例。如果该组件执行了 OnStartPage 和 OnEndPage 方法,则此时就会调用 OnStartPage 方法。有关服务器组件的详细信息,请参阅 可安装的 ASP 组件 。</p><p>语法 Server.CreateObject( progID )</p><p>参数 progID 指定要创建的对象的类型。progID 的格式为 [Vendor.] component[.Version]。</p><p>注释 默认情况下,由 Server.CreateObject 方法创建的对象具有页作用域。这就是说,再当前 ASP 页处理完成之后,服务器将自动破坏这些对象。要创建有会话或应用程序作用域的对象,可以使用 &lt;OBJECT&gt; 标记并设置 SESSION 或 APPLICATION 的 SCOPE 属性,也可以在对话及应用程序变量中存储该对象。<br/>例如,在如下所示的脚本中,当 Session 对象被破坏,即当对话超时时或 Abandon 方法被调用时,存储在会话变量中的对象也将被破坏。<br/>&lt;% Set Session("ad") = Server.CreateObject("MSWC.AdRotator")%&gt;<br/>可以通过将变量设置为 Nothing 或新的值来破坏对象,如下所示。第一个例子释放 ad 对象,第二个例子用字串代替 ad 。<br/>&lt;% Session ("ad") = Nothing %&gt;<br/>&lt;% Session ("ad") = " Other Valum " %&gt;<br/>不能创建与内建对象同名的对象实例。 例如,下列脚本将返回错误。<br/>&lt;% Set Response = Server.CreateObject("Response") %&gt; </p><p>示例 &lt;% Set MyAd = Server.CreateObject("MSWC.AdRotator") %&gt; <br/>上面的例子创建一个名为 MyAd 的 MSWC.AdRotator 服务器组件,MSWC.AdRotator 组件可用于在 Web 页上的自动轮换广告。<br/>关于服务器组件的详细信息, 请参阅 Creating Components for ASP.</p><p>HTMLEncode HTMLEncode方法对指定的字符串应用 HTML 编码。 </p><p>语法 Server.HTMLEncode( string )</p><p>参数 string 指定要编码的字符串。 </p><p>示例脚本 &lt;%= Server.HTMLEncode("The paragraph tag: &lt&gt;") %&gt; </p><p>输出 The paragraph tag: &amp;lt&amp;gt; </p><p>注意 以上输出将被 Web 浏览器显示为The paragraph tag: &lt&gt;如果查看一下源文件或以文本方式打开一个 Web 页,您就可以看到已编码的 HTML。<br/></p><p>&nbsp; </p>

该用户从未签到

升级  30.8%

17
 楼主| 发表于 2006-2-22 14:12:54 | 只看该作者
ObjectContext 对象提交或放弃一项由 Microsoft Transaction Server (MTS) 管理的事务,它由 ASP 页包含的脚本初始化。 <p>ASP 包含 @TRANSACTION 指令时,该页会在事务中运行,直到事务成功或失败后才会终止。 </p><p>语法<br/>ObjectContext.method</p><p>方法<br/>SetComplete SetComplete 方法声明脚本不了解事务未完成的原因。如果事务中的所有组件都调用 SetComplete,事务将完成。 <br/>SetAbort SetAbort 方法声明被脚本初始化的事务未完成,无法更新源。 </p><p><br/>事件<br/>OnTransactionCommit <br/>OnTransactionAbort </p><p><br/>注释<br/>ObjectContext 实现 MTS ObjectContext 对象的两种方法。 SetAbort 方法完全终止事务。这样,MTS 不更新在第一阶段联系的源。事务终止时,将处理脚本的 OnTransactionAbort 事件。</p><p>调用 SetComplete 方法并不一定意味着事务已完成。只有脚本调用的所有事务组件都调用了 SetComplete,事务才能完成。在大多数实例中,如果结束处理时未调用 SetAbort,脚本通常被假定为完成的,所以不一定要在脚本内调用 SetComplete。</p><p>ObjectContext 展示了 SetAbort 和 SetComplete 以外的六种方法。这些方法可用于脚本调用的组件,但不能直接用于 ASP 脚本。 </p><p>示例<br/>这里示范使用 SetAbort 和 SetCommit 的方法。Sales.htm 文件获取处理销售请求所需的数据。第二个文件——SalesVerify.asp 中的脚本使用两个对象——Inventory 和 Sales 处理销售。如果 Inventory 返回了错误代码表示供销售的存货不足,就会调用 SetAbort。如果 Inventory 对象没有返回错误代码,将会调用 SetComplete 处理销售请求。</p><p>Sales.htm<br/>&lt;!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"&gt;</p><p>&lt;HTML&gt;<br/>&lt;HEAD&gt;<br/>&lt;TITLE&gt;Sales Order&lt;/TITLE&gt;<br/>&lt;/HEAD&gt;<br/>&lt;BODY BGCOLOR="#FFFFFF"&gt;&lt;FONT FACE="ARIAL,HELVETICA"&gt;<br/>&lt;H2&gt;Sales Order Form &lt;/H2&gt;</p><p>&lt;FORM METHOD=POST ACTION="SalesVerify.asp"&gt; <br/>&lt&gtlease enter the product code, quantity, and your account number.<br/>&lt;INPUT TYPE=TEXT NAME=QuantityToBuy&gt; <br/>&lt;INPUT TYPE=TEXT NAME=ProductCode&gt; <br/>&lt;INPUT TYPE=TEXT NAME=AccountIn&gt; <br/>&lt&gt;<br/>&lt;INPUT TYPE=SUBMIT&gt; <br/>&lt;/FONT&gt; <br/>&lt;/BODY&gt;<br/>&lt;/HTML&gt;</p><p>SalesVerify.asp 文件<br/>&lt;%@ Transaction = Required %&gt;<br/>&lt;%<br/>Set CurrentQOH = Server.CreateObject("Mycomp.Inventory")<br/>Set CurrentSales = Server.CreateObject("Mycomp.Sales")</p><p>CheckQuantity = Request("QuantityToBuy")<br/>CheckProduct = Request("roductCode")<br/>QuantityStatus = CurrentQOH.CheckQOH(CheckQuantity,CheckProduct)</p><p>If QuantityStatus = None<br/>ObjectContext.SetAbort<br/>Response.Write "Sorry, there is not sufficient quantity on hand to process your sale."<br/>Else <br/>ObjectContext.SetComplete<br/>Account = Request("AccountIn")<br/>Saleupdate = CurrentSales.PostIt(AccountIn)<br/>End If<br/>%&gt;</p>

该用户从未签到

升级  30.8%

18
 楼主| 发表于 2006-2-22 14:13:20 | 只看该作者
Application 对象。在同一虚拟目录及其子目录下的所有 .asp 文件构成了 ASP 应用程序。我们非但可以使用 Application 对象,在给定的应用程序的所有用户之间共享信息,并在服务器运行期间持久的保存数据。而且,Application 对象还有控制访问应用层数据的方法和可用于在应用程序启动和停止时触发过程的事件。 <br/>   下面就让我们一起来学习 Application 对象。 <p>   一、属性 </p><p>   虽然 Application 对象没有内置的属性,但我们可以使用以下句法设置用户定义的属性也可称为集合。 </p><p>   Application(" 属性 / 集合名称 ")= 值 </p><p>   我们可以使用如下脚本声明并建立 Application 对象的属性。 <br/>&lt; %<br/>Application("MyVar") = "Hello"<br/>Set Application("MyObj") = Server.CreateObject("MyComponent")<br/>%&gt;</p><p></p><p>   一旦我们分配了 Application 对象的属性,它就会持久地存在,直到关闭 WEB 服务器服务使得 Application 停止。由于存储在 Application 对象中的数值可以被应用程序的所有用户读取,所以 Application 对象的属性特别适合在应用程序的用户之间传递信息。 <br/>   二、方法 </p><p>   Application 对象有两个方法,它们都是用于处理多个用户对存储在 Application 中的数据进行写入的问题 </p><p>   1、Lock 方法禁止其他客户修改 Application 对象的属性。 </p><p>   Lock 方法阻止其他客户修改存储在 Application 对象中的变量,以确保在同一时刻仅有一个客户可修改和存取 Application 变量。如果用户没有明确调用 Unlock 方法,则服务器将在 .asp 文件结束或超时后即解除对 Application 对象的锁定。 </p><p>   让我们来看看下面这段用 Application 来记录页面访问次数的程序 : <br/>&lt; %<br/>Dim NumVisitsNumVisits=0<br/>Application.LockApplication("NumVisits") = Application("NumVisits") + 1<br/>Application.Unlock<br/>%&gt;<br/>欢迎光临本网页,你是本页的第 &lt; %= Application("NumVisits") %&gt; 位访客 !</p><p><br/>   将以上脚本保存在你的 .asp 文件中,就轻而易举地给你的页面添加了一个计数器。 </p><p>   2、和 Lock 方法相反,Unlock 方法允许其他客户修改 Application 对象的属性。 </p><p>   在上面的例子中,上述例子中,Unlock 方法解除对象的锁定,使得下一个客户端能够增加 NumVisits 的值。 </p><p>   三、事件 </p><p>   1、Application_OnStart </p><p>   Application_OnStart 事件在首次创建新的会话 ( 即 Session_OnStart 事件 ) 之前发生。当 WEB 服务器启动并允许对应用程序所包含的文件进行请求时就触发 Application_OnStart 事件。Application_OnStart 事件的处理过程必须写在 Global.asa 文件之中。</p><p>   Application_OnStart 事件的语法如下 : <br/>&lt; SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server&gt;<br/>Sub Application_OnStart. . .<br/>End Sub<br/>&lt; /SCRIPT&gt;</p><p><br/>   2、Application_OnEnd </p><p>   Application_OnEnd 事件在应用程序退出时于 Session_OnEnd 事件之后发生,Application_OnEnd 事件的处理过程也必须写在 Global.asa 文件之中。 </p><p>   下面让我们来看看在使用 Application 对象时必须注意的一些事项。 </p><p>   不能在 Application 对象中存储 ASP 内建对象。例如,下面的每一行都返回一个错误。 <br/>&lt; %<br/>Set Application("var1")=Session<br/>Set Application("var2")=Request<br/>Set Application("var3")=Response<br/>Set Application("var4")=Server<br/>Set Application("var5")=Application<br/>Set Application("var6")=ObjectContext<br/>%&gt;</p><p><br/>   若您将一个数组存储在 Application 对象中,请不要直接更改存储在数组中的元素。例如,下列的脚本无法运行。 <br/>&lt; % Application("StoredArray")(3) = "new value" %&gt;</p><p></p><p>   这是因为 Application 对象是作为集合被实现的。数组元素 StoredArray(3) 未获得新的赋值。而此值将包含在 Application 对象集合中,并将覆盖此位置以前存储的任何信息。建议您在将数组存储在 Application 对象中时,在检索或改变数组中的对象前获取数组的一个副本。在对数组操作时,您应再将数组全部存储在 Application 对象中,这样您所做的任何改动将被存储下来。下列的脚本对此进行演示。 <br/>---asp8a.asp---<br/>&lt; %<br/>dim MyArray()<br/>Redim MyArray(5)<br/>MyArray(0)="hello"<br/>MyArray(1)="some other string"<br/>Application.Lock<br/>Application("StoredArray")=MyArray<br/>Application.Unlock<br/>Response.Redirect "asp8b.asp"<br/>%&gt;</p><p>---asp8b.asp---<br/>&lt; %<br/>LocalArray=Application("StoredArray")<br/>LocalArray(1)=" there"<br/>Response.Write LocalArray(0)&amp;LocalArray(1)<br/>Application.Lock<br/>Application("StoredArray")=LocalArray<br/>Application.Unlock<br/>%&gt;</p><p>   与 Application 对象具有相近作用的另一个非常实用的 ASP 内建对象就是 Session。我们可以使用 Session 对象存储特定的用户会话所需的信息。当用户在应用程序的页之间跳转时,存储在 Session 对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。</p><p>   通过向客户程序发送唯一的 Cookie 可以管理服务器上的 Session 对象。当用户第一次请求 ASP 应用程序中的某个页面时,ASP 要检查 HTTP 头信息,查看是否有在报文中有名为 ASPSESSIONID 的 Cookie 发送过来,如果有,则服务器会启动新的会话,并为该会话生成一个全局唯一的值,在把这个值作为新 ASPSESSIONID Cookie 的值发送给客户端,正是使用这种 Cookie,可以访问存储在服务器上的属于客户程序的信息。Session 对象最常见的作用就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。另外其还经常被用在鉴别客户身份的程序中。要注意的是,会话状态仅在支持 cookie 的浏览器中保留,如果客户关闭了 Cookie 选项,Session 也就不能发挥作用了。</p>

该用户从未签到

升级  30.8%

19
 楼主| 发表于 2006-2-22 14:13:38 | 只看该作者
一、属性 <p>   1、SessionID </p><p>   SessionID 属性返回用户的会话标识。在创建会话时,服务器会为每一个会话生成一个单独的标识。会话标识以长整形数据类型返回。在很多情况下 SessionID 可以用于 WEB 页面注册统计。 </p><p>   2、TimeOut </p><p>   Timeout 属性以分钟为单位为该应用程序的 Session 对象指定超时时限。如果用户在该超时时限之内不刷新或请求网页,则该会话将终止。 </p><p>   二、方法 </p><p>   Session 对象仅有一个方法,就是 Abandon,Abandon 方法删除所有存储在 Session 对象中的对象并释放这些对象的源。如果您未明确地调用 Abandon 方法,一旦会话超时,服务器将删除这些对象。当服务器处理完当前页时,下面示例将释放会话状态。 <br/>  &lt; % Session.Abandon %&gt;</p><p></p><p>   三、事件 </p><p>   Session 对象有两个事件可用于在 Session 对象启动和释放是运行过程。 </p><p>   1、Session_OnStart 事件在服务器创建新会话时发生。服务器在执行请求的页之前先处理该脚本。Session_OnStart 事件是设置会话期变量的最佳时机,因为在访问任何页之前都会先设置它们。 </p><p>   尽管在 Session_OnStart 事件包含 Redirect 或 End 方法调用的情况下 Session 对象仍会保持,然而服务器将停止处理 Global.asa 文件并触发 Session_OnStart 事件的文件中的脚本。 </p><p>   为了确保用户在打开某个特定的 Web 页时始终启动一个会话,就可以在 Session_OnStart 事件中调用 Redirect 方法。当用户进入应用程序时,服务器将为用户创建一个会话并处理 Session_OnStart 事件脚本。您可以将脚本包含在该事件中以便检查用户打开的页是不是启动页,如果不是,就指示用户调用 Response.Redirect 方法启动网页。程序如下 : </p><p>&lt; SCRIPT RUNAT=Server Language=VBScript&gt;<br/>Sub Session_OnStart<br/>startPage = "/MyApp/StartHere.asp"<br/>currentPage = Request.ServerVariables("SCRIPT_NAME")<br/>if strcomp(currentPage,startPage,1) then<br/>Response.Redirect(startPage)<br/>end if<br/>End Sub<br/>&lt; /SCRIPT&gt;</p><p>   上述程序只能在支持 cookie 的浏览器中运行。因为不支持 cookie 的浏览器不能返回 SessionID cookie,所以,每当用户请求 Web 页时,服务器都会创建一个新会话。这样,对于每个请求服务器都将处理 Session_OnStart 脚本并将用户重定向到启动页中。 <br/>   2、Session_OnEnd 事件在会话被放弃或超时发生。 </p><p>   关于使用 Session 对象需要注意的事项 Application 对象相近,请参照前文。 </p><p>   会话可以通过以下三种方式启动 : </p><p>   1、一个新用户请求访问一个 URL,该 URL 标识了某个应用程序中的 .asp 文件,并且该应用程序的 Global.asa 文件包含 Session_OnStart 过程。 </p><p>   2、用户在 Session 对象中存储了一个值。 </p><p>   3、用户请求了一个应用程序的 .asp 文件,并且该应用程序的Global.asa 文件使用 &lt; OBJECT&gt; 标签创建带有会话作用域的对象的实例。 </p><p>   如果用户在指定时间内没有请求或刷新应用程序中的任何页,会话将自动结束。这段时间的默认值是 20 分钟。可以通过在 Internet 服务管理器中设置“应用程序选项”属性页中的“会话超时”属性改变应用程序的默认超时限制设置。应依据您的 Web 应用程序的要求和服务器的内存空间来设置此值。例如,如果您希望浏览您的 Web 应用程序的用户在每一页仅停留几分钟,就应该缩短会话的默认超时值。过长的会话超时值将导致打开的会话过多而耗尽您的服务器的内存资源。对于一个特定的会话,如果您想设置一个小于默认超时值的超时值,可以设置 Session 对象的 Timeout 属性。例如,下面这段脚本将超时值设置为 5 分钟。 <br/>  &lt; % Session.Timeout = 5 %&gt;</p><p>   当然你也可以设置一个大于默认设置的超时值,Session.Timeout 属性决定超时值。你还可以通过 Session 对象的 Abandon 方法显式结束一个会话。例如,在表格中提供一个“退出”按钮,将按钮的 ACTION 参数设置为包含下列命令的 .asp 文件的 URL。 <br/>  &lt; % Session.Abandon %&gt; </p>

该用户从未签到

升级  30.8%

20
 楼主| 发表于 2006-2-24 09:10:40 | 只看该作者
<p><font color="#cc3300">点击返回上页代码:</font><br/>&lt;form&gt;<br/>&lt;p&gt;&lt;input TYPE="button" VALUE="返回上一步" ONCLICK="history.back(-1)"&gt;&lt;/p&gt;<br/>&lt;/form&gt;</p><p><font color="#cc3300">弹出警告框代码:</font><br/>&lt;form&gt;<br/>&lt;p&gt;&lt;input TYPE="button" VALUE="弹出警告框" ONCLICK="AlertButton()"&gt;&lt;/p&gt;<br/>&lt;/form&gt;<br/>&lt;script language="JavaScript"&gt;&lt;!--<br/>function AlertButton(){window.alert("要多多光临呀!");}<br/>// --&gt;&lt;/script&gt;</p><p><font color="#cc3300">点击打开新窗口</font><br/>&lt;form&gt;<br/>&lt;p&gt;&lt;input TYPE="button" VALUE="打开新窗口" ONCLICK="NewWindow()"&gt;&lt;/p&gt;<br/>&lt;/form&gt;<br/>&lt;script language="JavaScript"&gt;&lt;!--<br/>function NewWindow(){window.open("http://www.mcmx.com","","height=240,width=340,status=no,location=no,toolbar=no,directories=no,menubar=no");}<br/>// --&gt;&lt;/script&gt;&lt;/body&gt;</p><p><font color="#cc3300">删除记录时弹出确认框:<br/></font>&lt;script LANGUAGE="VBSCRIPT"&gt; <br/>a=msgbox("真的要删除该记录吗?",1,"注意")<br/>if a=1 then<br/>location="Dodelete.asp?id=&lt;%=id%&gt;" //指向执行删除的页面Dodelete.asp<br/>else <br/>history.go(-1)<br/>end if<br/>&lt;/script&gt;<br/></p><p><font color="#cc3300">关闭打开的窗口 </font><br/>&lt; a href="/" onclick="javascript:window.close(); return false;"&gt;关闭窗口&lt;/a&gt; </p><p><font color="#cc3300">清空INPUT且选定</font><br/>onClick="Javascript:this.value=''" onFocus="this.select()" onMouseOver="this.focus()"</p><p><font color="#cc3300">右键屏蔽</font><br/>&lt;body oncontextmenu=self.event.returnValue=false&gt;</p><p><font color="#cc3300">连串英文自动换行的解决方法 IE5.5<br/></font>style="LEFT: 0px; WIDTH: 100%; WORD-WRAP: break-word" 你可修改为指定的大小如 200px </p><p><font color="#cc3300">图片“重置”按钮</font><br/>&lt;script language="jscript"&gt;<br/>function myreset()<br/>{ document.login.reset();<br/>document.login.focus();}<br/>&lt;/script&gt;<br/>&lt;img src="image/reclear.gif" width="69" height="20" style="cursor:hand" onfocus="this.blur()" onclick="myreset()"</p><p><font color="#cc3300">画细线表格<br/></font>&lt;table style="border-collapse: collapse"&gt; </p><p><font color="#cc3300">状态栏信息</font><br/>&lt;form&gt;<br/>&lt;p&gt;&lt;input TYPE="button" VALUE="状态栏信息" ONCLICK="StatusButton()"&gt;&lt;/p&gt;<br/>&lt;/form&gt;<br/>&lt;script language="JavaScript"&gt;&lt;!--<br/>function StatusButton(){window.status="要多多光临呀!";}<br/>// --&gt;&lt;/script&gt;</p><p><font color="#cc3300">最小化、最大化、关闭窗口<br/></font>&lt;object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"&gt; <br/>&lt;param name="Command" value="Minimize"&gt;&lt;/object&gt;<br/>&lt;object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"&gt; <br/>&lt;param name="Command" value="Maximize"&gt;&lt;/object&gt;<br/>&lt;OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"&gt;<br/>&ltARAM NAME="Command" VALUE="Close"&gt;&lt;/OBJECT&gt;<br/><br/>&lt;input type=button value=最小化 onclick=hh1.Click()&gt;<br/>&lt;input type=button value=最大化 onclick=hh2.Click()&gt;<br/>&lt;input type=button value=关闭 onclick=hh3.Click()&gt;<br/>本例适用于IE</p>
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

小黑屋|手机版|Archiver|信息系统项目管理师_软考交流平台. ( 鄂ICP备11002878号-1  公安备案号:42011102001150

GMT+8, 2025-7-5 17:44

Software by Discuz! X3.2

© 2001-2013 SKIN BY DSVUE

快速回复 返回顶部 返回列表