社区
ASP
帖子详情
请问WEBCLASS是什么东西!
Muzhu
2003-02-26 04:08:28
如题。
...全文
353
5
打赏
收藏
请问WEBCLASS是什么东西!
如题。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
老猿能饭
2003-02-28
打赏
举报
回复
不错,不错,豁然开朗
Muzhu
2003-02-28
打赏
举报
回复
谢谢!
多谢!
yelook
2003-02-27
打赏
举报
回复
WebClass实现动态WEB编程之理论篇
(作者:苏红超 2001年01月10日 15:50)
在前一段时间,我曾经在“用VB ActiveX DLL实现ASP编程”一文中详细探讨过如何使用ActiveX DLL技术替代简单的纯ASP来实现核心代码和商业逻辑的封装。适当的利用ActiveX DLL技术在构建动态WEB站点的时候的确能够带来很多的好处,这是显而易见的,但是仍然需要一个单独的ASP文件来创建和销毁我们所编写的ActiveX DLL组件,在ASP中大量使用ActiveX DLL是不现实的,并且我们的ASP编程仍然不可以像往常的应用程序那样进行编写,因为凌乱的ASP代码和HTML代码交织在一起,并且,无论是单纯的ASP程序还是封装了ActiveX DLL的ASP程序,一个最大的弊端就是在项目开发过程中的调试困难,比如很难设置断点并随时暂停程序来察看某些变量的值。那有没有两全其美的方法呢,既保证开发WEB程序的高效率,又可以向平常的应用程序那样可以方便的调试和编写呢?答案当然是肯定的,微软公司在VB6版本之后就引入了“WebClass”的概念,并且在新建项目中增添了名叫“IIS应用程序”的项目类型。WebClass正是微软公司提出的用来使得程序员可以像开发普通应用程序那样来开发WEB程序的解决方案!
说起“IIS应用程序”,大家会认为这和ASP程序有何区别呢?ASP不就是运行在IIS上面的WEB应用程序吗?其实这是微软命名上面的一点小错误,使得大家在名称上面比较容易混淆。我们现在应该清楚,“IIS应用程序”就是采用WebClass技术用来实现和ASP同样功能的应用程序,它避免了ASP的种种缺点,比如源代码是透明的、解释执行带来的速度慢。其实WebClass应用程序也是一种VB组件,使用他完成的WEB应用程序将会是编译之后的,其运行速度有很大提高,同时也避免了源代码和核心技术及商业机密被泄漏。
WebClass 在实质上是一个VB组件,确切一点说来讲WebClass是一个ActiveX DLL。他使得你可以编写服务器端代码以响应来自用户的浏览器请求。对用户来说,一个 IIS 应用程序好象是由一系列的HTML页面组成;对开发者来说,一个 IIS 应用程序是由一些被称为 webclass 的特殊类型对象组成。WebClass可以直接访问所有的ASP内置对象(request、response、application、session、server)。任何使用ASP开发的WEB项目都可以在WebClass中实现。由于在WebClass中引入了HTML模版的概念,从而有效的避免了ASP中的程序代码和HTML代码相互交织带来的缺陷,很好的实现了商业逻辑层和最终表现层的分离(有些类似当前XML和XSL的形式),极大的提高了WEB项目的开发效率。
IIS 应用程序在表面上和 Active Server Pages 应用程序相似。这两种应用程序都显示动态的 Web 站点,并且都是在服务器上而不是在客户端上执行它们的处理。但是,每一种都有自己独特的优点:
(1)Active Server Pages 适合于对制作 Web 页面感兴趣的脚本开发者,它提供了将脚本和 HTML 混合起来的独特能力。
(2)IIS 应用程序适合于构造基于 Web 应用程序而不是 Web 页面的 Visual Basic 开发者。IIS 应用程序允许复杂的事务处理,并且几乎任何的浏览器或平台都可以很容易地访问它。
使用IIS应用程序来开发WEB项目可以有如下优点:
(1)熟悉的开发环境和模型。可以利用 Visual Basic向工程添加类(Class)、模块(Model)或任何 Visual Basic ActiveX 部件,因而易于调试和编写。
(2)使用的广泛性。可以被大多数的浏览器支持。
(3)可重复使用的部件。类似于面向对象编程;各个对象之间可互相访问。
(4)代码和 HTML 相分离:和编写ASP 应用程序不同,Server 端处理程序和Client端程序分离,便于维护和修改。
(5)可自定义处理事件,因而编写方法灵活
接下来我们来看看WebClass的具体组成部分是什么:
Webclass 由html模板和自定义 Webitem 组成。( html模板和自定义 Webitem统称Webitem)当然不是必须包含模板和自定义的Webitem。
(1)一个 HTML 模板文件是与 webclass 相关联的HTML页面。当 webclass 收到一个请求时,它可以向浏览器发送用于显示的HTML页面。模板和常规HTML页面的不同仅在于向浏览器发送页面之前,它常常包含 webclass 可以处理的替换区域(通常是用"WC@"标签定义的范围)。这样就允许自定义自己的响应。
(2)一个自定义的 webitem 是由一个或多个事件处理程序组成的程序资源。在页面加载或用户选择一个 HTML 元素时,这些事件处理程序被浏览器调用。这些事件处理程序可以对浏览器产生一个响应或将处理传递到另一个 webclass 的 webitem。
一个完整的WebClass应用程序的大致流向如下所示:
A.指定某一个WebClass(比如Test1)作为首先启动的项目
B.激活这个WebClass(Test1)的WebClass_Start事件
C.在Test1的WebClass_Start事件中调用某一个HTML模板的WriteTemplate方法,比如Check. WriteTemplate这里的Check就是一个属于Test1这个WebClass的一个HTML模板
D.在你的这个Check模板中如果有<FORM>存在,那就会触发这个<FORM>的ACTION属性,比如<form action=xxx.asp?WCI=ddd>,那么就会调用属于名为'xxx'的这个WebClass的'ddd'项目(Item);当然这个'xxx'可以是你刚才操作的WebClass本身,即"Test1",同样,这个"ddd"可以是一个HTML模板或者一个WebItem。
E.触发属于"xxx"这个WebClass的项目"ddd"将会激活"ddd"本身的ddd_Respond()事件,你就可以在这里进行一些处理了,比如检索数据库资料;然后可以再调用其它HTML模板的WriteTemplate方法,比如就调用本身的ddd.WriteTemplate方法
F.然后将会调用ddd的ProcessTag事件,进行卷标的处理过程,当然你的这个叫ddd的HTML模板中就要有相应的WC@卷标了。
我们再来看看Webclass中的事件响应。
1. .Webclass中预定义的事件有3个 : response , processtag , userevent
.response 事件响应用户端请求。
.processtag 事件是作为 WriteTemplate 方法处理的一部分自动发生的。不能单独被触发或用来处理响应。
.userevent 事件: 一个 UserEvent 过程处理 webitem 的所有用户事件。UserEvent 事件是由URLFor 方法在运行时产生的。所以只有使用了URLFor 方法动态产生的超链接才会触发UserEvent 事件。
2. Webclass_start() 事件类似于VB中的Sub Main()。
所以可以指定一个project 开始的webclass。也可在model 模块中用Sub Main() 来启动。
3. 发送html 到浏览器: 将页面反馈回浏览器有两种方法。
A.对html模板使用 "writetemplate" 方法。此方法激活"ProcessTag"事件,从而对模板中相应的内容(用WC@符号标记的部分) 进行替换。
B.在Customwebitem 事件中动态生成反馈页面。
如: with response
.write "<html">
.write"<head>"
.write"</head>"
.write"<body>"
.write"<p>Hello! Universe!</p>"
.write"</body></html>"
end with
4. 从HTML 的<form>中获取信息:
使用Request 对象在一个 HTML <form>中获取用户输入的信息。但必须将 <form action...> 标记属性和webclass中的一个事件连接,提交一个form 就可以激发 webclass 中的这个事件。因此,就可以使用这个事件搜集和操作信息。
5. 动态替换html 模板文件中的内容:使用3中的writetemplate 方法。
6. 自定义webitem 事件。
两种方法和自定义webitem 事件关联起来:
A.用action=webclass.asp?wci=webitem&wce='自定义事件'的方法。
B.用URLFor (Webitem,自定义事件)方法。
7. 其他使用方法(如: Cookie,Session对象等) 和 ASP 应用程序中相同。
WebClass中在传回给用户的HTML中可以使用两种方法建立超级链接,很容易造成混淆,这里我就详细讲解一下这两种方法:
方法一.
一种是直接使用类似于这样的格式<A Href="xxx.asp?WCI=sss&WCE=ddd">,这样当用户点击这个超级连接的时候,就会传跳到xxx这个WebClass的sss项目的sss_UserEvent事件当中来,你就可以在这个事件中进行一些处理,而且这种生成超级连接的方法可以在自己的后面带许多的自定义的参数,比如<A href="xxx.asp?WCI=sss&WCE=ddd&Test=www&Me=rrr...">其中的Test,Me都是我们自定义的参数,可以在转跳之后页面中使用Request("Test")方法取出其中的值,这样就提供了一种在页面之间传递值的解决方法;
如果你没有指定WCE参数,比如<A href="xxx.asp?WCI=sss">那么将会转跳到xxx这个WebClass的sss项目(Item)的sss_Respond事件,而不是他的sss_UserEvent事件中!
方法二.
第二种方法是使用URLFor方法,URLFor(WebItem_Name,UserEvent_Value)。比如,<a href=""" & URLFor(Check, CStr(recCheck("QTFTBN"))) & """>" 注意,在这里要使用两个双引号代替一个双引号。
这样,就会转跳到本页(就是本身的WebClass)中的Check项目(Item)中的Check_UserEvent事件中去。URLFor方法只会触发UserEvent事件,而不会触发Respond事件!在Check_UserEvent事件中你可以使用这个事件的EventName参数获取上面传来的' CStr(recCheck("QTFTBN"))'这个值。
Muzhu
2003-02-27
打赏
举报
回复
up
Muzhu
2003-02-26
打赏
举报
回复
Up
Web
Class
实现动态
WEB
编程之实践篇
Web
Class
实现动态
WEB
编程之实践篇(作者:苏红超 2001年01月10日 15:50) 说了这么多的有关
Web
Class
理论方面的
东西
,想必大家也一定想要亲自试一试究竟
Web
Class
是怎么样一回事情了,那我们就先来看一个小的例子,也慢慢消化一下我们上面讲解到的各种理论知识: 启动VB6集成环境之后,新建一个“IIS应用程序”的项目。这样缺省的情况下就会创建一个名称是Pr
Web
Class
实现动态
WEB
编程之实践篇 (转)
Web
Class
实现动态
WEB
编程之实践篇 (转)[@more@]
web
Class
实现动态
WEB
编程之实践篇(作者:苏红超 2001年01月10日 15:50) 说了这么多的有关
Web
Class
理论方面的
东西
,想必大家也一定想...
对类前置声明和包含头文件的一点理解
转自对类前置声明和包含头文件的一点理解 类的前置声明(forward declaration)和包含头文件(#include)的区别常常会迷惑我们,特别是涉及两个类相互包含的时候。因此我们有必要搞清楚二者的区别以及二者的适用场合。 首先我们需要问一个问题是:为什么两个类不能互相包含头文件?所谓互相包含头文件,我举一个例子:我实现了两个类:图层类CLayer和符号类CS...
web
设计与开发常见错误
原文:http://www.456bereastreet.com/lab/
web
_development_mistakes/ 翻译:JunChen 本文是一份
web
设计与开发常见错误的汇总,总结了我的
web
设计与开发错误和
web
设计与开发错误,续两篇文章。 本文包含了常见的设计开发错误以及我的一些解释,我也尝试着提供一些避免错误的方法,在某些问题上我也会给出错误信息的链接。 混淆文...
java
web
java
web
狂神超厉害!!! 狂神说Java 1、 Serlvet 1.1、 servlet 简介 servlet 就是sun公司开发动态
web
的一门技术 sun在这些API中提供了一个接口叫做: Servlet 开发一个servlet程序 只需要: 编写一个类 实现接口 把开发好的java类 部署到
web
服务器 把实现servlet接口的java程序 叫做 servlet 1.2、 HelloServlet servlet接口在sun公司有两个默认的实现类 构建一个maven,删掉里边的
ASP
28,409
社区成员
356,967
社区内容
发帖
与我相关
我的任务
ASP
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
复制链接
扫一扫
分享
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章