ASP网页编程之第五篇 剧本变量、函数、历程和前提语句...
ASP是依赖组件的,能访问数据库的组件好多就有好多种,再有就是你微软的工具可是什么都要收钱的啊!在上一期中作者向诸位扼要先容了ASP剧本言语之一VBScript的一些基础知识,本期将持续给人人解说VBScript的剧本编写办法,并经由过程展现VBScript在ASP程序编写过程当中的一系列实例使人人对VBScript有更进一层的了解。人人在进修了剧本言语VBScript的变量、常量和历程的基础观点后,本期将持续向列位先容VBScript的函数和语法。 函数和历程一样都是定名了的代码块,但它们却有很年夜的区分,历程完成程序义务,函数则前往值。我们能够如许了解,历程象一个完全的句子,而函数则象一个单词。举个例子,当你想猎取某个数的平方根,你只需将该数传给VBScript的Sqr()函数,此函数会当即前往该数的平方根。如:
A=sqr(9)
则A=3。纯熟把握剧本言语的函数将给你编写ASP程序带来极年夜的便利,就以上一期开头处作者安排给人人的课后实习来讲,假如你对剧本言语的函数把握不敷周全,那末办理云云之小的一个成绩将很有大概消费你相称年夜的精神。如今让我们往返顾一下这道课后实习。
“作者正在用ASP制造一套基于WEB的BBS体系,但愿能在个中增加一项特别功效,即当任何用户上岸该BBS后都可以查阅近七天来一切新公布的信息。”
假如你不熟习VBScrip,就不会晓得VBScrip自己供应了一个用来获得日期之间的差或和的函数DateSerial,它的语法以下:
DateSerial(year,month,day)
假如你要指定一个日期,比方:1998年11月10日,那末DateSerial函数中每一个参数的取值局限都应当是可承受的,克日的取值应在1和31之间,月的取值应在1和12之间。可是,也能够利用暗示某日之前或以后的年、月、日数量的数值表达式为每一个参数指定绝对日期。以下样例中利用了数值表达式取代相对日期。在这里,DateSerial函数前往1998年11月10日之前二十年(1990-20)零两个月(11-2)又一天(10-1)的日期:即1978年9月9日。程序以下:
Datep=DateSerial(1998-20,11-2,10-1)
关于year参数,若取值局限是从0到99,则被注释为1900到1999年。关于此局限以外的year参数,则利用四位数字暗示年份(比方1800年)。当任何一个参数的取值超越可承受的局限时,则会得当地进位到下一个较年夜的工夫单元。比方,假如指定了35天,则这个天数将被注释成一个月加上多出来的日数,多出来的日数取决于其年份和月份。可是假如参数值超越-32,768到32,767的局限,大概由三个参数指定(不管是间接仍是经由过程表达式指定)的日期超越了能够承受的日期局限,就会产生毛病。 当我们懂得并把握了函数DateSerial的利用办法后,再来看看做者安排的这道标题,统统就水到渠成了。上面我将程序中的此部分代码发布以下: itemp=DateSerial(Year(date),month(date),day(date)-7)
itemp=DateValue(itemp)
sql="Select*frommessageWheremessage.creatimeBetween#"&date&"#And#"&itemp&"#"
在这里我们又打仗到了一组函数Year,month,day,它们是用来失掉一个日期的年、月、日。date是常数,暗示明天日期,而函数DateValue则是将字符串变量转化为日期格局的变量。在本段程序的第三行,我们第一次打仗到了尺度的SQL查询语句,这句语句是甚么意义呢?
“Select”是尺度的SQL数据库查询命令,经由过程SELECT语句我们能够在数据库中检索数据,并将查询了局供应给用户,此处的“*”暗示查询该名为“message”的数据库中的一切纪录,而“where”的感化是设定一个查询前提,是为了将数据库中切合前提的纪录掏出来,“message.creatime”是一个贮存了数据库中纪录创立日期的变量。将整句语句连起来了解就是:查询名为message的数据库中的一切纪录,并将个中创立日期在明天和明天之前七日之内的一切纪录存储在变量sql中。大概因为人人第一次打仗SQL语句,一工夫没法完整了解它的感化,不外不必忧虑在从此的章节中作者将专门用一期给人人先容SQL的利用办法。
经由过程下面的进修,人人应当已可以了解函数在程序中的感化,固然我们不用往逝世背函数,但要做到纯熟使用只要一条捷径--多理论。接上去让我们来看看VBScript的基础语法。
懂得编程言语的伴侣必定晓得在程序中把持程序流程的语句次要能够分为前提语句和轮回语句,在VBScript中可以使用以下前提语句: If...Then...Else语句
SelectCase语句
If...Then...Else语句用于盘算前提是不是为True或False,而且依据盘算了局指定要运转的语句。一般,前提是利用对照运算符对值或变量举行对照的表达式,If...Then...Else语句能够依照必要举行嵌套。
让我们来创立两个典范文件:if1.asp和if2.asp
将以下语句剪贴到记事簿中,并保留为if1.asp(注重:请将程序中“<”后的空格往失落) <html>
<head>
<TITLE>if1.asp</TITLE>
</head><bodybgcolor="#FFFFFF">
<formaction="if2.asp"method=get>
YourFirstName<INPUTNAME="FirstName"MaxLength=20><p>
YourLastName<INPUTNAME="LastName"MaxLength=20><p>
<INPUTTYPE=submit><INPUTTYPE=reset>
</form>
</body>
</html>
将以下语句剪贴到记事簿中,并保留为if2.asp <html>
<head>
<TITLE>ifrespond.asp</TITLE>
</head>
<%fname=request.querystring("Firstname")
lname=request.querystring("Lastname")
Iffname="George"andlname="Washington"then%>
Hi.Youmustbethefirstpresident!
<%else%>
Hi!NicetoMeetYou
<%endif%>
</body>
</html>
asp1.asp发生一个文本输出框,请求用户输出姓、名,以下图:
asp2.asp则是用IF语句判别用户输出的姓名是不是为“GeorgeWashington”,并做出响应的反应。在此我们碰到了一个ASP的内建工具request,经由过程利用request工具能够会见任何用HTTP哀求传送的信息,包含从HTML表格顶用POST办法或GET办法传送的参数、cookie和用户认证。而QueryString汇合检索HTTP查询字符串中变量的值,HTTP查询字符串由问号(?)后的值指定。如:
http://localhost/if2.asp?Firstname=George&Lastname=Washington
天生值为"Firstname=George&Lastname=Washington"的变量名字符串。关于ASP工具作者将在从此的几篇里重点报告。
If...Then...Else语句的一种变形同意您从多个前提当选择,即增加ElseIf子句以扩大If...Then...Else语句的功效,使您能够把持基于多种大概的程序流程。
我们将asp2.asp的程序部分扩大以下: <%
fname=lcase(request.querystring("Firstname"))
lname=lcase(request.querystring("Lastname"))
Iffname="george"andlname="washington"then%>
Hi.Youmustbethefirstpresident!<p>
<%elseIffname="ronald"andlname="reagan"then%>
Hi.Youmustbetheactorpresident!<p>
<%elseIffname="jimmy"andlname="carter"then%>
Hi.Youmustbethepeanutfarmerpresident!<p>
<%elseIffname="naoko"orfname="charles"then%>
Hi.Yournameremindsmeofsomeone,butIamnotsurewho!<p>
<%else%>
Hi!NicetoMeetYou
<%endif%>
能够增加恣意多个ElseIf子句以供应多种选择。但利用多个ElseIf子句常常会使程序变得很包袱。在多个前提中举行选择的更好办法是利用SelectCase语句。
SelectCase布局供应了If...Then...ElseIf布局的一个变通情势,能够从多个语句块当选择实行个中的一个。SelectCase语句供应的功效与If...Then...Else语句相似,可是可使代码加倍简洁易读。SelectCase布局在其入手下手处利用一个只盘算一次的复杂测试表达式。表达式的了局将与布局中每一个Case的值对照。假如婚配,则实行与该Case联系关系的语句块,我们一样能够用SelectCase语句来写asp2.asp文件:
<%
fname=lcase(request.querystring("Firstname"))
lname=lcase(request.querystring("Lastname"))
name=fname+lname
Selectcasename
case"georgewashington"
response.write"Hi.Youmustbethefirstpresident!<p>"
case"ronaldreagan"
response.write"Hi.Youmustbetheactorpresident!<p>"
case"jimmycarter"
response.write"Hi.Youmustbethepeanutfarmerpresident!<p>"
case"naokocharles"
response.write"Hi.Yournameremindsmeofsomeone,butIamnotsurewho!<p>"
caseelse
response.write"Hi!NicetoMeetYou"
EndSelect%>
请注重SelectCase布局只盘算入手下手处的一个表达式,而且只盘算一次,而If...Then...ElseIf布局盘算每一个ElseIf语句的表达式,这些表达式能够各不不异。因而仅当每一个ElseIf语句盘算的表达式都不异时,才可使用SelectCase布局取代If...Then...ElseIf布局。SelectCase语句也是能够是嵌套的,每层嵌套的SelectCase语句必需有与之婚配的EndSelect语句。
以上给人人先容的剧本言语VBScript的函数和前提语句的利用办法,因为篇幅的原因不克不及具体睁开,但愿列位有志进修ASP的伴侣,能在课落后行必定水平的自学和实习。在一样平常开辟ASP使用程序的过程当中作者自己日渐体味到了剧本言语的主要性,天真使用剧本言语将不但能够年夜年夜进步ASP使用程序的开辟历程,给宽大网站制造职员节俭大批的工夫,并且还可以加强ASP使用程序的实行率和功效。欲善其事必先利其器,因而作者在此激烈倡议诸君,纯熟把握剧本言语,这将对你的ASP程序开辟年夜有匡助。因为本文不是VBScript教程,因而只能用较小的篇幅给人人扼要先容一些VBScript基础知识,鄙人一期先容完VBScript的轮回语句后,我们将正式入手下手进修ASP的内建工具,要深切VBScript,倡议人人找些课本举行自学。http://www.ckuyun.com/
ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于WindowsNT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失; 先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习 最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。 它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。 哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的? 掌握asp的特性而且一定要知道为什么。 不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍 你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
页:
[1]