⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 16-4.cfm.htm

📁 最全的ASP教程
💻 HTM
字号:
<html>

<head>
<title>Active Server Pages是怎样工作的?</title>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80">
<meta NAME="GENERATOR" CONTENT="Microsoft FrontPage 3.0">
</head>

<body>
<b><font SIZE="5">

<p ALIGN="JUSTIFY">不利用</font><font FACE="宋体" SIZE="5">Cookie</font><font
SIZE="5">来保持信息</p>
</font></b><font SIZE="3">

<p ALIGN="JUSTIFY">其实这部分也是老调重弹,前面章节已经介绍过</font><font
FACE="宋体" SIZE="3">QueryString</font><font SIZE="3">字段的使用及接收,以及</font><font
FACE="宋体" SIZE="3">Form</font><font SIZE="3">的接收,其实这两种手段也可以进行一些信息保存,最后我们会对这三种方案进行综合比较。</p>
</font><b>

<p ALIGN="JUSTIFY">利用<font FACE="宋体">QueryString</font>来保持信息</p>
</b><font FACE="宋体" SIZE="3">

<p ALIGN="JUSTIFY"></font><font SIZE="3">第</font><font FACE="宋体" SIZE="3">15</font><font
SIZE="3">章中有关小节有所介绍,由于你可以在连接中添加任何</font><font
FACE="宋体" SIZE="3">QueryString</font><font SIZE="3">字段,那么,只要你在网站的所有连接中添加一个保存用户某种信息的字段,再在各个程序上进行相应处理,就可以进行模拟的跟踪,如下例:</p>
</font><font FACE="宋体" SIZE="3">

<p ALIGN="JUSTIFY">&lt;HTML&gt;</p>

<p ALIGN="JUSTIFY">&lt;HEAD&gt;&lt;TITLE&gt;Query</font><font SIZE="3">字段进行信息保留</font><font
FACE="宋体" SIZE="3">&lt;/TITLE&gt;&lt;/HEAD&gt;</p>

<p ALIGN="JUSTIFY">&lt;BODY&gt;</p>

<p ALIGN="JUSTIFY">&lt;%</p>

<p ALIGN="JUSTIFY">Username=Server.URLEncode(</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3">Bill Gates</font><font SIZE="3">”</font><font FACE="宋体"
SIZE="3">)</p>

<p ALIGN="JUSTIFY">%&gt;</p>

<p ALIGN="JUSTIFY">&lt;A Href=</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">/nextpage.asp?&lt;%=UserName%&gt;</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">&gt;</font><font SIZE="3">点击这里</font><font
FACE="宋体" SIZE="3">&lt;/a&gt;</p>

<p ALIGN="JUSTIFY">&lt;/BODY&gt;</p>

<p ALIGN="JUSTIFY">&lt;/HTML&gt;</p>

<p ALIGN="JUSTIFY"></font><font SIZE="3">这个脚本将</font><font FACE="宋体"
SIZE="3">Bill Gates</font><font SIZE="3">赋值给</font><font FACE="宋体" SIZE="3">Username</font><font
SIZE="3">的变量,然后将它通过</font><font FACE="宋体" SIZE="3">QueryString</font><font
SIZE="3">传递给</font><font FACE="宋体" SIZE="3">nextpage.asp</font><font SIZE="3">,那么在</font><font
FACE="宋体" SIZE="3">Nextpage.asp</font><font SIZE="3">中你就可以接受然后继续进行这个参数的传递。例如:下面就是</font><font
FACE="宋体" SIZE="3">Nextpage.asp</font><font SIZE="3">的一个示例:</p>
</font><font FACE="宋体" SIZE="3">

<p ALIGN="JUSTIFY">&lt;HTML&gt;</p>

<p ALIGN="JUSTIFY">&lt;HEAD&gt;&lt;TITLE&gt;Next Page&lt;/TITLE&gt;&lt;/HEAD&gt;</p>

<p ALIGN="JUSTIFY">&lt;BODY&gt;</p>

<p ALIGN="JUSTIFY">&lt;%</p>

<p ALIGN="JUSTIFY">Username=Server.URLEncode(</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3">Request.QueryString(</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋体"
SIZE="3">))</p>

<p ALIGN="JUSTIFY">%&gt;</p>

<p ALIGN="JUSTIFY">&lt;A HREF=</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">/thirdpage.asp?&lt;%=Username%&gt;</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">&gt;</font><font SIZE="3">点击这里</font><font
FACE="宋体" SIZE="3">&lt;/a&gt;</p>

<p ALIGN="JUSTIFY">&lt;/body&gt;</p>

<p ALIGN="JUSTIFY">&lt;/html&gt;</p>

<p ALIGN="JUSTIFY"></font><font SIZE="3">这个优点是显然适用于任何浏览器,但是必须承认,这样传递来保存信息实在太麻烦了,所有的连接都要考虑到,每一个</font><font
FACE="宋体" SIZE="3">Active Server Pages</font><font SIZE="3">都必须相应处理一下,</font><font
FACE="宋体" SIZE="3"> </font><font SIZE="3">而且用户很可能‘一不小心’就溜出了这种跟踪之外。修改起来也过于麻烦。</p>
</font><font FACE="宋体" SIZE="3">

<p ALIGN="JUSTIFY"></font><font SIZE="3">另一个缺点是针对不同的浏览器必须考虑长度限制,前面章节介绍过这种限制,现在有的浏览器对于过长是截取信息,有的则干脆报错,不过相信这都不是你所希望的。同时安全性没有保证。</p>
</font><b>

<p ALIGN="JUSTIFY">利用<font FACE="宋体">Form</font>的<font FACE="宋体">hidden</font>类型进行信息传递</p>
</b><font FACE="宋体" SIZE="3">

<p ALIGN="JUSTIFY"></font><font SIZE="3">如果你确实需要传递大量信息而又不想选用</font><font
FACE="宋体" SIZE="3">Session</font><font SIZE="3">变量,那么您别无选择只有利用</font><font
FACE="宋体" SIZE="3">Form</font><font SIZE="3">的</font><font FACE="宋体" SIZE="3">Hidden</font><font
SIZE="3">类型。正如下例:</p>
</font><font FACE="宋体" SIZE="3">

<p ALIGN="JUSTIFY">&lt;HTML&gt;</p>

<p ALIGN="JUSTIFY">&lt;HEAD&gt;&lt;TITLE&gt;Form</font><font SIZE="3">传参示例</font><font
FACE="宋体" SIZE="3">&lt;/TITLE&gt;&lt;/HEAD&gt;</p>

<p ALIGN="JUSTIFY">&lt;BODY&gt;</p>

<p ALIGN="JUSTIFY">&lt;%</p>

<p ALIGN="JUSTIFY">Username=</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">Bill 
Gates</font><font SIZE="3">”</font><font FACE="Tms Rmn" SIZE="3"></p>
</font><font FACE="宋体" SIZE="3">

<p ALIGN="JUSTIFY">%&gt;</p>

<p ALIGN="JUSTIFY">&lt;FORM METHOD=</font><font SIZE="3">”</font><font FACE="宋体"
SIZE="3">Post</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3"> Action=</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">/nextpage.asp</font><font SIZE="3">”</font><font
FACE="宋体" SIZE="3">&gt;</p>

<p ALIGN="JUSTIFY">&lt;INPUT Name=</font><font SIZE="3">”</font><font FACE="宋体"
SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3"> TYPE=</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">HIDDEN</font><font SIZE="3">”</font><font
FACE="宋体" SIZE="3"> VALUE=</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">&lt;%=Username%&gt;</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">&gt;</p>

<p ALIGN="JUSTIFY">&lt;input type=</font><font SIZE="3">”</font><font FACE="宋体"
SIZE="3">submit</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3"> name=</font><font
SIZE="3">”下一页”</font><font FACE="宋体" SIZE="3">&gt;</p>

<p ALIGN="JUSTIFY">&lt;/Form&gt;</p>

<p ALIGN="JUSTIFY">&lt;/Body&gt;</p>

<p ALIGN="JUSTIFY">&lt;/HTML&gt;</p>

<p ALIGN="JUSTIFY"></font><font SIZE="3">这个主页包括一个</font><font
FACE="宋体" SIZE="3">HTML Form</font><font SIZE="3">。其中有一个隐含类型名字为</font><font
FACE="宋体" SIZE="3">Username</font><font SIZE="3">,</font><font FACE="宋体"
SIZE="3"> </font><font SIZE="3">同时赋予</font><font FACE="宋体" SIZE="3">Username</font><font
SIZE="3">变量的值。这个</font><font FACE="宋体" SIZE="3">Form</font><font
SIZE="3">也有一个</font><font FACE="宋体" SIZE="3">Submit</font><font SIZE="3">按钮。当按钮点击后,在</font><font
FACE="宋体" SIZE="3">hiden</font><font SIZE="3">类型中存放的</font><font
FACE="宋体" SIZE="3">Username</font><font SIZE="3">的值将传递到下一个主页上。在下一个主页进行处理,然后以同样方式传递到另外一个新的主页上,下面是</font><font
FACE="宋体" SIZE="3">nextpage.asp</font><font SIZE="3">的例子:</p>
</font><font FACE="宋体" SIZE="3">

<p ALIGN="JUSTIFY">&lt;HTML&gt;</p>

<p ALIGN="JUSTIFY">&lt;HEAD&gt;&lt;TITLE&gt;</font><font SIZE="3">下一页</font><font
FACE="宋体" SIZE="3">&lt;/TITLE&gt;&lt;/HEAD&gt;</p>

<p ALIGN="JUSTIFY">&lt;BODY&gt;</p>

<p ALIGN="JUSTIFY">&lt;%</p>

<p ALIGN="JUSTIFY">Username=Request.Form(</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋体"
SIZE="3">)</p>

<p ALIGN="JUSTIFY">%&gt;</p>

<p ALIGN="JUSTIFY">&lt;FORM METHOD=</font><font SIZE="3">”</font><font FACE="宋体"
SIZE="3">Post</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3"> Action=</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">/thirdpage.asp</font><font SIZE="3">”</font><font
FACE="宋体" SIZE="3">&gt;</p>

<p ALIGN="JUSTIFY">&lt;input name=</font><font SIZE="3">”</font><font FACE="宋体"
SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3"> Type=</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">hidden</font><font SIZE="3">”</font><font
FACE="宋体" SIZE="3"> Value=</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">&lt;%=Username%&gt;</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">&gt;</p>

<p ALIGN="JUSTIFY">&lt;input type=submit value=</font><font SIZE="3">”再下一页”</font><font
FACE="宋体" SIZE="3">&gt;</p>

<p ALIGN="JUSTIFY">&lt;/Form&gt;</p>

<p ALIGN="JUSTIFY">&lt;/Body&gt;</p>

<p ALIGN="JUSTIFY">&lt;/Html&gt;</p>
</font><b>

<p ALIGN="JUSTIFY">方法结合</p>
</b><font FACE="宋体" SIZE="3">

<p ALIGN="JUSTIFY"></font><font SIZE="3">这两种方法实现起来都十分麻烦而且颇为”费力不讨好”,但是,如果偏要不用</font><font
FACE="宋体" SIZE="3">Cookies</font><font SIZE="3">和</font><font FACE="宋体" SIZE="3">Session</font><font
SIZE="3">变量来传递信息,确实也别无良策。同时,这两种方法确实可以适用于任何浏览器。</p>
</font><font FACE="宋体" SIZE="3">

<p ALIGN="JUSTIFY"></font><font SIZE="3">请注意,如果在任意一页中没有进行这种</font><font
FACE="宋体" SIZE="3">QueryString</font><font SIZE="3">字段或者</font><font
FACE="宋体" SIZE="3">hidden</font><font SIZE="3">类型的</font><font FACE="宋体"
SIZE="3">Form</font><font SIZE="3">的处理,那么这种跟踪就停止了,不管这是你希望的还是程序上不小心造成的。</p>
<b>

<p ALIGN="JUSTIFY">注意</p>
</b></font><font FACE="宋体" SIZE="3">

<p ALIGN="JUSTIFY"></font><font SIZE="3">一个十分显著的缺点是不管利用</font><font
FACE="宋体" SIZE="3">QueryString</font><font SIZE="3">字段还是利用</font><font
FACE="宋体" SIZE="3">Hidden Form</font><font SIZE="3">传递</font><font FACE="宋体"
SIZE="3"> </font><font SIZE="3">信息,安全性都是毫无保证的,这是由于浏览器对信息的接受是在几乎毫无屏障的情况下进行的。</p>
</font><font FACE="宋体" SIZE="3">

<p ALIGN="JUSTIFY"></font><font SIZE="3">你完全可以将这两种方法结合起来,而在接受时可以没有任何区别,这里面补充的是,对于</font><font
FACE="宋体" SIZE="3">Response</font><font SIZE="3">对象,可以不指定</font><font
FACE="宋体" SIZE="3">Form</font><font SIZE="3">集合和</font><font FACE="宋体"
SIZE="3">QueryString</font><font SIZE="3">集合来进行接受,这时系统会自动辨认。见下面这个例子:</p>
</font><font FACE="宋体" SIZE="3">

<p ALIGN="JUSTIFY">&lt;HTML&gt;</p>

<p ALIGN="JUSTIFY">&lt;HEAD&gt;&lt;TITLE&gt;</font><font SIZE="3">下一页</font><font
FACE="宋体" SIZE="3">&lt;/TITLE&gt;&lt;/HEAD&gt;</p>

<p ALIGN="JUSTIFY">&lt;BODY&gt;</p>

<p ALIGN="JUSTIFY">&lt;%</p>

<p ALIGN="JUSTIFY">Username=Request(</font><font SIZE="3">“</font><font FACE="宋体"
SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">)</p>

<p ALIGN="JUSTIFY">%&gt;</p>

<p ALIGN="JUSTIFY">&lt;!---</font><font SIZE="3">注:就是上面这个脚本,</font><font
FACE="宋体" SIZE="3">QueryString</font><font SIZE="3">和</font><font FACE="宋体"
SIZE="3">hidden</font><font SIZE="3">的</font><font FACE="宋体" SIZE="3">Form</font><font
SIZE="3">都可以正确接收</font><font FACE="宋体" SIZE="3">---&gt;</p>

<p ALIGN="JUSTIFY">&lt;Form Method=</font><font SIZE="3">”</font><font FACE="宋体"
SIZE="3">Post</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3"> Action=</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">/nextpage.asp</font><font SIZE="3">”</font><font
FACE="宋体" SIZE="3">&gt;</p>

<p ALIGN="JUSTIFY">&lt;input name=</font><font SIZE="3">”</font><font FACE="宋体"
SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3"> Type=</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">Hidden</font><font SIZE="3">”</font><font
FACE="宋体" SIZE="3"> Value=</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">&lt;%=Username%&gt;</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">&gt;</p>

<p ALIGN="JUSTIFY">&lt;input type=Submit value=</font><font SIZE="3">”下一页”</font><font
FACE="宋体" SIZE="3">&gt;</p>

<p ALIGN="JUSTIFY">&lt;/FORM&gt;</p>

<p ALIGN="JUSTIFY">&lt;a href=/nextpage.asp?&lt;%=ServerURLEncode(Username)%&gt;</font><font
SIZE="3">点击这里</font><font FACE="宋体" SIZE="3">&lt;/a&gt;</p>

<p ALIGN="JUSTIFY">&lt;/BODY&gt;</p>

<p ALIGN="JUSTIFY">&lt;/HTML&gt;</p>

<p ALIGN="JUSTIFY"></font><font SIZE="3">在这个例子中,变量</font><font
FACE="宋体" SIZE="3">Username</font><font SIZE="3">被赋值而无须知道上一页是利用的</font><font
FACE="宋体" SIZE="3">Hidden form</font><font SIZE="3">域</font><font FACE="宋体"
SIZE="3"> </font><font SIZE="3">还是</font><font FACE="宋体" SIZE="3">QueryString</font><font
SIZE="3">来传递参数。在以后编制</font><font FACE="宋体" SIZE="3">Active 
Server Pages</font><font SIZE="3">时,这种</font><font FACE="宋体" SIZE="3"> 
Request(</font><font SIZE="3">“</font><font FACE="宋体" SIZE="3">Username</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">)</font><font SIZE="3">形式的简易调用将十分常用。</p>
</font><font SIZE="5"><b>

<p ALIGN="JUSTIFY">总结</p>
</b></font><font FACE="宋体" SIZE="3">

<p ALIGN="JUSTIFY"></font><font SIZE="3">在这章里面,你应当学到了怎样利用</font><font
FACE="宋体" SIZE="3">Sessions</font><font SIZE="3">进行信息处理,首先你学到的是创建一个</font><font
FACE="宋体" SIZE="3">Session</font><font SIZE="3">和用它在多主页间存储和传递信息,同时你应当掌握在</font><font
FACE="宋体" SIZE="3">Session</font><font SIZE="3">开始和结束时创建相应脚本程序,这样做对于进行统计太重要了。同时,你还学会了和</font><font
FACE="宋体" SIZE="3">Session</font><font SIZE="3">密切相关的,创建和读取</font><font
FACE="宋体" SIZE="3">Cookies</font><font SIZE="3">信息。最后,对于那些实在不愿意使用</font><font
FACE="宋体" SIZE="3">Session</font><font SIZE="3">和</font><font FACE="宋体" SIZE="3">Cookie</font><font
SIZE="3">的人们提供了一些替代手段的介绍和讨论。</p>
</font>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -