手写个小组件(组件入门)asp版

动手写个小组件(组件入门)

  这篇文章主要是为想将自己的ASP水平提高的人写的! 把ASP代码变成组件,开发者不仅是加快了ASP的速度,而且也能保护自己的代码.这篇文章写出来,也是为了给想开发组件网友上一堂入门课!

  下面,我们会来编写一个非常简单的组件,重点是知道怎样开发DLL组件,而不是其复杂的代码!这些都要靠你们自己以后的努力了.

服务器端组件

  首先,服务器端的组件要有别于客户端的组件.客户端的组件是通过网络传输,依靠HTML来起作用.而且只能在IE上有用.但是服务器端的组件是运行在服务器端,它在服务器上执行各种操作.因此,所有的浏览器都能享用,它依靠的是服务器而不是浏览器.

  当IIS被请求执行一个ASP程序,它首先会在ASP文件中找到 标签之间的代码,并且执行它(也可以是 之间的代码).如果这个ASP程序在先前被调用过,那么它就会用内存中的编译过的程序来向用户返回HTML代码,如果没有,那么它就重新编译.这里ASP就比CGI多一点速度优势,因为CGI是每一个请求都使用一个线程.这样就大大消耗了服务器的资源.

  想不想你写的程序自己就能在IIS运行!?!现在你就行了!使用VB5(当然现在是VB6了),你就能建立Dynamic Linked Libraries (DLL 文件),它能在IIS上直接运行(如果有asp文件来请求的话).

系统和软件的要求

  你需要一个32位的操作系统来运行ASP.当然你也得安装IIS或PWS.我们下面的程序是在windows95+PWS+VB5的环境下开发的.

我们开始吧

  启动你的VB,选择ActiveX图标.这个图标可以在新建工程找到!VB会提供一个默认的工程名(project1)和类名(class1).我们会将这两个名字都改掉.在改名之前,请首先确认我们拥有Microsoft Active Server Pages Object Library,它在我们的程序非常有用.从菜单中选择"工程",然后在其中选择"引用",就会出现"引用"窗口,从中选择Microsoft Active Server Pages Object Library.

给工程和类命名

  现在我们来根据自己的爱好来为project1和class1来命名吧!给它们命名也是很重要的,我们以后会用这个工程名和类名来创建这个组件的实例!后面详细介绍.

  如何改名,我就不想多说了!

  我们的工程名改为Exmaple,类名为Helloword

怎样使用工程和类

  现在我们有了我们自己的工程(Example1)和类名(HelloWorld).以后我们就会在ASP代码中使用它们的名字来引用这个组件.在ASP中我们就这样引用,如下:

Set ObjReference = Server.CreateObject("ProjectName.ClassName")

对于我们工程的引用就是:

Set ObjReference = Server.CreateObject("Example1.HelloWorld")

  现在我们就能用ObjReference来调用我们在组件中所创建的函数,子程序.下面我们会来写一个SayHello的子程序, 我们执行它的代码如下:

  为了在Helloword类中使用ASP的方法,你必须在此类中写一个OnStartPage

子函数.如下:

Public Sub OnStartPage(PassedscriptingContext As scriptingContext)

Set MyscriptingContext = PassedscriptingContext

End Sub

  现在,无论什么时候用户访问一个带有本组件的ASP文件,IIS就会把scriptingContext传送给我们的对象请我们使用.这个scriptingContext包括了全部的ASP方法和属性.实现上,这使得我们有能力访问所有ASP的对象.看下面的代码:

复制代码 代码如下:

Public Sub OnStartPage(PassedscriptingContext As scriptingContext)

Set MyscriptingContext = PassedscriptingContext

Set MyApplication = MyscriptingContext.Application

Set MyRequest = MyscriptingContext.Request

Set MyResponse = MyscriptingContext.Response

Set MyServer = MyscriptingContext.Server

Set MySession = MyscriptingContext.Session

End Sub

  以后我们就能用在VB中用MyApplication 来代替ASP中的Application,同理可以代替Request,Server.....,不过我们来是要在 OnStartPage之前来申明这些变量:

复制代码 代码如下:

Private MyscriptingContext As scriptingContext

Private MyApplication As Application

Private MyRequest As Request

Private MyResponse As Response

Private MyServer As Server

Private MySession As Session

使用ASP的对象

  我们的变量现在就能像标准的ASP对象来使用了!比如,我们经常在ASP中用Request.form()来收集提交表单的数据.现在我们在我们的VB中实现这个功能,代码如下:

用ASP中实现:

在VB中实现:

复制代码 代码如下:

MyTempVariable = MyRequest.Form("userName")

MyResponse.Write ("you entered "& MyTempVariable & "as your user name")

  通过使用MyResponse来代替Response,我们能够使用所有Response的方法,当然,MyResponse这个名字可以随便来取,你甚至可以就取Response.

另一件我们得注意的是,我们得在我们的建立的类中,写上OnEndPage子函数,这个OnStartPage是相反的!OnStartPage是创建对象,OnEndPage是消毁对象.

复制代码 代码如下:

Public Sub OnEndPage()

Set MyscriptingContext = Nothing

Set MyApplication = Nothing

Set MyRequest = Nothing

Set MyResponse = Nothing

Set MyServer = Nothing

Set MySession = Nothing

End Sub

SayHello方法

  我们来建立一个子函数,用于显示"Holle World".这个SayHello方法只是HelloWorld这个类中一个子函数,我们以后会在ASP中用以下的显示这个方法

SayHello的程序,很简单的!

复制代码 代码如下:

Public Sub SayHello()

MyResponse.Write ("Hello World")

End Sub

  现在一个小型的组件编写完成,剩下的工作就是编译这个组件,在"工程"菜单中保存它,取什么名字都可以,我们用Exmaple1.vbp吧! 然后就用在菜单中选择"make exmaple1.dll",将其编译成DLL文件.一个组件就真正完成了!

  注意,编译了此组件那么你就得先把你的PWS关掉,然后再编译此组件.否则VB就会告诉你些组件在使用中.

在ASP中使用我们的自己的组件.

  当你更正了在编译中的错误,成功地编译了example1这个工程,现在你就得拿出你最喜欢的HTML编辑器来写下下面的语句,保存为ASP文件.

运行后即可看到结果:

Hello World

注册组件

  如果你想和你的朋友,邻居分享你的组件,那么你就得在你的系统上注册你的组件.我们一般使用Regsvr32.exe来注册组件.注册后你的组件会出现在Win95/Win98的windows/system目录中.下面是一个注册的例子:

Regsvr32.exe C:/wwwroot/Example1/Example1.dll

  在你的系统中,VB会自动给你注册,所以你很少用到Regsvr32.exe

  我们这里只是写了一个非常小的组件,你们可以写好自己的更大的组件,而且还可以用VB中的很多控件.

  让我们用组件来扩展我们的程序的功能吧!也希望多多的看到我们中国人的组件.

时间: 2024-10-25 07:37:18

手写个小组件(组件入门)asp版的相关文章

手写个小组件(组件入门)asp版_应用技巧

动手写个小组件(组件入门) 这篇文章主要是为想将自己的ASP水平提高的人写的! 把ASP代码变成组件,开发者不仅是加快了ASP的速度,而且也能保护自己的代码.这篇文章写出来,也是为了给想开发组件网友上一堂入门课! 下面,我们会来编写一个非常简单的组件,重点是知道怎样开发DLL组件,而不是其复杂的代码!这些都要靠你们自己以后的努力了. 服务器端组件 首先,服务器端的组件要有别于客户端的组件.客户端的组件是通过网络传输,依靠HTML来起作用.而且只能在IE上有用.但是服务器端的组件是运行在服务器端,

使用Google Web Toolkit写的小游戏连连看0.1版

最近几天在看Google Web Toolkit,感觉还不错吧.突然想用它写个游戏玩. 我看到网上有好多javascript写的连连看,所以就自己想用gwt写一个. 花了一晚上功夫,写了个简单的,主要连接功能还没实现,目前只能把2个相 同的消掉. 让大家先睹为快. 截图如下: 在线演示地址:http://www.pinfantuan.com/

百度搜索手写怎么设置

  首先打开浏览器,进入百度首页,如图: 此时我们看到在百度搜索旁面没有手写输入的提示,我们看页面右上角"搜索设置",如图: 找到,输入法 设定在百度搜索页面的输入法 : 此时我们看到是关闭,点击下拉框,设置手写,保存设置: 返回到百度首页,在搜索框右侧会有一个手写的小箭头,如图: 点击手写,调出百度手写板,如图: 现在就可以自由的输入字了,

动手写个小组件(组件入门)(1)

动手写个小组件(组件入门) 这篇文章主要是为想将自己的ASP水平提高的人写的! 把ASP代码变成组件,开发者不仅是加快了ASP的速度,而且也能保护自己的代码.这篇文章写出来,也是为了给想开发组件网友上一堂入门课! 下面,我们会来编写一个非常简单的组件,重点是知道怎样开发DLL组件,而不是其复杂的代码!这些都要靠你们自己以后的努力了. 服务器端组件 首先,服务器端的组件要有别于客户端的组件.客户端的组件是通过网络传输,依靠HTML来起作用.而且只能在IE上有用.但是服务器端的组件是运行在服务器端,

Asp组件初级入门与精通系列之一

一直以来,想写一些组件方面的应用,这段时间终于可以写一点自己喜欢的东西. 希望大家通过这些教程学习后,可以随心所欲的写出自己的组件. 每篇文章可能没有关联,只是写一些组件编写过程中出现的问题. 欢迎大家批评指正 环境:winxp+vb6+sp6+visual interdev6.0 作为第一篇,我们先来写一个比较简单的组件 完成的功能是:输入两个数相加,返回相加的结果 打开vb6,新建Activex Dll工程.工程名修改为fCom,类名修改为fC1 点击菜单->工具->添加过程 我们在名称内

html5-求手机端图片上传组件

问题描述 求手机端图片上传组件 最近做了一个基于微信的移动端小项目,目前需要实现一个图片的上传功能,一共需要上传4张图片,目前html自带的文件域虽然可以实现,但四张图片同时提交恐怕会很慢,同时这样做图片上传也没有进度条效果,显得很单调,想在网上找一个上传组件,html5也好,不知道哪位大牛能够给我提供一个移动端兼容性最好的图片上传组件,代码最精简易懂,我后台是用PHP需要开发的,最好有一个完整的案例,我网上找了好多基本上没有看到满意的,求大神帮忙,这个问题困扰我好久了,知道的一定要给我回复,谢

代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧

最近接触了几个刚入门的iOS学习者,他们之中存在一个普遍和困惑和疑问,就是应该如何制作UI界面.iOS应用是非常重视用户体验的,可以说绝大多数的应用成功与否与交互设计以及UI是否漂亮易用有着非常大的关系.而随着iOS开发发展至今,可以说在UI制作上大家逐渐分化为了三种主要流派:使用代码手写UI及布局:使用单个xib文件组织viewController或者view:使用StoryBoard来通过单个或很少的几个(关于这点稍后会进行展开)文件构建全部UI.应该使用哪种方式来制作UI已经是iOS开发中

ASP.NET Web API具有Windows Azure AD和MS OWIN 组件的安全ASP.NET Web API

随着 Web API 角色的重要性日益增加,在可能暴露敏感数据和操作的高价值方案中确保能够信心十足地 使用 Web API 的需求也愈加迫切. 我们可以清楚地看到,整个行业都在寻找一种解决方案,以便为依赖 OAuth 2.0 标准的 REST API 提供 保护.但在实践中,关于应该在项目层面上做些什么,并没有提供详细的指导.此外,Microsoft .NET Framework 中用于保护通信的现有类和工具设计用于特定应用程序类型(基于回发的 Web UX 应用程序). 它们不适用于 Web

ASP.NET 中关于手写分页的代码

问题描述 求大神详解ASP中分页的知识,用DataList来显示,有点搞不清楚!看着蛋疼死了,特别是尾页做的想死了!! 解决方案 解决方案二:1.http://www.webdiyer.com/aspnetpagerdemo/pageddatalist/default.aspx2.http://blog.csdn.net/chinacsharper/article/details/9095387解决方案三:我用的是HTML+AJAX+.NET:分享我的经验:1:将要分页的表的所有数据总数查出来,