ASP网站制作之关于开释session的两篇文章(二)
缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用windows系统,没有linux安全sessionDeletingaSubsetofSessionVariablesWhenusingSessionstostorevariablesin,Iuseanamingconvention-forexample,forallCustomerrelatedinfoIprefixthesessionvariablewiththesubstringCustomer.(sofortheCustomerIDitwouldbeCustomer.ID,thecustomerusernamewouldbeCustomer.Name,etc.)Thisisveryusefulwhenviewingthesessionobjectsasyoucanseetherelatedobjectsstraightoff.
TheproblemIhadtheotherdaywasthatIwantedtoremoveonlythoseitemsfromtheSessionwhichwereprefixedSW..SofirstoffIusedthefollowingcode:
---------------------------------------
Session("SW.1")="Test1"
Session("SW.2")="Test2"
Session("Other")="Other"
ForEachSessionIteminSession.Contents
IfLeft(SessionItem,3)="SW."then
Session.Contents.Remove(SessionItem)
endif
Next
---------------------------------------
Thisseemsfine,butwhenitsrun,whathappensisthatSW.1isremoved,butSW.2isNOTremoved.Why?Imnotexactlysure,butIguessthattheindexisthenresetsothatSW.2isnowwhereSW.1was,andseeingaswehaveiteratedpastthatitemintheForEach...Nextstatement,theloopjustmovestoOther,missingoutSW.2altogether!Eek!
SotogetroundthisIwrotethefollowingfunction,whichwillproperlydeleteallSessionvariablesthatbeginwithaspecifiedsubstring:
---------------------------------------
functionSessionRemoveSelected(sItemPrefix)
/////////////////////////////////////////////////
RemoveSelectedItemsstartingwithsItemPrefix
fromtheSession.e.g.SS.willremoveSS.IDand
SS.NAMEbutnotCustomerIDReturnsTrueorFalse
dependingonwhetheranyitemswhereremoved.
---------------------------------------
sItemPrefix:ItemPrefix
/////////////////////////////////////////////////
dimarySession()
dimlCount,lPrefixLength
dimSessionItem
dimblnResult
lCount=-1
lPrefixLength=len(sItemPrefix)
blnResult=false
temporarilystoreinarrayitemstoremove
ForEachSessionIteminSession.Contents
ifleft(SessionItem,lPrefixLength)=sItemPrefixthen
lCount=lCount+1
redimpreservearySession(lCount)
arySession(lCount)=SessionItem
endif
Next
removeitems
ifIsArray(arySession)andlCount>=0then
forlCount=LBound(arySession)toUBound(arySession)
Session.Contents.Remove(arySession(lCount))
next
blnResult=true
endif
SessionRemoveSelected=blnResult
endfunction
-------------------------------------------------
</p>缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。 掌握asp的特性而且一定要知道为什么。 没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。 作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。 Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write 学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点: 完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
页:
[1]