仓酷云
标题:
ASP网页设计关于web使用程序的局限与session变量丢...
[打印本页]
作者:
愤怒的大鸟
时间:
2015-1-16 22:13
标题:
ASP网页设计关于web使用程序的局限与session变量丢...
使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。session|web|变量|程序|成绩弁言:比来很多网友都有如许的疑问,就是当我们在一个网页间设定了一个session变量后,到另外一个网页,却消散了。这
是甚么样的缘故原由呢。假如你具体的读完本文,信任能给你一个完全的回复!
一:媒介--关于web使用程序
我们明天所会商的web使用程序是指由WindowsNTOptionPack供应的一个创建Internet或Intranet的Web使用程
序的平台。而Web使用程序能够作为一组Web页托付利用,它们向封装了事件逻辑并供应会见存储主要贸易信息的数据库
使用程序和ActiveX组件供应用户界面。也就是我们利用的asp程序。
创立使用程序时,必需用Internet服务办理器在Web站点中指定使用程序的启动点目次。在发明其他启动点之前,
Web站点某启动点目次下的每一个文件和目次被视为是使用程序的一部分。因而,可使用目次界限界说使用程序的局限。
基于ASP的使用程序是ASP页和ActiveX组件的汇合。当用户界说使用程序时,将利用IIS指定用户的Web站点中
使用程序启动点的目次。在用户的Web站点中每一个位于启动点目次下的文件和文件夹都被以为是使用程序的一部分,直到
发明别的的启动点目次为止。如许,用户就能够利用目次作为界限界说使用程序的感化域。每一个Web站点能够有多个使用
程序,而每一个使用程序的设置都能够分歧。
二:web使用程序的局限
正如下面的界说所提到的。我们将一个web使用程序,如:购物程序,旧事程序,谈天程序......等如许一些我们开辟
的asp页面独自会合来成为一个web使用程序。分离实例来讲,如我们将一个购物程序的一切页面(如:注册页面,购物
车,收银台,定单页面,商品页面)一致起来,统称为一个web购物程序,它的使用程序局限就是从购物入手下手购物停止所涉
及到的一切页面。而在iis中,体系须将其分派到一个假造目次中往,而该假造目次的一切页面,及其子目次就是其购物程
序的物理局限。以下表所示。
*shop―index.asp
―buy.asp
+catalog―list.asp
+customer―a.asp
―b.asp
个中*号,代表的是一个假造目次,+代表的是个中的子目次。以是,全部下面的一切页面组成了一个web使用程序。可是,
也能够在一个假造目次下创建另外一个使用程序。以下表
*shop―index.asp
―buy.asp
*book―book.asp
+catalog―list.asp
+customer―a.asp
―b.asp
如许,shop下的index.asp,list.asp,a.asp等属于一个使用程序,而book下的book.asp则不属于shop,他是一个新的web应
用程序。
三:web使用程序局限的设置与使用
假如你的开辟情况是VisualInterDev6.0,那末,使用程序的设置几近不必你操心往思索,统统有VI6来给你设置好
了,并在IIS中主动创建了假造目次,但假如是其他的话,你大概必要在IIS中本人往设定他。详细步骤以下:
创立使用程序
1--在“Internet服务办理器”中,选择作为使用程序启动点的目次。能够将Web站点的主目次指定为使用程
序的启动点。
2--翻开该目次的属性页,然后单击“主目次”、“假造目次”或“目次”选项卡。
3--在“称号”文本框中,为使用程序键进称号。固然,使用程序的称号也不是需要的。但保举设定。
4--单击“创立”按钮。
今后,你就能够将你的web使用程序目次映照到该目次下便可。
分明以上的基础界说,对我们收集开辟职员非常需要,应为,恰是因为有了一个web使用程序的局限,才可使web使用
程序可以在使用程序的文件间共享信息,比方,ASP使用程序可在其网页间共享情况流、会话形态和变量设置。也就是我
们常常利用的session,application工具等。应为只要划定了一个使用程序及其局限,session,application等工具才成心
义。
四:session变量“丧失”的成绩
谈到了那末多的观点,终究能够说道本色性的成绩了,session工具是web使用程序中最主要的对像之一,恰是它的存
在,使得我们能够在跨网页间传送数据,分辩分歧用户成为大概。我们只需将变量制订给session便可完成。这一历程即
session("temp")=temp便可。但比来很多网友都有如许的疑问,就是当我们在一个网页间设定了一个session变量后,到另
一个网页,却消散了。这是甚么样的缘故原由呢。
依据下面的观点,我们能够将其缘故原由,和处置举措总结以下。
1:asp网页跨了多个web使用程序:
这个缘故原由就是你的另外一个网页多是另外一个web使用程序。之前,一些材料太过的夸大了会话变量的单一性,仿佛一个
用户毗连到一个web主机以后,只大概创立一个会话变量,这是不合错误的,分辩会话变量的根据恰是我们下面所提到的web应
用程序局限,而不是独自依据用户而创建的,你能够试一试上面的一段代码。
test.asp
<%@language=vbscript%>
<%
session("temp")="temp"
Response.Writesession.SessionIDsessionID用来分辩一个使用程序间的独自客户。
%>
将test.asp分离拷贝到两个分歧的假造目次下。你就能够看到,他是两个分歧的值了。以是,大概你的网页跨了分歧的应
用程序。
固然,这类情形关于初学者大概碰着,关于有履历的人大概犯的是如许的毛病,即他们自己为一个根目次,但在制订虚
拟目次时将其子目次又设为一个假造目次了,就好像我们下面提到的第二个表布局一样。如许他一样成了两个分歧的web
使用程序。也就不难明释为何会堕落了。
2:多是启动了多个统一使用程序。
第一种情形很好发明,也简单更正,但这第二种情形就不简单发明,也较难更正。这里我们引进一个另外一个的观点。多
个统一使用程序共存,(好长呀,关头是微软的观点我忘了,这个是我本人起的。呵呵!),它的意义从这个界说上很好
了解,就是关于统一个使用程序。统一工夫能够在内存中存在多个。如我们罕见的acdsee.exe,你能够经由过程点击启动多个
acdsee.exe。而别的一种则不克不及,我们就不说它的界说了(假如说的话,就是不异使用程序不共存,呵呵!)在统一工夫
内,假如已启动了一个使用程序,则不克不及再启动不异的使用的使用程序了。如foxmail.exe,当你启动了一个
foxmail.exe后,就只大概在内存中存在一个foxmail.假如你在启动,则不会再开一个foxmail窗口了。
而我们的ie属于前者,你能够经由过程点击ie,启动多个ie使用程序。此时,我们做上面另外一个测试。你将下面的代码
test.asp放进一个假造目次中。然后,你点击ie启动(注重:是经由过程点击Ie启动,不是按CTRL+N,也不是在一个ie窗口点
击文件,从头翻开一个窗口)此时,你能够发明,他们固然是统一个地点,统一个用户,但sessionID仍是分歧的,固然,
你还能够建另外一个文件。如
test2.asp
<%@language=vbscript%>
<%
response.writesession("temp")
%>
这时候,你在另外一个ie窗口下,你就会发明session("temp")为空,也就是说,我们方才明显在test.asp中附了值,并且
test2.asp和test.asp在统一假造目次下,但session("temp")却丧失了。本来,相对不异的asp使用程序。分歧的ie绝对
的倒是分歧的asp使用程序。(有点像绕口令难明是吧。)不外,我们已分明了它的原因,信任不难明决他。
这里还要注重的是,我们方才几回再三提到的是经由过程点击Ie,而不是经由过程按CTRL+N,也不是在一个ie窗口点击文件,从头
翻开一个窗口,这里要申明的是假如你经由过程在一个ie窗口翻开的窗口,它属于派生窗口,而不是共生窗口,就是说,此时
的另外一个窗口属于和其上一个窗口是承继干系,属于统一个使用程序局限。
3:毗连不妥
实在,年夜部分的网友碰着的成绩是经由过程点击页面中的毗连新开窗口而发明session变量丧失的。他同按ctrl+N新开窗口
的意义不异。但此时为何会出成绩呢?我们来剖析一下它的毗连体例。大概为<ahref="xx.asp"traget=_blank>click
me</a>经由过程如许点击的毗连同ctrl+n是不异的,应当不会出成绩。另有一种毗连式经由过程剧本把持的如
window.open"xx.asp","name","toolbar=no"如许的代码,他便可能产生如许的成绩。假如经由过程点击ie开了多个共生窗口
(很多网友为了节俭工夫,他们喜好开多个窗口。好比我。)。就是他大概在新开的窗口中假如含有不异的name的窗口。
则此时,便可能产生毗连不妥招致session丧失,实在,缘故原由仍是通第二种一样。另有一种更极度的体例开新窗口,经由过程用
document.write在一个剧本中静态写出新的页面,而该页面的url是不存在的,如许就更大概出成绩了,应为session恰是
经由过程url,http来追踪的。以是假如其页面地点是静态的话。则session就基本没法追踪了。
信任经由过程以上例子的剖析,大概会注释你在使用session中呈现的年夜部分成绩。但不是全体(如过你禁用cookie的话,
呵呵!)可是,假如你将以上的观点都弄懂,则能够办理你在使用session中呈现的所用成绩了。
ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于WindowsNT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失;
作者:
飘飘悠悠
时间:
2015-1-19 05:13
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
作者:
小妖女
时间:
2015-1-24 14:53
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
作者:
金色的骷髅
时间:
2015-2-1 17:19
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
作者:
小女巫
时间:
2015-2-7 12:47
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
作者:
只想知道
时间:
2015-2-22 02:42
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
作者:
爱飞
时间:
2015-3-6 22:45
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
作者:
若天明
时间:
2015-3-13 23:07
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
作者:
海妖
时间:
2015-3-20 21:35
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2