`
happmaoo
  • 浏览: 4349024 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

在ASP中使用类(Class)

阅读更多
1在ASP中使用类(class)
2在不入前的一天,当我为了解决一个语法问题来翻阅VBscript文档时,偶然间发现在了下面的一句话:
3
4ClassStatement
5
6Declaresthenameofaclass,aswellasadefinitionofthevariables,properties,andmethodsthatcomprisetheclass.
7
8翻译过来就是
9
10Class声明
11
12声明一个类的名字,就是定义一些变量,属性,方法来组成一个类
13
14这是真的!!!?VBScript中能用类!?!?不知道能不能用于ASP!?这样的话,我就不是能写出像object一样的ASP程序?!说干就干!实践是检验真理的唯一标准,自个动手吧!
15
16我们常常看到别的程序语言中中都有类的说明,PHP,VB,C++,这个在VBScript中的类的说明,我是第一次听到,我们的日常工作就是网站开发,在这个里面多多少少搞出点经验,像模像样也能自诩为"内行",所以我就来分享一下我所知道的这个新的东东。我们来看看下面的这个代码吧!(window2000+IIS5.0通过测试)
17
18<%
19''声明一个名为aspcn的类
20Classaspcn
21Privateaspcn
22''初始化类
23PrivateSubClass_Initialize
24aspcn="AspcnIsGood!<br>"
25EndSub
26''定义一个函数
27PublicFunctionDoIt()
28DoIt=aspcn
29EndFunction
30''定义一个方法
31PublicSubQueryStr(stat)
32Response.writestat
33EndSub
34
35EndClass
36
37SetHi_aspcn=Newaspcn''定义一个名为Hi_aspcn的aspcn对象实例
38response.writeHi_aspcn.DoIt
39varstr="AspcnIsCool!<br><fontcolor=red>http://www.aspcn.com</font><br>WelCome!!!"
40Hi_aspcn.QueryStrvarstr
41
42%>
43
44
45这是很简单的一个程序,我们在其中声明了一个名为aspcn的类,建立了一个DoIt函数,一个QueryStr方法,这个程序很简单相信大家能看懂,它的显示如下:
46
47AspcnIsGood!
48AspcnIsCool!
49http://www.aspcn.com/
50WelCome!!!
51
52以后,咱们就可以把我们常用到的程序写成一个类,到时候就用<--#includefile="xxx.asp"-->来包含进来就行了,这给我们开发程序又提供了新的空间,真是爽啊!和C++一样了,有点回归自然的感觉.
53
54
55VBSctipt5.0中的新特性
56
57能够在ASP中应用的特性包括了那些由脚本引擎所提供的特性,这意味着VBScript的改进也可在ASP中应用。VBScript的改进如下所述:
58
591、在脚本中使用类
60在VBScript中实现完整的VB类(class)模型,但明显的例外是在ASP服务器端的脚本事件。可以在脚本中创建类,使它们的属性和方法能够和用于页面的其余代码,例如:
61ClassMyClass
62
63Privatem_HalfValue‘LocalvariabletoholdvalueofHalfValue
64
65PublicPropertyLetHalfValue(vData)‘executedtosettheHalfValueproperty
66IfvData>0Thenm_HalfValue=vData
67EndProperty
68
69PublicPropertyGetHalfValue()‘executedtoreturntheHalfValueproperty
70HalfValue=m_HalfValue
71EndProperty
72
73PublicFunctionGetResult()‘implementstheGetResultmethod
74GetResult=m_HalfVaue*2
75EndFunction
76EndClass
77
78SetObjThis=NewMyClass
79
80ObjThis.HalfValue=21
81
82Response.Write“ValueofHalfValuepropertyis&objThis.HalfValue&<BR>
83Response.Write“ResultofGetResultmethodis&objThis.GetResult&<BR>
84
85这段代码产生如下结果:
86ValueofHalfValuepropertyis21
87ResultofGetResultmethodis42
88
892、With结构
90VBScript5.0支持With结构,使访问一个对象的几个属性或方法的代码更加紧凑:
91
92SetobjThis=Server.CreateObject(“This.object”)
93
94WithobjThis
95.Property1=“Thisvalue”
96.Property2=“Anothervalue”
97TheResult=.SomeMethod
98EndWith
99
100
1013、字符串求值
102Eval函数(过去只在JavaScript和Jscript中可用)目前在VBScript5.0中已经得到了支持。允许创建包含脚本代码的字符串,值可为True或False,并在执行后可得到一个结果:
103
104datYourBirthday=Request.Form(“Birthday”)
105strScript=“datYourBirthday=Date()”
106
107IfEval(strScript)Then
108Response.write“HappyBrithday!”
109Else
110Response.write“Haveaniceday!”
111EndIf
112
113
1144、语句执行
115新的Execute函数允许执行一个字符串中的脚本代码,执行方式与Eval函数相同,但是不返回结果。它可以用来动态创建代码中稍后执行的过程,例如:
116
117strCheckBirthday=SubCheckBirthday(datYourBirthday)”&vbCrlf_
118&IfEval(datYourBirthday=Date())Then&vbCrlf_
119&“Response.Write“”HappyBirthday!”””&vbCrlf_
120&Else&vbCrlf_
121&”Response.write“”Haveaniceday!”””&vbCrlf_
122&EndIf&vbCrlf_
123&EndSub&vbCrlf
124ExecutestrCheckBirthday
125CheckBirthday(Date())
126
127一个回车返回(如程序中示)或冒号字符“:”可用来分隔一个字符串中的各条语句。
128
1295、设置地区
130新的SetLocale方法可以用来改变脚本引擎的当前地区,可正确显示特殊的地区特定字符,如带重音符的字符或来自不同字符集的字符。
131StrCurrentLocale=GetLocale
132SetLocale(“en-gb”)
133
1346、正则表达式
135VBScript5.0现在支持正则表达式(过去只在JavaScript、Jscript和其他语言中可用)。RegExp对象常用来创建和执行正则表达式,例如:
136StrTarget=“testtestingtestedattestlatestart”
137SetobjRegExp=NewRegExp‘createaregularexpression
138
139ObjRegExp.Pattern=“test*”‘setthesearchpattern
140ObjRegExp.IgnoreCase=Falsesetthecasesensitivity
141ObjRegExp.Global=Truesetthescope
142
143SetcolMatches=objRegExp.Execute(strTarget)‘executethesearch
144
145ForEachMatchincolMatches‘iteratethecolMatchescollection
146Response.Write“Matchfoundatposition”&Match.FirstIndex&“.”
147Resposne.Write“Matchedvalueis‘”&Match.Value&“’.<BR>
148Next
149执行结果如下:
150Matchfoundatposition0.Matchedvalueis‘test’.
151Matchfoundatposition5.Matchedvalueis‘test’.
152Matchfoundatposition13.Matchedvalueis‘test’;
153Matchfoundatposition22.Matchedvalueis‘test’.
154
1557、在客户端VBScript中设置事件处理程序
156这不是直接应用于ASP的脚本技术,这个新的特性在编写客户端的VBScript时是很有用的。现在可以动态指定一个函数或子程序与一个事件相关联。例如,假设一个函数的名称为MyFunction(),可把这指定给按钮的OnClick事件:
157FunctionMyFunction()
158
159Functionimplementationcodehere
160
161EndFunction
162
163SetobjCimButton=document.all(“cmdButton”)
164SetobjCmdButton.OnClick=GetRef(“Myfunction”)
165这提供了JavaScript和Jscript中的类似功能,函数可以被动态地指定为一个对象的属性。
166
1678、VBScript中的OnErrorGoto0
168尽管这个技术早先没有被文档记载,但在现有的VBScript版本中能够使用(有着VB背景并且有好奇心的人可能早已发现这个秘密)。它现在已被记录在文档中,并且在执行OnErrorResumeNext后能够用来“关闭”页面中的定制错误处理。结果是任何后来的错误将引发一个浏览器级或服务器级的错误及相应的对话框/响应。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics