仓酷云 发表于 2015-1-16 22:55:31

ASP网页编程之Web上的形态办理

使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。web
在后面的章节中先容了ASP供应的会见一个客户哀求和发生呼应的办法,本章将会商ASP的另两个工具。就是Application和Session工具。这两个工具不是间接地与哀求和呼应的办理有关,而是更多地与ASP网页运转情况的办理相干。
与创建Web站点或Web使用程序有关的配合成绩之一,是利用HTTP协定时没有形态。形态供应了与一个指定用户有关的变量值、工具和其他资本,而且使用程序中的恣意例程都能利用它;以一种像VB或C++如许的程序计划言语编写一样平常的基于客户的使用程序时,利用形态能够完成一些响应的事情。但是,Web其实不供应这类才能。在本章中,读者将看到为何和怎样制止这个成绩。
本章还触及到一些术语和手艺成绩。它迄今为止,本书中已复杂地会商了“Web使用程序”,但没有真准确切地舆解或正确界说它们究竟是甚么。本书也触及到了“用户会话”,也没有响应的对照完整的形貌。后面成心地省略这方面的内容,由于它们与ASP的使用程序和会话亲切相干。上面将先容ASP的Application和Session工具。
本章研讨的次要内容:
・Web使用程序是甚么,和它们怎样与ASPApplication工具相接洽。
・ASP怎样主动地创立和办理使用程序和会话。
・Application和Session工具供应的功效。
・怎样把Application和Seesion工具放进ASP网页中。
起首研讨全部内容的中心成绩:形态。

3.1Web上的形态办理
很多开辟职员把使用程序传送到Web之前历来没思索形态的观点。正如后面说过的,Web是一个无形态的情况。因而应当切磋一下形态是甚么,懂得可以制止发生成绩的办法。

3.1.1形态的正确界说
在单用户程序中,创立一个可实行的使用程序时,比方利用VB创建一个.exe文件,能够声明一个全局(或Public)变量,然后在代码中任何中央可对其举行会见。在使用程序运转的一切时候,时候值一向是无效,而且是可会见的。
关于一个传统的客户机/服务器办理计划,比方一个基于客户机的使用程序对一个基于服务器的数据库引擎举行会见的体系,每一个客户端创建了一个与服务器和数据库使用程序的毗连。这类毗连一般是经由过程考证用户的办法来创建的。
考证历程是典范的辨认用户身份的历程,经由过程一个用户名和口令组合来证实是不是为正当的用户。
一旦经由过程考证,在客户端和基于服务器的使用程序之间就创建了毗连,该毗连在用户利用该使用程序的一切工夫内一向坚持无效。当用户注册到酵Windows2000服务器上时,这统统便会产生。不管什么时候,办理员利用“ActiveDirectoryUsersandComputers”有用程序(单击“Start”菜单的“AdministrativeTools”选项中的“DirectoryManagement”项)都能够察看到举动的用户毗连。这个历程在很多体系中都不异,比方MicrosoftSQLServer。
这类永世的毗连意味着:当用户发送指令或哀求到服务器上时,服务器会很简单地辨认每一个用户。一样服务器的呼应或任何其他用户的信息也能间接前往用户。要进一步指出的是服务器能够对照简单地存储与每一个客户相干的值和信息,并在必要的时分供应给响应的客户。固然,服务器使用程序可以具有主全局变量,以便于用户在必要的时分举行会见。
这类辨认每一个客户真个哀求并在内存中保留相干用户的值的才能组成形态。能够以为形态代表使用程序的值、情况和用户的外部变量,并贯串于使用程序和用户毗连的全部历程。

3.1.2形态的主要性
假如盘算创立与用户举行交互的基于Web站点的使用程序,而不是仅显现自力页面的Web网站,必需可以为每一个用户供应自力的形态。这大概只是记着他们的名字,也大概要为每一个用户存储工具援用或分歧的纪录集。假如不克不及如许做,ASP网页就不克不及做更多的事变,由于该页面实行完成时,页面中的变量和其他相干材料都损坏了。任命户哀求下一个页面时,这个页面供应的一切信息将全体得到。
因而,必要找到一种办法,保留每一个会见者的形态。可以存储对一切用户而言的全局值长短常主要。比方,一个Web作风的会见或页面点击计数器,它不为每一个用户供应本人的计数器,用户们一般想要看到会见者的总数,而不单单是他们本人会见的次数。会见者的数量必要与使用程序级形态一同存储,而不是与用户级形态一同存储。
这不是一个刚呈现的成绩,自从商用站点占有了Web,就已存在,乃至更早些。以是已有很多在Web上存储形态的传统的办理计划。Web站点办理员想要懂得会见者之前是不是曾会见过他们的网站,假如会见过,会见过量少次?还按期会见其他甚么网站等。如许能够更好地制订其告白方针。一切这些都请求一种办法来存储有关用户在会见时所发生的网页哀求或每次会见间的信息。

3.1.3在Web上创立形态
在页面哀求和站点会见之间供应形态经常使用的办法是经由过程cookie。我们在后面的章节中已看到,怎样在客户真个盘算机中寄存响应的值,这些值与每一个页面哀求一同发送给对此cookie无效的域。经由过程用ASP反省和更新cookie,在某种水平上可以坚持一个形态。可使用所包括的信息来辨认用户,然后把用户毗连到一个已存储响应值的汇合。
比方,能够检测一个用户哀求是不是包括一个站点指定的cookie。假如不包括,则为该用户分派一个某品种型的标识,指明一个数目,并存储在带有一个长无效期的cookie中。今后该用户对这个站点的每次会见,都可以检测到cookie并更新所包括的信息。同时能够搜集有关会见的次数和延续工夫的数据,并存储在服务器上,以备未来利用。
可是,假如用户转移到另外一个盘算机,或删除cookie,大概他们的扫瞄器回绝吸收发送给他们的cookie,会产生甚么事变呢?在这类情形下,不克不及保持形态,由于下一次不克不及辨认他们如今,Web上有很多cookie,年夜多半人会承受它们,而不加剖析。假如翻开扫瞄器中的“Warnbeforeacceptingcookies”选项,接着周游几个年夜的站点,你就会分明个中的含义。
1.匿名会见者与受权的会见者
假如以为cookie是一个有点轻率的办理计划,可使用更间接的办法。很多站点接纳的一种办法是,在会见者点击一个站点时,大概点击一个请求考证身份的页面时,弹出一个举行登录的对话框。会见者起首必需举行注册,取得一个某品种型的用户名/口令的组合,才干同意会见响应的站点或页面。
为了证明会见者是一个已知的而且正当的用户,在会见者的盘算机上安排的一个cookie,它大概保留注册的具体数据,大概是一把标明已考证过身份的“钥匙(key)”。同时,会见者的具体数据永世地保留在服务器上,筹办再次会见时利用。假如会见者的扫瞄器中有了如许一个cookie,他就能够自在地会见该网站,由于已考证过了。
假如cookie没有无效刻日(Expires),cookie的值在封闭扫瞄器时主动消散,鄙人一次会见时必需从头注册和再次考证。固然,假如回绝吸收cookie或删除cookie,就只能再次失掉注册对话框。如许的话,假如不被辨认,就不克不及会见该站点。
经由过程强迫用户就像注册到本人的收集一样注册到Web服务器,Windows2000全体平安功能为IIS供应更强和更平安的考证功效。可是,这只能与InternetExplorer3.0和之上版本的扫瞄器一同事情。IIS也能够利用BASIC考证同意非Microsoft扫瞄器注册Web服务器。
2.不再有匿名会见者
在IISWeb服务器上利用ASP时,除非用户分开该站点到另外一个网站大概封闭了扫瞄器,不然能在以后会话中跟踪用户。在本章的前面,将看到怎样利用这个功效来标识一个会见者、存储用户的当地信息和供应形态。上面与已会商过的办理计划比拟较,会商其事情体例。
ASP和IIS配合提出了一个用户会话的观点,经由过程ASPSession工具举行交互。在每一个会见者第一次会见服务器上的一个ASP网页时,为他创立一个新的而且自力的会话工具,分派给该会话一个会话标识号,并把包括会话标识符的特别加密版本的一个cookie发送给客户。
cookie的路径(参看后面的章节有关cookie属性的形貌)设置为运转在服务器上的ASP使用程序的根路径。这极可能上缺省的Web网站的根目次(即“/”),但也大概会是别的一个值(稍后会看到)。在cookie中没有供应Expires值,以是当扫瞄器封闭时,cookie值也就消散。
每当这个用户会见这个ASP网页,ASP城市查找这个cookie。定名为ASPSESSIONIDxxxxxxxx,个中每一个x是一个字母字符。从第2章-7所示的ServerVariables汇合,可以在HTTP报头中看到它。这里高亮地显现ASPcookie,如-1所示:

可是,这个cookie不会呈现在Request.Cookies或Response.Cookies汇合中,ASP把它埋没起来,但仍保留在扫瞄器上。关于每一个ASP网页哀求,ASP都要检察该值。这个cookie包括的值,指了然这个用户的会话。因而,响应的Session工具(该工具在内存中已被处置,而且一向包括一切在前一页面哀求过程当中举行操纵的值)的内容能够移交给ASP网页中的剧本。
固然,如前所述,假如客户扫瞄器不吸收或不撑持这些cookie,这个处置将失利。在这类情形下,不克不及创立ASP会话,对这个会见者的形态也不举行主动保护。

asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。

小妖女 发表于 2015-1-20 06:13:16

尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。

灵魂腐蚀 发表于 2015-1-28 21:00:31

我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。

精灵巫婆 发表于 2015-2-5 22:50:20

还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。

活着的死人 发表于 2015-2-14 01:33:55

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

小魔女 发表于 2015-3-4 03:50:58

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

柔情似水 发表于 2015-3-11 16:08:15

Session:这个存储跟客户端会话过程的数据,默认20分钟失效

兰色精灵 发表于 2015-3-19 01:50:56

ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。

海妖 发表于 2015-3-27 03:10:34

我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
页: [1]
查看完整版本: ASP网页编程之Web上的形态办理