ASP编程:ASP 3.0初级编程(十八)
缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用windows系统,没有linux安全编程|初级5.2.5援用工具范例库在新近的ASP版本中,在剧本中利用工具或组件时,组件内界说的大众常数(假如有的话)在ASP里将不再无效。这意味着我们必要本人声明它们(或等价物)并指定响应的值。
比方,当在初期版本的ASP中利用ActiveX数据库工具(ADO)组件时(将在第8章举行具体的研讨),不能不用纪录集的Open办法到场预界说常数声明。比方:
ConstadOpenKeyset=&H0001
ConstadLockPessimistic=&H0003
ConstadCmdTable=&H0002
…
rs.Open“Contact”,”DSN=GlobalExampleData;UID=examples;Password=;”,_
adOpenKeyset,adLockPessimistic,adCmdTable
…
另外一种办法是利用#include指令在页面拔出一个名为adovbs.inc的文件。该文件由IIS/ASP供应,包括ADO所需的一切预界说常数。更新代码时,必需确认利用的是最新版本,并反省它关于一切的页面哀求都可用。
关于IIS5.0,有一个更好的办法,经由过程在HTML正文元素内利用METADATA指令,能够给组件或工具的范例库增添援用(IIS4.0不撑持这一功效)。
<!--METADATATYPE=”TypeLib”
FILE=”path_and_name_of_file”
UUID=”type_library_uuid”
VERSSION=”major_version_number.minor_version_number”
LCID=”locale_id”
-->
个中:
・path_and_name_of_file是某一范例库文件(.tlb)或ActiveXDLL的相对物理路径,必需供应这一参数大概是type_library_uuid参数。
・type_library_uuid是该范例库的唯独一标识符,必需供应这一参数大概是path_and_name_of_file参数。
・major_version_number.minor_version_number(可选)界说了所需组件的版本。假如没有该版本则利用比来的版本。
・locale_id(可选)是地区标记符。假如在该地区没有发明范例库,盘算机将利用缺省的(安装时界说的)地区。
因而,利用这一手艺,经由过程利用上面的代码,能使内置的ADO预界说常数在ASP页面可用:
<!--METADATATYPE=”TypeLib”
FILE=”C:ProgramFilesCommonFilesSystemadomsado15.dll”
-->
文件名msado15.dll还可用于更高版本(2.50今后)的ADO组件。
假如ASP不克不及装载范例库,就前往一个毛病并中断该页的实行。大概的毛病提醒如表5-1所示:
表5-1毛病提醒代码及申明
错误说明
ASP0222有效的范例库申明
ASP0223未找到范例库
ASP0224范例库不克不及加载
ASP0225范例库不克不及打包(即ASP不克不及从指定的范例库中创立范例库包装工具)
5.2.6在客户端上创立工具实例
在ASP中会商在服务器上实例化工具和组件的手艺时,值得夸大的是在扫瞄器中运转客户端页面而完成一样事情的体例。假如你利用ASP创立包括客户端剧本程序的页面,大概利用<OBJECT>元素创立客户端组件实例,将会发明这长短常有效的。在年夜多半情形下,剧本运转期工具可在客户端上实例化和利用,效果与服务器上的ASP不异。
1.VBScriptCreateObject办法
在客户端利用CreateObject时,在扫瞄器的情况内创立组件或工具实例,它们与扫瞄器运转在不异的内存空间里(即历程内),除非完成的工具是带有.exe扩大文件名的可实行文件。
一般指定工具的ClassID,而不是利用ProgID字符串,如许就不成能与其他安装在客户真个工具产生抵触。
<SCRIPTLANGUAGE=”VBScript”>
DimobjThis
SetobjThis=CreateObject(“clsid:892D6DA7-E0F9-00105A42AF30”)
…
</SCRIPT>
固然也能够利用ProgID,而且利用通用的工具或组件(出格是尺度安装供应的工具或组件),那末失掉毛病的组件的风险是很小的:
<SCRIPTLANGUAGE=”VBScript”>
DimobjThis
SetobjThis=CreateObject(“Scripting.Dictionary”)
…
</SCRIPT>
2.JscriptActiveXObject办法
为了在客户端上实例化Jscript的工具和组件,必需利用ActiveXObject办法和new操纵符:
<SCRIPTLANGUAGE=”JScript”>
varobjMyData=newActiveXObject(‘clsid:892D6DA7-E0F9-00105A42AF30’);
</SCRIPT>
或:
<SCRIPTLANGUAGE=”JScript”>
varobjMyData=newActiveXObject(‘this.object’);
</SCRIPT>
3.<OBJECT>元素手艺
也可以使用<OBJECT>元素创立客户端工具或组件的实例。应省略RUNAT属性大概将其设定为“CLIENT”。但是,这个属性在客户端上是被疏忽的,因而设置这个属性的独一目标就是,在ASP页面利用<OBJECT>元素实例化服务器真个组件实例时避免搅浑。
<OBJECTID=”objThis”RUNAT=”CLIENT”
CLASSID=”clsid:892D6DA7-E0F9-00105A42AF30”
CODEBASE=”http://yourserver.com/components/mycomponent.cab”>
<PARAMNAME=”param1”VALUE=”value1”>
<PARAMNAME=”param2”VALUE=”value2”>
</OBJECT>
注重,这里呈现的CODEBASE属性,暗示同意下载并安装来自URL的组件(假如该组件没有安装)。IE3.0以上的版本有此功效。
关于利用<OBJECT>元素的办法、可以使用的属性、在客户端利用的值,可检察网站http://msdn.Microsoft.com/workshop/author/dhtml/reference/objects/OBJECT.asp,大概Windows2000PlatformSDK文档中的<OBJECT>tags,大概看看《IE5DynamicHTMLProgrammer’Reference》一书,ISBN1-861001-74-6,Wrox出书社。
5.3Scripting.Dictionary工具
很多Microsoft的编程言语,如VisualBasic、VBScript和Jscript,都供应汇合(collection)。能够把汇合设想为数组,可使用个中内建的函数完成存储和利用数据等基础义务。不必忧虑数据是在哪些行列,而是利用独一的键举行会见。
VBScript和Jscript都供应相似的工具,通称Scripting.Dictionary工具或Dictionary工具。它相似于二维数组,把键和相干条目标数据寄存在一同。但是真实的面向工具的办法,不该间接会见数据条目,必需利用Dictionary工具撑持的办法和属性来完成。
本章供应了一些示例页面,同意实验剧本运转期工具的办法和属性。这些实例鄙人载的文件的文件的Chaper05子目次里。
5.3.1创立和利用Dictionary工具
</p>Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。 接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) 哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的? 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。 在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。 哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的? 尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
页:
[1]