仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 370|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网站制作之ASP内置工具Session的使用

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:43:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
当然了,现在国内CRM厂商的产品与其说是CRM,但从至少从我的角度分析上来看,充其量只是一个大型的进销存而已了,了解尚浅,不够胆详评,这里只提技术问题ASP工具中除用于发送(Response)、吸收和处置数据(requeest)、服务器会见(Server)的工具外,另有一些十分有用的标志ActiveServer使用程序(Application)和单个用户信息(Session)的工具。
Session工具
该工具在ASP利用中占相称年夜的比例。因为网页是一种无形态程序,没法得知用户扫瞄形态。在ASP中,经由过程Session工具来纪录利用者公有的数据变量,以作为用户再次对服务器提出请求时做确认,用户在程序的Web页面之间跳转时,存在Session工具中的变量将不会消散。
这些真的是很主要的功效,特别是有会员的体系必需要用到的。像是会员的登进账号、工夫、形态和许很多多该纪录的及时数据(如购物体系纪录利用者的购物篮内的商品),这些信息属于各利用者公家所必要,一般开辟者都是利用Session纪录处置。
在ASP中的Session是利用Cookies组成,服务器将一切的Session内纪录的数据,以Cookies的体例传至用户的扫瞄器。一般一样平常扫瞄器会将这些Cookies存起来,每当利用者点选保持,再次与服务器做联机时,扫瞄器就会把这些Cookies传回Server供做处置:这便是Session的运作道理。由此可知会话形态Session仅在撑持cookie的扫瞄器中保存,假如客户封闭了Cookie选项Session也就不克不及发扬感化了。
1、Session.SessionID
SessionID属性前往用户的会话标识。在创立会话时,服务器会为每个会话天生一个独自的标识,会话标识以长整形数据范例前往。在良多情形下SessionID能够用于WEB页面注册统计。
使用该属性能够办理一种对用户的把持成绩。该成绩的次要功效就是,针对某个网站的一个模块,当一个会员登录后正在看此模块时,另外一团体用一样的会员名登录,就不克不及扫瞄这个模块:也就是说一个会员名同时只能一团体扫瞄此模块。
经由过程用会员名(假定为UserID,独一)和SessionID来完成了把持。当会员登录时,给这个会员一个Session纪录登录形态如:Session("Status")="Logged",同时把这个会员的Session.SessionID写进数据库。当他要扫瞄此模块时,先判别其是不是登录,若已登录再判别它的SessionID是不是与数据库纪录的不异,假如分歧则不克不及会见。
如许,当另外一个用户用不异的会员名登录时,那末数据库中纪录的就是新的SessionID,前者会见此模块时就不克不及经由过程反省。这就完成了一个会员名同时只能一团体扫瞄某个模块。这个功效在一些免费网站有很有出格感化,它避免了一个会员名给多团体扫瞄的成绩,为公司保证了好处。
<%=Session.SessionId%>
是独自天生的独一ID标识,可革新调试。
2、Session.TimeOut
该属性设置的Session的最年夜距离工夫。距离工夫是指客户器端从比来一次向Web服务器提出请求,到下一次向Web服务器提出请求的工夫。能够了解为:假如用户在该超不时限以内不革新或哀求网页,则该会话将停止。Timeout属性是以分钟为单元,为该使用程序的Session工具指定超不时限的,一样平常默许为20分钟。这在网吧等公开场合,登录团体信息页而健忘封闭窗口时,显得对照主要(最少能够把工夫设短些)。
<%Session.TimeOut=10%>
以上SessionId、TimeOut属于Session工具的两个属性,上面看该工具的一个办法Abandon
3、Session.Abandon
该办法是Session工具的独一办法,能够扫除Session工具,用来打消用户的Session工具并开释其所占的资本。固然你假如没有明白挪用Abandon办法,一旦会话超时,服务器也会将删除这些工具并开释资本。
上面就用两个页的程序来熟悉Session工具和Abandon办法的使用。
1,login.asp
<%
是提取url中变量loginout的值是不是为true,若为真,就实行Session.Abandon()。
ifRequest.QueryString("loginout")="true"then
Session.Abandon()
endif
只要在当点击了submit按钮的条件下,再来判别提取的器材都不为空,则创建Session工具。
submitname=request.form("submit1")
ifsubmitname="submit"then
ifRequest.Form("name")""andRequest.Form("pwd")""then
Session("name")=Request.Form("name")
Session("pw")=Request.Form("pwd")
endif
endif
%>
<%
假如Session("name")不为空,则显现Session("name")的值,而且做一个到info.asp的链接。
ifSession("name")""then
response.write("你的name值是:"&Session("name"))
response.write("<br><ahref=info.asp>显现你的材料</a>")
else
不然,即Session("name")为空不存在,则显现表单用以输出创建Session的平台。
%>
<formaction="login.asp"method="post">
姓名:<inputtype="text"name="name"><br>
暗码:<inputtype="password"name="pwd"><br>
<inputtype="submit"value="submit"name="submit1">
</form>
<!--一样做了一个到info.asp的链接。-->
<ahref="info.asp">显现你的材料</a>
<%endif%>
注重Session("name")为空和不为空的时分,都做了一个到info.asp的链接,详细调试了局怎样,再来看info.asp的内容。2,info.asp
<%
假如session工具值为空则跳转到login.asp
ifsession("name")=""then
Response.Redirect("login.asp")
不然就显现团体信息
else
Response.Write("你的姓名:"&session("name")&"<br>")
Response.Write("你的暗码:"&session("pw")&"<br>")
endif
%>
<ahref="login.asp">前往</a>
<ahref="login.asp?loginout=true">加入</a>
能够看出来,info.asp页面内容的显现实际上是必要前提的。那就是必需得有一个session值的存在,如许才能够显现详细的信息。这在登录体系中使用得对照多。
你能够把login.asp设想成一个登录窗口,固然我的这个对照复杂(只需输出用名和暗码就临盆Session了),实践情形是:判别输出的用名和暗码是不是和数据库中的用名和暗码符合,假如准确符合才天生Session的。然info.asp页面的感化恰好能够做为一权限页面,由于进进该页必要Session,而Session的发生是确保用名暗码准确的。
以是当一入手下手呈现表单窗口时,你点login.asp链接是打不开的,只要当提交了表单天生了Session后才干进进。这恰是登录体系的精华地点,DoYouKnow?:)
4、Session_OnStart
Session_OnStart属于Session工具的一类事务。它是在服务器创立新会话时产生的。服务器在实行哀求的页之前先处置该剧本。Session_OnStart事务是设置会话期变量的最好机会,由于在会见任何页之前城市先设置它们。
工具的例程每次启动时触发Session_OnStart事务,然后运转Session_Onstart事务的处置历程。也就是说,当服务器吸收到使用程序中的URL的HTTP哀求时,触发此事务,并创建一个Session工具。
固然说到Session_OnStart事务就不克不及不谈到一个文件Global.asa(P.S:我盘算把该文件和Chat程序放在一同说的,以是如今先不作过量注释)详细用法先泄漏,写在Global.asa文件外部
<SCRIPTRUNAT=ServerLanguage=VBScript>
.......
SubSession_OnStart
.......
EndSub
.......
</SCRIPT>
5、Session_OnEnd
一看也就晓得是Session工具的另外一类事务了。当挪用Session.Abandon办法时大概在TimeOut的工夫内没有革新,这会触发Session_OnEnd事务,然后实行内里的剧本。一样详细用法在前面将写的Global.asa文件专题中具体先容到,复杂语法以下:
<SCRIPTRUNAT=ServerLanguage=VBScript>
.......
SubSession_OnEnd
.......
EndSub
.......
</SCRIPT>
最初,不晓得人人有无玩过如许的一个程序:很使人厌恶的,让你永久关不失落的程序页面。
只做程序调试,不要往做弄他人。
以下文件保留为bug.html
<bodyonunload=javascript:window.open("bug.html")>
发明该文件关不了了?(固然你要封闭,把源代码修正下)
那如今的请求是:盘算封闭的次数,假如凌驾几次就能够自行封闭,那上面就接纳到session
以下文件保留为bug.asp
<%ifsession("num")<2then%>
<bodyonunload=javascript:window.open("bug.asp")>
<%session("num")=session("num")+1%>
<%else%>
<script>
self.close()
</script>
<%endif%>
呵呵,当你封闭三次今后,窗口就不再弹出了。懂得吧:)
以上就是对Session工具的体系进修。
SQLServer是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。
因胸联盟 该用户已被删除
沙发
发表于 2015-1-19 21:48:19 | 只看该作者
那么,ASP.Net有哪些改进呢?
只想知道 该用户已被删除
板凳
发表于 2015-1-25 13:29:20 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
深爱那片海 该用户已被删除
地板
发表于 2015-2-2 22:14:58 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
活着的死人 该用户已被删除
5#
发表于 2015-2-8 12:32:04 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
小妖女 该用户已被删除
6#
发表于 2015-2-25 13:55:21 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-7 21:30:11 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
简单生活 该用户已被删除
8#
发表于 2015-3-15 14:10:40 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
再现理想 该用户已被删除
9#
发表于 2015-3-22 02:03:18 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 20:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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