asp语言的特点
1.允许使用vbscript或javascript简易script语言,并可在文件中结合html;
2.无需编译,由webserver执行产生;
3.与任何activex script兼容;
4.asp原始代码不会传到客户端,客户端显示的是执行结果。
<form>表单语法:
<form name="strname" id="strid" action="" method="post/get">content</form>;
<input>类型:
<input type=text name="strname" value="strvalue" size="num" maxlength="num" [disable]>;
<input type=password name="strname" value="strvalue">;
<input type=radio name="strname" value="strvalue" [checked]>;
<input type=checkbox name="strname" value="strvalue" [checked]>;
<input type=file name="strname" size="20">
<input type=hidden name="strname" value="strvalue">
<input type="submit" name="strname" value="strvalue">
<input type="reset" name="strname" value="strvalue">
<input type="button" name="strname" value="strvalue">
<select name="strname" [multiple]><option value="strvalue" selected>text[<option>n]</select>
<textarea name="strname" rows="num" cols="num">text</textarea>
<frameset>语法:
<frameset rows/cols="num,num/*.."><frame name="strname" src="strsrc">[<frame>n [<frameset>..</frameset>]]</frameset>
<noframe><body>warning!</body></noframe> 无框架提示;
控制框架内容:<a href="strsrc" target="strframename"> 就可以了。
用javascript: document.frame.strframename.location="strsrc";
vbscript常用函数:
1.数值型函数:
abs(num): 返回绝对值
sgn(num): num>0 1; num=0 0; num<0 -1;判断数值正负
hex(num): 返回十六进制值 直接表示:&hxx 最大8位
oct(num): 返回八进制值 直接表示:&oxx 最大8位
sqr(num): 返回平方根 num>0
int(num): 取整 int(99.8)=99; int(-99.2)=100
fix(num): 取整 fix(99.8)=99; fix(-99.2)=99
round(num,n): 四舍五入取小数位 round(3.14159,3)=3.142 中点数值四舍五入为近偶取整 round(3.25,1)=3.2
log(num): 取以e为底的对数 num>0
exp(n): 取e的n次幂 通常用 num^n
sin(num): 三角函数,以弧度为值计算 (角度*pai)/180=弧度 con(num); tan(num); atn(num)
2.字符串函数:
len(str):计算字符串长度 中文字符长度也计为一!
mid(str,起始字符,[读取长度]):截取字符串中间子字符串
left(str,nlen):从左边起截取nlen长度子字符串
right(str,nlen):从右边起截取nlen长度子字符串
lcase(str):字符串转成小写
ucase(str):字符串转成大写
trim(str):去除字符串两端空格
ltrim(str):去除字符串左侧空格
rtrim(str):去除字符串右侧空格
replace(str,查找字符串,替代字符串,[起始字符,替代次数,比较方法]):替换字符串
注:默认值:起始字符 1;替代次数 不限;比较方法 区分大小写(0)
instr([起始字符,]str,查找字符串[,比较方法]):检测是否包含子字符串 可选参数需同时选 返回起始位置
instrrev(str,查找字符串[,起始字符][,比较方法]):反向检测是否包含子字符串 返回起始位置
space(n):构造n个空格的字符串
string(n,str):构造由n个str第一个字符组成的字符串
strreverse(str):反转字符串
split(str,分割字符串[,次数][,比较方法]):以分割字符串为分割标志将字符串转为字符数组 可选参数需同时选
3.数据类型转换函数:
cint(str):转换正数 true -1;false 0;日期 距离1899/12/31天数;时间 上午段 0;下午段 1;
cstr(str):日期 输出格式 yyyy/mm/dd;时间 输出格式 am/pm hh:mm:ss
clng(str):与cin()类似
cbool(num):num不为零 true;反之 false
cdate(str):转换日期格式 0:#am 12:00:00#;正数 距离1899/12/31天数的日期;浮点数 日期+小数时间
cbyte(num):num<255 转换为字节
csng(str):转换为单精度数值
cdbl(str):转换为双精度数值
ccur(str):转换为现金格式
4.时间函数:
date:取系统当前日期
time:取系统当前时间
now:取系统当前时间及日期值 datetime类型
timer:取当前时间距离零点秒值,计时器,可计算时间差
dateadd(间隔单位,间隔值,日期):推算相邻日期
datediff(间隔单位,日期一,日期二):计算时间差 日期二-日期一
datepart(间隔单位,日期):计算日期的间隔单位值
dateserial(date):输出日期值(按序列计算)
timeserial(time):输出时间值(按序列计算)
datevalue(datetime):取出字符串中日期值
timevalue(datetime):取出字符串中时间值
weekday(date):计算星期几
monthname(date):输出月分名
year(datetime):截取年份
month(datetime):截取月份
day(datetime):截取日
hour(datetime):截取小时
minute(datetime):截取分钟
second(datetime):截取秒
5.其它函数:
array(unit,..):动态生成数组
asc(str):输出字符串第一个字符的ascii码
chr(asc):转换ascii为字符 enter:chr(13)&chr(10)
filter(数组名称,关键字符串,[,包含][,比较方法]):
将字符串数组中含有关键字符串的元素存成新的数组(默认) [包含]为false则取不包含的元素
join(arrayname):将数组中元素连成字符串
ubound(arrayname[,维数]):取得数组相应维数的上界
lbound(arrayname[,维数]):取得数组相应维数的下界 一般为0
randmize n:启动随机数种子
rnd(n):取得随机数,n>0或为空,取序列下一随机值,n<0,随机值相同,n=0,生产与上一随机值相同的数
取介于a和b之间的随机正数c,公式:c=int((b-a+1)*rnd+a) 条件(b>a)
子程序和自定义函数
sub strsubname function strfunname(arg[1],..)
子程序体 函数体
exit sub 中途跳出 exit function 中途跳出
end sub strfunname=value 返回值
end function
[call] strsubname 引用子程序 var=strfunname(arg[1],..) 引用函数
子程序和自定义函数可以递归调用;
asp六大对象常用语句示范:
response:
response.write strvar/"string":向网页写出参数值或字符串 等同于在html标记中嵌入<%=strvar/"string"%>
response.end:停止页面编译,并将已经编译内容输出到浏览器
response.buffer=true|false:页面编译时是否使用缓存的设置,一般在页面头部设置
response.flush:强制输出页面已编译部分内容
response.clear:将缓冲区内的数据清除
response.redirect url:停止页面编译或输出,转载指定所需页面
response.isclientconnected:返回true|false,检测用户是否还处于连接状态
response.charset(charsetname):设置页面编码类型,即<meta http-equiv="content-type" content="text/html; charset=gb2312">
response.contenttype [= contenttype ]:设置页面文件类型,同上
response.expires [= number]:设置页面失效时间,单位分钟
response.expiresabsolute [= [date] [time]]:设置页面失效的绝对时间
response.status = statusdescription:设置页面状态描述
request:
request("passstrname"):读取网页传递值,包括表单及以?passstrname=value&passstrname_n=value_n形式
request[.collection|property|method](variable)
request.querystring("passstrname"):读取get方法传递的表单值和?passstrname=value
request.querystring(varible)[(index).count]
request.form("passstrname"):读取post方法传递的纯表单域的值
request.form(parameter)[(index).count]
request.servervaribles(server environment variable):读取客户端系统环境变量,详见参考
request.binaryread(count):读取指定字节数的传送值
request.totalbytes:查询体的长度,以字节为单位,只读
注:同名表单如:checkbox如有多项值,传递形式如右,strname=value1,value2,…需要用split函数分割各项值
multiple的select表单与checkbox类似,textarea的值可包含换行字符,用replace转为<br>,以满足格式需要
session:(用户全局变量)
session("sesname")=value:存储session变量值,也可读取该值
session("sesname")=empty:判断session值是否存在的两种方法
isempty(session("sesname"))=true|false:判断session值是否存在的两种方法
session.timeout=num:设置session变量的存在时效,单位分钟
session.abandon:清除所有session变量值
session.sessionid:session变量的id序列号,只读
application:(应用程序全局变量)
application("appname")=value:存储application变量值,也可读取该值
application("appname")=empty:判断application值是否存在的两种方法
isempty(application("appname"))=true|false:判断application值是否存在的两种方法
application.lock:application变量值锁定,防止同时更改变量值
application.unlock:application变量值解锁,允许更改变量值
注:session与application变量都可以用来存储数组和系统对象,引用方法是变量名相当于数组名而已,
但不能直接改变其值,需要借助临时数组修改值后,再赋给session与application变量
global.asa文件的结构:<% @language="vbscript"%>
<% sub application_onstart …end sub
sub application_onend … end sub
sub session_onstart …end sub
sub session_onend … end sub%>
server:
server.mappath("fileurl"):映射文件名的服务器站点绝对地址,path=server.mappath(./)可以得到虚拟目录根路径
server.htmlencode("string"):转换为可以直接显示带html格式的字符串,如:<,>等
server.urlencode( "string"):转换为浏览器地址编码
set var=server.creatobject("objname"):创建对象变量
server.scripttimeout = numseconds:asp程序页面执行时限,以秒为单位
cookies: 存储在用户本机的临时变量,每个cookie的最大字节4kb,最多可以有300个cookie 1.2mb
response.cookies("strcookiename")=value:存储cookie变量值,也可读取该值
response.cookies("strcookiename")="":判断是否为空
response.cookies("strcookiename").expires=date:变量有效期,以天为单位,小于当前时间立即失效
response.cookies(cookie[(key).attribute]):标准语法
objectcontext 控制asp的事务处理
objectcontext.ontransactionabort:由放弃的事务处理事件激发,在脚本完成处理后发生
objectcontext.ontransactioncommit:由成功的事务处理事件激发,在脚本完成处理后发生
objectcontext.setabort:显式的放弃一次事务处理
objectcontext.setcomplete:覆盖前面任何调用objectcontext.setabort方法的调用
msgbox "string"/strname:vbscript提示框
表单的onsubmit事件:在同一页面写入 function formname_onsubmit()..formname_onsubmit=true/false..end function,
页面会在提交前先执行语句,并根据返回值判断是否完成提交任务。
数据库连接字符串举例:
access2000:
conn.open "provider=microsoft.jet.oledb.4.0;data source=" & server.mappath("dbase\liuyan.mdb")
conn.open "provider=microsoft.jet.oledb.4.0;data source=" & server.mappath("dbase\liuyan.mdb")&";password=admin"
recordset.open "数据表名", conn, 2, 2
sqlserver2000:
conn.open "provider=sqloledb.1;user id=sa;password=admin;initial catalog=pubs;data source=server\garlmrm"
conn.open "provider=sqloledb;data source=hyserver;uid=sa;pwd=;database=pubs"
recordset.open strsql, conn, 2, 2
dbase:(?)
conn open "driver={microsoft dbase driver};sourcetype=db;sourcedb=" & server.mappath( "目录名" )
recordset.open strsql, conn, 2, 2
foxbase:
conn open "driver={microsoft visual foxpro driver};sourcetype=dbf;sourcedb=" & server.mappath( "目录名" )
recordset.open dbf文件名或select语句, conn, 2, 2
conn open "driver={microsoft visual foxpro driver};sourcetype=dbc;sourcedb=" & server.mappath( "dbc数据库文件名" )
recordset.open dbf文件名或select语句, conn, 2, 2
excel:
conn open "driver={microsoft excel driver (*.xls)};dbq=" & server.mappath( "xls文件名" )
recordset.open "select * from ["&sheet&"$]",conn,2,2
注:使用dbf、dbc、excel数据库,下面几点要注意:excel数据库只能读取、增加记录、修改记录,但不能删除记录;
dbf、dbc可以读取记录、增加记录、删除记录、修改记录,但是在增加记录时,任何一个字段值都不能为空,由此
可看出局限性很大,所以尽可能地用mdb或sql数据库。