活着的死人 发表于 2015-1-16 23:40:28

ASP网站制作之ASP编程进门进阶(八)

asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了!编程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"thenSession.Abandon()endif只要在当点击了submit按钮的条件下,再来判别提取的器材都不为空,则创建Session工具。submitname=request.form("submit1")ifsubmitname="submit"thenifRequest.Form("name")""andRequest.Form("pwd")""thenSession("name")=Request.Form("name")Session("pw")=Request.Form("pwd")endifendif%><%假如Session("name")不为空,则显现Session("name")的值,而且做一个到info.asp的链接。ifSession("name")""thenresponse.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.aspifsession("name")=""thenResponse.Redirect("login.asp")不然就显现团体信息elseResponse.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文件专题中具体先容到,复杂语法以下:</p>ASP脚本是采用明文(plaintext)方式来编写的。

谁可相欹 发表于 2015-1-20 10:58:21

作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。

金色的骷髅 发表于 2015-1-24 15:29:31

运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。

活着的死人 发表于 2015-1-24 17:41:36

封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。

只想知道 发表于 2015-2-2 11:28:37

ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。

深爱那片海 发表于 2015-2-7 19:03:51

哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?

柔情似水 发表于 2015-2-23 00:26:45

ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:

若相依 发表于 2015-3-7 04:28:01

最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。

飘灵儿 发表于 2015-3-14 10:22:48

学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。

仓酷云 发表于 2015-3-21 02:22:34

ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
页: [1]
查看完整版本: ASP网站制作之ASP编程进门进阶(八)