转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
用VB编写ASP组件(一)         ★★★★

用VB编写ASP组件(一)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:682 更新时间:2009/4/23 10:25:38
 SP编程人员总是要使用到组件---其实就是以下5个ASP内建对象:Response, Request, Session, Application 和 Server,它们存在与ASP.DLL组件文件中,是WEB动态应用程序开发的基础。利用它们,花费很少的工作量就能完成一定的任务。

  编写脚本可以很完美地操作这些组件对象,从而建立定制的WEB站点。但是,单单利用这些基本组件和脚本,还不能完成所有想做的事情,因此,就要考虑使用其他的组件。

  许多其他组件都非常有用,比如ADO组件对于数据库的存取、运行时间脚本组件对于文件系统的存取。这些组件的共同一点就是:使用它们可以存取的对象,是用简单的代码所不能做到的。

  然后,如果再找不到一个能满足任务的组件,就要考虑编写了。这篇文章就将讨论在Visual Basic中实现编写组件的方法。

用Visual Basic编写第一个ASP组件

  这里要编写的组件的功能是:简单地给每个访问者一个唯一的ID号,以便日后调用。程序将检查浏览器页面请求,获取一个特殊的Cookie:VID(访问者标识符Visitor IDentifier);如果找到这个cookie值,就设置它的到期时间为从此3个月后;如果没有找到,组件就创建一个唯一的标识符,并将之存储为cookie,设置它的到期时间为从此3个月。

产生唯一的号码

  创建GUID(唯一保证识别号)的代码可以从微软知识库中找到。如果机器中安装了MSDN,那么其详细资料位于:Knowledge Base / visual Basic for Windows / HOWTO: Use API to Generate a GUID with VB。

  下面将详细讨论创建GUID的代码。这里将要制作的组件包含一个叫做GetGUID的方法,它返回代表一个GUID的16进制字符串。

在ASP页面中使用组件

  要实现组件要完成的任务“设置Cookie和到期时间”,需要在页面主体(Body)送到浏览器之前,在HTTP头部完成GUID的计算。执行下面的代码将足够为浏览器设置一个永久的GUID。

< %@ LANGUAGE="VBSCRIPT" % >
< %
Dim oCookieSetter
Set oCookieSetter = Server.CreateObject ("ASPToday.VisitorID")
% >
$#@60; HTML $#@62;
...

  创建这个独立组件的简单对象,足够可以完成要求的任务。但是在研究它之前,需要提到一些你可能注意到的事情:这里的代码使用了ASP服务对象的CreateObject方法,而不? Script中的相关函数:

< %@ LANGUAGE="VBSCRIPT" % >
< %
Dim oCookieSetter
下面的代码将不会生效 !!!!
Set oCookieSetter = CreateObject ("ASPToday.VisitorID")
% >
$#@60; HTML $#@62;
....

  这样做,就保证了Server.CreateObject方法不仅创建了一个组件的实例,而且将检查组件的一对方法:OnStartPage()和 OnEndPage(),它们将在适当的时候被执行。这是创建ASP组件、访问ASP内在对象的关键。

Visual Basic工程

  创建组件的步骤是:启动Visual Basic,在对话框提示时,选择要创建的工程类型,这里选择ActiveX DLL:



设置工程的属性

  创建工程的名字为Project1,它包含一个单独的类模块叫做class1。这些就足够了。点击菜单“Project/Project1 Properties”,在出现的如下所示画面中设置工程的属性:



  在General/Tab页面上有一对需要注意的信息。首先,工程名Project Name已经改变为ASPToday,这将形成调用名字的第一个部分,这个调用的名字就是被ASP页面使用的CreateObject的名字。这里还选择了Unattended Execution选项,从而禁止了图形界面的交互(比如错误信息对话框),这么做,有可能导致IIS错误。



  在Make页面唯一发生重要变化的是设置Auto Increment选项,这样做,当程序编译后,组件的版本号就会提升。调试程序时,知道组件的版本号是非常有用的,特别是当拥有一个source safe系统时,不过这是另外的话题。



  编译(Compile)页面是选择让编译器如何创建组件的地方。在这里选择Optimize For Small Code,因为我要让Web服务器得到它能得到的最多内存。这个页面真正重要的选项是DLL基础地址,这和计算机调入组件相关的代码库的方式有关。做为一个32位的系统,会留下2兆字节的内存装入代码。你要设置的基础地址必须是建立在64K基础上,用英语方式表达出来就是需要设置类似 &Hxxxx0000 的数值,xxxx表示从1100到7FFF的16进制数字。

  你也许要问,这是为什么呢?原因是系统在运行时间装入代码库的方式。如果用许多不同的程序库一直要装入同样的内存地址,系统就必须浪费时间和资源挑拣出哪些位于哪儿。如果编写组件时(这些组件将会一起使用)设置成不同的基础地址,那么在运行时就不会导致性能阻塞。



在Component页面,初始的版本兼容性默认是Project compatibility,如果不编译成第一个版本,这将会是不错的。当编译时,为了有利于注册表,就应该改变为Binary Compatibility,如上图所示。请查阅在线帮助得到关于这个复杂项目的详细资料。

设置工程的引用

  完成了工程属性的选择,下一步就是设置组件运行的ASP环境。通过引用对话框实现这一步。选择菜单“Project / References”,出现一个对话框,选择组件需要的库,在这里选择“Microsoft Active Server Pages Object Library”。



  通过上述引用,在程序中就可以访问ScriptingContext对象,从而能够使用在ASP页面中的5个对象:Request, Response, Session, Application 和 Server。

  如果在列表中找不到“Microsoft Active Server Pages Object Library”,点击“Browse”按钮定位寻找。ASP库引用实际上就是一个后缀为.tlb的文件,默认的路径应该位于:\Program Files\Microsoft Visual Studio\ Common IDE\IDE98\ASP.TLB。


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台