|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。还无法完全实现一些企业级的功能:完全的集群、负载均横。在上一篇中作者给人人具体先容了ASP内建工具Response的利用办法,在这一篇中作者将持续给人人先容另两个十分有用且主要的ASP的内建工具Application和Session。 在ASP的内建工具中除用于发送、吸收和处置数据的工具外,另有一些十分有用的代表ActiveServer使用程序和单个用户信息的工具。 让我们先来看看Application工具。在统一假造目次及其子目次下的一切.asp文件组成了ASP使用程序。我们不但可使用Application工具,在给定的使用程序的一切用户之间共享信息,并在服务器运转时代耐久的保留数据。并且,Application工具另有把持会见使用层数据的办法和可用于在使用程序启动和中断时触发历程的事务。
上面就让我们一同来进修Application工具。
1、属性
固然Application工具没有内置的属性,但我们可使用以下句法设置用户界说的属性也可称为汇合。
Application("属性/汇合称号")=值
我们可使用以下剧本声明并创建Application工具的属性。
<%
Application("MyVar")="Hello"
SetApplication("MyObj")=Server.CreateObject("MyComponent")
%>
一旦我们分派了Application工具的属性,它就会耐久地存在,直到封闭WEB服务器服务使得Application中断。因为存储在Application工具中的数值能够被使用程序的一切用户读取,以是Application工具的属性出格合适在使用程序的用户之间传送信息。
2、办法
Application工具有两个办法,它们都是用于处置多个用户对存储在Application中的数据举行写进的成绩
1、Lock办法克制其他客户修正Application工具的属性。
Lock办法制止其他客户修正存储在Application工具中的变量,以确保在统一时候唯一一个客户可修正和存取Application变量。假如用户没有明白挪用Unlock办法,则服务器将在.asp文件停止或超时后即排除对Application工具的锁定。
让我们来看看上面这段用Application来纪录页面会见次数的程序:
<%
DimNumVisitsNumVisits=0
Application.LockApplication("NumVisits")=Application("NumVisits")+1
Application.Unlock
%>
接待到临本网页,你是本页的第<%=Application("NumVisits")%>位访客!
将以上剧本保留在你的.asp文件中,就十拿九稳地给你的页面增加了一个计数器。
2、和Lock办法相反,Unlock办法同意其他客户修正Application工具的属性。
在下面的例子中,上述例子中,Unlock办法排除工具的锁定,使得下一个客户端可以增添NumVisits的值。
3、事务
1、Application_OnStart
Application_OnStart事务在初次创立新的会话(即Session_OnStart事务)之前产生。当WEB服务器启动并同意对使用程序所包括的文件举行哀求时就触发Application_OnStart事务。Application_OnStart事务的处置历程必需写在Global.asa文件当中。
Application_OnStart事务的语法以下:
<SCRIPTLANGUAGE=ScriptLanguageRUNAT=Server>
SubApplication_OnStart...
EndSub
</SCRIPT>
2、Application_OnEnd
Application_OnEnd事务在使用程序加入时于Session_OnEnd事务以后产生,Application_OnEnd事务的处置历程也必需写在Global.asa文件当中。
上面让我们来看看在利用Application工具时必需注重的一些事项。
不克不及在Application工具中存储ASP内建工具。比方,上面的每行都前往一个毛病。
<%
SetApplication("var1")=Session
SetApplication("var2")=Request
SetApplication("var3")=Response
SetApplication("var4")=Server
SetApplication("var5")=Application
SetApplication("var6")=ObjectContext
%>
若您将一个数组存储在Application工具中,请不要间接变动存储在数组中的元素。比方,以下的剧本没法运转。
<%Application("StoredArray")(3)="newvalue"%>
这是由于Application工具是作为汇合被完成的。数组元素StoredArray(3)未取得新的赋值。而此值将包括在Application工具汇合中,并将掩盖此地位之前存储的任何信息。倡议您在将数组存储在Application工具中时,在检索或改动数组中的工具前猎取数组的一个正本。在对数组操纵时,您应再将数组全体存储在Application工具中,如许您所做的任何修改将被存储上去。以下的剧本对此举行演示。
---asp8a.asp---
<%
dimMyArray()
RedimMyArray(5)
MyArray(0)="hello"
MyArray(1)="someotherstring"
Application.Lock
Application("StoredArray")=MyArray
Application.Unlock
Response.Redirect"asp8b.asp"
%>
---asp8b.asp---
<%
LocalArray=Application("StoredArray")
LocalArray(1)="there"
Response.WriteLocalArray(0)&LocalArray(1)
Application.Lock
Application("StoredArray")=LocalArray
Application.Unlock
%>
与Application工具具有邻近感化的另外一个十分有用的ASP内建工具就是Session。我们可使用Session工具存储特定的用户会话所需的信息。当用户在使用程序的页之间跳转时,存储在Session工具中的变量不会扫除,而用户在使用程序中会见页面时,这些变量一直存在。当用户哀求来自使用程序的Web页时,假如该用户还没有会话,则Web服务器将主动创立一个Session工具。当会话过时或被保持后,服务器将停止该会话。 经由过程向客户程序发送独一的Cookie能够办理服务器上的Session工具。当用户第一次哀求ASP使用程序中的某个页面时,ASP要反省HTTP头信息,检察是不是有在报文中着名为ASPSESSIONID的Cookie发送过去,假如有,则服务器会启动新的会话,并为该会话天生一个全局独一的值,在把这个值作为新ASPSESSIONIDCookie的值发送给客户端,恰是利用这类Cookie,能够会见存储在服务器上的属于客户程序的信息。Session工具最多见的感化就是存储用户的首选项。比方,假如用户指明不喜好检察图形,就能够将该信息存储在Session工具中。别的其还常常被用在判别客户身份的程序中。要注重的是,会话形态仅在撑持cookie的扫瞄器中保存,假如客户封闭了Cookie选项,Session也就不克不及发扬感化了。
1、属性
1、SessionID
SessionID属性前往用户的会话标识。在创立会话时,服务器会为每个会话天生一个独自的标识。会话标识以长整形数据范例前往。在良多情形下SessionID能够用于WEB页面注册统计。
2、TimeOut
Timeout属性以分钟为单元为该使用程序的Session工具指定超不时限。假如用户在该超不时限以内不革新或哀求网页,则该会话将停止。
2、办法
Session工具唯一一个办法,就是Abandon,Abandon办法删除一切存储在Session工具中的工具并开释这些工具的源。假如您未明白地挪用Abandon办法,一旦会话超时,服务器将删除这些工具。当服务器处置完以后页时,上面示例将开释会话形态。
<%Session.Abandon%>
3、事务
Session工具有两个事务可用于在Session工具启动和开释是运转历程。
1、Session_OnStart事务在服务器创立新会话时产生。服务器在实行哀求的页之前先处置该剧本。Session_OnStart事务是设置会话期变量的最好机会,由于在会见任何页之前城市先设置它们。
只管在Session_OnStart事务包括Redirect或End办法挪用的情形下Session工具仍会坚持,但是服务器将中断处置Global.asa文件并触发Session_OnStart事务的文件中的剧本。
为了确保用户在翻开某个特定的Web页时一直启动一个会话,就能够在Session_OnStart事务中挪用Redirect办法。当用户进进使用程序时,服务器将为用户创立一个会话并处置Session_OnStart事务剧本。您能够将剧本包括在该事务中以便反省用户翻开的页是否是启动页,假如不是,就唆使用户挪用Response.Redirect办法启动网页。程序以下:
<SCRIPTRUNAT=ServerLanguage=VBScript>
SubSession_OnStart
startPage="/MyApp/StartHere.asp"
currentPage=Request.ServerVariables("SCRIPT_NAME")
ifstrcomp(currentPage,startPage,1)then
Response.Redirect(startPage)
endif
EndSub
</SCRIPT>
上述程序只能在撑持cookie的扫瞄器中运转。由于不撑持cookie的扫瞄器不克不及前往SessionIDcookie,以是,每当用户哀求Web页时,服务器城市创立一个新会话。如许,关于每一个哀求服务器都将处置Session_OnStart剧本并将用户重定向到启动页中。
2、Session_OnEnd事务在会话被保持或超时产生。
关于利用Session工具必要注重的事项Application工具邻近,请参照前文。
会话能够经由过程以下三种体例启动:
1、一个新用户哀求会见一个URL,该URL标识了某个使用程序中的.asp文件,而且该使用程序的Global.asa文件包括Session_OnStart历程。
2、用户在Session工具中存储了一个值。
3、用户哀求了一个使用程序的.asp文件,而且该使用程序的Global.asa文件利用<OBJECT>标签创立带有会话感化域的工具的实例。
假如用户在指准时间内没有哀求或革新使用程序中的任何页,会话将主动停止。这段工夫的默许值是20分钟。能够经由过程在Internet服务办理器中设置“使用程序选项”属性页中的“会话超时”属性改动使用程序的默许超时限定设置。应根据您的Web使用程序的请求和服务器的内存空间来设置此值。比方,假如您但愿扫瞄您的Web使用程序的用户在每页仅停止几分钟,就应当延长会话的默许超时价。太长的会话超时价将招致翻开的会话过量而耗尽您的服务器的内存资本。关于一个特定的会话,假如您想设置一个小于默许超时价的超时价,能够设置Session工具的Timeout属性。比方,上面这段剧本将超时价设为5分钟。
<%Session.Timeout=5%>
固然你也能够设置一个年夜于默许设置的超时价,Session.Timeout属性决意超时价。你还能够经由过程Session工具的Abandon办法显式停止一个会话。比方,在表格中供应一个“加入”按钮,将按钮的ACTION参数设置为包括以下命令的.asp文件的URL。
<%Session.Abandon%>
明天,我们进修了两个在WEB页面出格是基于WEB的BBS或Chat上常常利用ASP内建工具,因为这两个工具在实践使用中很有用,因而鄙人一篇中作者将使用至此我们所学过的4个ASP内建工具,给人人演示一个完全的ASP使用程序,信任经由过程这个实习,能年夜年夜加深你对ASP使用程序的了解和把握。敬请存眷“静态网站计划十八般技艺--ASP篇(9)”。
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。 |
|