网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.在ASP中使用Oracle数据库技巧.
.不用Golobal.asa和session实现在.
.asp实现关键词获取(各搜索引擎,g.
.adodb.stream对象的方法/属性.
.用ASP和Microsoft.XMLDOM分析远程.
.获得jpg文件的实际尺寸.
.用存储过程实现ASP对数据库访问.
.ASP网站漏洞解析及黑客入侵防范方.
.如何判断conn.Execute成功 或失败.
.asp操作excel,显示数据及统计方.
.rs的pagesize属性.
.用VB6读写数据库中的图片.
.将ASP代码移植为VB COM组件-4.
.利用adodb.stream直接下载任何后.
.纯猝使用VBScript来实现加密.
.ASP中实现从dbf数据库导出数据到.
.如何用ASP编写网站统计系统一.
.一个改进的ASP生成SQL 命令字符串.
.使用Javascript实现邮箱快速登录.
.SubSonic 的字段名未转义问题修正 .

XMLHTTP ActiveX对象的访问ASP区段变量的其他方法

发表日期:2002-12-3


几个月以前,一个同事到我这里来,说他有一个客户端JavaScript的问题。我不得不向他解释说,活动服务器页面(ASP)的区段变量不能从客户端访问,除非它们通过cookie或者隐藏的输入框被传递。但是我没有停止继续寻找从客户端访问ASP区段变量更好方法的工作。  

最近在研究如何不需要上传和下载页面就能够从服务器获取信息时,我读到了关于XMLHTTP ActiveX对象的内容。从本质上讲,这个对象为Internet Explorer和Web服务器通讯并接收回应提供了一种方法。它是MSXML动态加载库的一部分,其当前的版本是第4版,并能从微软免费下载。同样值得重要的是,注意对于微软Internet Explorer 5.x,MSXML缺省的版本还是第2版。

XMLHTTP基础
你可以使用XMLHTTP对象在服务器上执行一个ASP,等待服务器的回应,然后根据回应来动作。这意味着有了一个JavaScript函数和一个专用的动态服务器页面,就有可能解决从客户端访问变量的问题。客户端需要区段变量的值吗?没问题!你要做的全部工作就是调用一个小小的函数。

实现XMLHTTP对象
只要开始试着实现以前没有尝试过的概念或特性,我通常会发现把问题分解成逻辑件会更容易一些。在这种情况下,我从服务器端的和客户端的开始。心里有这个概念,我命名为test.asp的服务器端活动服务器页面看起来就是这个样的了:

<%@ Language=VBScript%>
<%
Response.Write
Session(Request.QueryString("variable"))
%>
这个服务器端代码段的目的是返回任何和查询字符串里同键相关联的ASP区段变量的值。

由于请求是从客户端发起的,而且有一个对象正在被使用,所以客户端这一部分会更详细。创建XMLHTTP对象、设置对象的属性、调用对象的发送方法,以及根据对象返回的信息进行动作,这些都是有必要的。Listing A是执行这些任务的JavaScript。
要进一步检查XMLHTTP的可能性,就有必要往回走一步,这是因为利用URL把查询信息从客户端送到服务器端是有局限性的。URL最大长度限定为2,048字节。这2KB的最大长度还包括了URL的非查询字符串这部分。要更进一步就要找到一种更好的方法,把信息从客户端送到服务器端。

我只花了大约20分钟就决定好了如何把信息从客户端传递到服务器端。我决定使用HTTP。在你确定我脑子发懵但已经回过神以前,让我来解释一下。我要在HTTP报头里传递信息。通过包头来传递信息就能够避免使用URL传递信息所无法避免的2,048字节的限制。

心里有了这些,现在就需要修改通过URL传递信息的例子了。在客户端不是要把参数添加到test.asp的URL里,而是XMLHTTP对象的setHeader方法会传递这个参数。进行这样的修改就产生了Listing B里的客户端程序。

在服务器端,有必要从HTTP报头里而不是请求对象的查询字符串里取回区段变量名。其结果是:

<%@ Language=VBScript %>
    <%
     Response.Write Session(Request.ServerVariables("HTTP_test"))
    %>
更进一步
我在这里所描述的对象叫做XMLHTTP。注意这个对象的头3个字母是XML。你已经见过了如何在客户端和服务器端传递信息,但是XMLHTTP对象的初衷是允许信息作为XML在客户端和服务器端传递信息。在以后的文章里,我会解释如何使用XML的简单对象访问协议(SOAP)来交换更加复杂的信息。
上一篇:用HTML框架减少服务器流量 人气:12354
下一篇:从 ASP Web 页返回 XML 人气:12145
浏览全部的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐