Chinaunix
标题: asp总结 [打印本页]
作者: 断桥残美 时间: 2011-12-21 08:41
标题: asp总结
asp总结
asp三部分:www工作原理 asp开发 asp 语言(asp文件)
www工作原理
包括: 概念,静态网页工作原理,动态网页工作原理
概念:
服务器客户端:一般来说凡是提供服务的一方称为服务器,而接受服务的那端成为客户端
b/s:客户端浏览器模式和服务器
动态页面:能和用户实现交互的页面
静态页面工作原理:
包括 概念 和原理
概念:静态网页:不能和用户实现交互的页面
原理:客户端发出请求---服务器接受请求---找到静态页面---发送静态网页---客户端接受
动静态页面工作原理:
包括 概念 和原理
概念:动态网页:能和用户实现交互的页面
原理:客户端发出请求---服务器接受请求---找到动态页面---执行程序代码产生静态页面---发送静态网页
---客户端接受
asp开发
包括: iis环境 开发工具 建立应用程序
iis 环境
特性:c:\inetpub\wwwroot是 iis默认的主目录
开发工具:
包括专业的和非专业的
专业的: micorsoft visual interdev
非专业的: editplus
建立应用程序:
包括 概念和步骤
概念:应用程序:简单的说 是指添加了虚拟目录的网站,就成为应用程序
步骤:
建立文件夹
添加虚拟目录:
作用:访问时候的路径不同,使两个网站独立(公共变量等不会混淆)
方法:默认网站--新建---虚拟目录
设置默认文档:
作用:一个网站的首页
方法:添加的虚拟目录---右键属性---文档
创建asp文件放在文件夹中,但是路径是创建虚拟目录名字
asp语言(asp文件)
包括:组成 , 注意事项,vbs
组成:asp=脚本代码+css+html+asp服务端程序+asp客户端程序
注意事项:1,不区分大小写,英文标点
2 一条语句就是一行,一行写两条用分号,一行可以直接写让工具换行
3 放在<%%>之内
asp使用简单,就是因为内置了很多强大的对象和组件,代码只有字符,关键字,数字
一般五大对象:request,response,session,application,server
内置组件:database access component 数据库存取组件
文件存取组件 file access component
广告轮显组件
浏览器兼容组件
文件超连接组件
计数器组件
request对象
作用:从客户端获取信息
格式:request.集合() 依靠集合实现对象的功能
集合:querystring form cookies servervariables clientcertificate
querystring 问号传值
格式: <p> <a href="4-7.asp?strname=拜拜&inta=22">显示</a></p>
4-7.asp
dim a,b
a=request.querystring("strname") 获取传过来的值
b=request.querystring("inta")
response.write"你的姓名是:" & a &",年龄是:" & b
显示效果是:你的姓名是拜拜,年龄是22
当表单的传值方式是:get时候,用次集合传递信息
form
作用:在表单传值方式是 post时候,用来获得表单信息
格式:
变量=request.form("表单的name值")
servervariables
作用:获取环境变量信息
内容:remote_addr 客户端ip地址
all_http 客户端发出的http请求信息中的所有头条信息
url url的基本信息
server_port 服务器端的端口号
。。。。。。。。
。。。。。。。
格式:
<%dim a
a=request.servervariables("remote_addr")
response.write"来访的ip是" & a%>
clientcertificate
作用:前提是 支持ssl协议,服务器要求客户进行身份验证,则利用次集合可以获得客户端浏览器的身份验证信息
属性:
totalbytes作用:用来获得客户端发出的请求的字节数(正文信息)
格式:
变量=request.totalbytes
方法:binaryread
作用:用二进制的方法读取客户端用post方法提交的数据
格式:request.binaryread(字节数)
字节数=0到request.totalbytes
response
作用:向客户端输出信息
集合:cookies
属性:
格式:response.属性
内容:
buffer 作用:输出信息是否使用缓冲区 默认是true,所谓缓冲区就是在服务器内存中的一块内存区域,true时候,一个处理结果会暂时放到缓冲区,等全部处理完后,再输出,否则处理一条输出一条
status 作用:表示服务器页面处理是否成功或者错误的状态信息 (默认)
等等
方法:
格式:response.方法
内容:
write 作用:向客户端输出信息
格式:response.write "你来访的日期是" & date() "岁"
redirect 作用: 引导客户端进入另一个页面
格式:response.redirect " 网址" 或者 变量
end 停止处理脚本程序
clear 清除缓冲区中所有页面内容 (前提是buffer属性是true)
flush 立刻输出缓冲区内容
binarywrite 以二进制信息输出
addheader 添加http文档头条信息 response.addheader "refresh","10" 每隔10秒自动刷新
appendtolog 在服务器的日志中添加日志
cookies集合
作用: 记录用户访问的次数,放在客户端
每个网站都有自己的cookies,但是每个网站只能访问自己的cookies
临时性cookies和永久性cookies
格式:
设置cookies
设置不含关键字的单值cookies response.cookies("strname")="高航"
设置含关键字的多值cookies response.cookies("struser")("name") ="贾涛峰 " response.cookies("struser")("age")="13"
设置有效期: response.cookies("strname").expires=#2012-6-6#
response.cookies("struser").expires=#2012-6-6#
多值的只能设置一组的有效期不能单独设置
读取cookies
单值cookies
a=request.cookies("strname")
多值cookies
b=request.cookies("struser")("name")
c= request.cookies("struser")("age")
判断cookies是否含有关键字
d=request.cookies("strname").haskeys 返回false
对于定义的cookies,无论是数字还是什么,都返回字符型
session 作用:访问一个网站,在asp中会打开一个会话,当会话建立的时候,服务器端自动分配一个session对象,访问结束的时候,服务器端会清除session信息,session的作用是在服务器保留客户的信息,即全局变量。由于web的会话方式是无状态的,所以服务器依靠cookies,在刚开始访问的时候,产生记录id,当再次访问其他网页时候,产生的http消息里面包含这个记录id。默认session的有效期是20分钟,解决用户名和密码隔页问题。
属性:
timeout 作用:定义session的有效期
格式:session.timeout=30 30分钟
codepage 作用:定义页面语言显示 1252 英语 936 中文
格式:session.codepage=1252
Lcid 作用:定义页面的地区标识符,它决定页面的日期和货币的等显示格式
格式:session.lcid=2052
中国是2052 美国是 1033
方法
abandon 作用:清除当前的session对象,执行后session中保存的信息消失
格式:session.abandon
事件
session_onstart 当开始一个会话时候,触发
session_onend 当结束一个绘画的时候,触发
集合
contents
作用:储存信息但是不常用,常用的是读取session中的集合数目
储存信息格式
session.contents("a")="aaaaaa" 索引是1
session.contents("b")="bbbbbb" 索引是2
读取
a=session.contents("a")
a=session.contents(1)
属性:
count 作用:返回session对象的变量数目
格式:session.contens.count
remove 作用 :删除指定名称的session对象
格式:session.contens.remove("a")
session.contens.remove(2) 索引是2的session变量
removeall 清除集合中全部的session变量
格式:session.contents.removeall
利用session储存信息(全局变量)(用户名)
格式
单个信息
储存:
session("a")="你好"
session("b")="2"
session("c")=bianliang
读取:
d=session("a")
e=session("b")
数组信息
储存:
dim a(1) 数组变量
a(0)="你好"
a(1)="我好"
session("b")=a 将数组付给变量b b由服务器自动改变
读取
dim c 普通变量,其类型由session类型决定
c=session("b")
response.write c(0)
response.write c(1)
注意:session储存和读取数组是作为整体的
application
作用:解决用户共享信息问题比如:网站访问总次数,聊天室的发言内容,是让所有用户共同使用的对象,对应于服务器内存中的一块区域
集合:
contents
作用:获取脚本添加到application集合中的变量
格式:bianliang=application.contents("yao huo qu de bianliangming")
属性:count
作用:获取集合中变量的总数目
格式:application.contents.count
利用application储存信息:
格式:application.lock
application("bianliang")="你好啊 哈哈"
application("haha")=bianliang
application.unlock
读取application中的信息
格式:bianliang=application("要读取的变量名字")
global.asa文件
作用:一个应用程序只能有一个该文件,必须放在根目录,用来存放session和application对象的事件程序
格式:
<script language="vbs" runat="server">
sub application_onstart
当应用程序启动后(比如点击启动ie),仅仅是第一用户触发该事件,并且执行其中语句
end sub
sub application_onend
当应用程序结束后,触发该事件
end sub
sub session_onstart
当第一个会话建立的时候(比如浏览一个网站的时候),触发该事件
end sub
sub session_onend
当一个会话结束的时候触发
end sub
</script>
server对象
作用:通过调用组件实现:文件上传,数据库操作,图片处理,在线生成excel等特殊功能,组件有asp内部组件和其他外部组件
属性:
scripttimeout:规定脚本执行的最长时间
格式:server.scripttimeout=30 秒
方法:
creatobject: 用来创建注册到服务器里面的activex控件
格式:set bianliang=server.creatobject("adodb.connection") 创建了数据库实例
htmlencode : 将字符串转化成html编码格式
格式:bianliang=server.htmlencode("aaaa")
urlencode: 将字符串转化成url编码格式
格式:bianliang= server.htmlencode("aaaa")
mappath:将虚拟路径转化成物理路径
格式:bianliang=server.mappath("相对路径")
execute:转到新的网页执行,执行完后返回原网页,继续执行后面的语句
格式:server.execute "要执行的路径"
transfer :转到新的网页执行,执行完后不返回原来的网页,而是停止执行
格式:sever.transfer "要转化的路径"
专题:数据库管理(增删改查)
基本sql语句
查询:
select [top 数值] 字段列表 from 表 [where 条件] [order by 字段] [group by 字段]
top 表示选取记录条数
字段列表:表示要查询的字段,可以是一个或者几个中间用逗号隔开,*表示查询全部字段
表:是要查询的数据表,多个表中间用逗号隔开
where 表示查询时候要满足的条件
order 表示按字段排序
group by 按字段分组
格式:
简单查询 select * from tbaddress where bianliang<#2008-1-1#
select a,(b+10) as c from tbaddress
c是新变量,新字段,可以直接在程序中调用
select top 10 * from tbaddress
条件查询 select * from tbaddress where a like "%勇%"
%在vbscipt表示任意字符,直接在数据库里面查询用*
排序查询 select * from tbaddress order by a asc()
效果:按a字段的升序排列
汇总查询 select count(*) as total from tbaddress
效果:查询数据表中的记录总数
select avg(intage) as b from tbaddress
效果:查询所有人的平均年龄
select sum(intage) as b from tbaddress
效果:查询所有人的年龄之和
select max(intage) as b from tbaddress
效果:查询年龄最大的人的年龄
select min(intage) as b from tbaddress
效果:查询年龄最小的人的年龄
组合查询 select biao1.ziduan1,biao2.ziduan2,biao3.ziduan3 from biao1,biao2,biao3 where biao3.ziduan4=biao2.ziduan5
其他查询:
select distinct * from biao
效果:去除表中重复的记录
还可以使用as关键字指定别名
增加
insert into 表(字段1,字段2,。。)values(要添加的字段1的值,要添加的字段2的值,。。。。。。)
格式:
insert into biao1(ziduan1,ziduan2) values("aaa",21)
删除
delete from 表 [where 条件] 省略where会删除所有
格式:delete from biao1 where id=1
效果:删除id=1的用户
更新
update 数据表名 set 字段1=字段值1,字段2=字段值2,。。。[where 条件] 省略将要更新所有记录
格式:update biao1 set bianliang="1111" where id=2
效果:当id=2的时候,更新表1中变量的值
update biao1 set bianliang=bianliang+1
将表1中的变量字段都加1 注意:在sql用到常数,直接写,字符串两边加引号,日期时间两边加#号,所有标点在英文状态下输入,和vbscript一样
asp存取数据库
内置存储数据组件
数据库存储组件(database access component)
文件存取组件(file acess component)
广告轮显组件(ad rotator component)
浏览器兼容组件(broweser capabilitiles component)
文件超链接组件(content linking component)
计数器组件(page counter)
利用数据库存储组件存取数据库(内部组件)
作用:该组件是使用ado技术存取符合odbc的标准数据库或者是表格,ado有三个对象connection,command,recordset
步骤
1,建立数据库
2, (1)用connection 主作用:建立数据库连接
方法:
open:
作用:建立和数据库连接
格式:bianliang.open"表名称"
close
作用:关闭和数据库连接
格式:bianliang.close
set bianliang=nothing 从内存中彻底清除
execute
作用:执行数据库查询等操作
格式: set rs=bianliang.execute("sql 语句"),付给rs
begintrans
作用:开始事务处理
格式:bianliang.begintrans
committrans
作用:提交事务处理结果
格式:bianliang.committrans
rollbacktrans
作用:取消事务处理
格式:bianliang.rollbacktrans
属性:
connectiontimeout
作用:设置或者返回open最长的执行时间,默认是15秒,0为无限制
格式:bianliang.connectiontimeout=30
bianliang2=bianliang.connectiontimeout
commandtimeout
作用;设置或者返回execute方法最长执行时间,默认是30,0为无限制
格式:bianliang.commandtimeout =30
bianliang2=bianliang.commandtimeout
connectionstring
作用:设置或者返回数据库连接的字符串
格式:bianliang.connectionstring="dsn=address"
bianliang.open
provider
作用:返回或者设置数据库的oledb提供者
格式:同上
mode
作用:设置或返回数据库的权限,默认是3,可读可写
格式:bianliang.mode=1 只读 2 是只写
defauitdatabase
作用:当连接多个数据库时候,设置或返回默认的数据库名称
格式:同上
version
作用:返回ado对象的版本属性
格式:同上
利用connection建立连接的格式:(当然也可以实现数据库的操作,但是不常用)
dim bianliang
set bianliang=server.createobject("adodb.connection")
bianliang.open "provider=microsoft.jet.oledb.4.0;data source=" & server.mappath("数据库的相对路径")
&作用:将两个字符串连接成新的字符串
事务处理:开始是事务处理,此后所有的更新的都是暂时的,只有提交事务处理以后,数据库的数据才更新
(2) 用command 对象 主作用:操作数据库
属性:
activeconnection
作用:设置和返回command具体对象通过那个具体的connection对象对数据库操作
格式: a.activeconnection=b
commandtext
作用:设置和返回要查询的数据库的内容,可以是sql语句,表名,查询名等
格式:a.commandtext="biao1" a.commandtext="select * from biao1"
commandtype
作用:设置和返回数据查询信息的类型,默认是-1,由系统自己去判断,1,sql语句,2,数据表名称,4,查询名或者储存过程
格式:a.commandtype=1
commandtimeout
作用:设置和返回execute方法最长的执行时间。默认是30秒,若为0则时间没有限制
格式:同上
prepared
作用:设置和返回数据查询信息是否要进行编译,如果编译了下次访问更快,默认是false
格式:同上
方法:
execute
作用:执行数据库查询等操作
格式:a.execute
createparameter
作用:创建一个parameter的子对象
格式:set a=b.createparameter("字段")
操作格式:
建立连接
dim b
set b=server.createobject("adodb.connetion")
b.open "biao1"
dim a
set a=server.createobject("adodb.command")
a.Activeconnection=b
a.execute
用command对数据库“查询”
参数对象 parameter 和对象集 parameters
parameters集合
属性:
count:
作用:返回parameters集合中的parameter的对象数目
格式:bianliang=a.parameters.count
方法:
append
作用:将一个parameter对象加到parameters集合中
格式:a.parameters.append("参数对象实例")
item
作用:用来获取集合中某个参数的值
格式:set bianliang=a.parameters.item(0) 按添加的先后顺序
delete
作用:从集合中删除一个该对象
格式:a.parameters.delete(0)
refresh
作用:重新索取要操作的所有参数的信息
格式:a.parameters.refresh
parameter对象
属性:
name
作用:设置或返回参数的名称
格式:a.name="c"
type
作用:设置或返回参数的类型,135 时间日期类型,3 整数 4 单精度浮点数 5双精度浮点数 200 变长字符串
格式:a.type=200
direction
作用:设置或者返回参数的方向,1 表示传入参数 2 表示传出参数 3 表示传入传出参数 4 表示从子程序返回数据到该参数
格式:同上
size
作用:设置或者返回参数大小,指定最长字节或者字符数,单位是字节
格式:同上
value
作用:设置或者返回参数值
格式:同上
attributes
作用:设置或者返回参数特性,128,表示允许大数值 64 允许为空 16 允许正负号
格式:同上
方法:
appendchunk(不常用)
作用:在参数对象末尾增加值
格式:a.appendchunk("aaa") a原值:b 现在值 是 baaa
创建参数对象
set a=b.createparameter(a,b,c,d,e,f)
a 参数名称(同上)
b 参数类型(同上)
c 参数方向(同上)
d 参数大小(同上)
f 参数值(同上)
(3) recordset
作用:当用command或者connection对象执行完查询命令以后,就会返回一个记录集对象即recordset
该对象也可以实现增删改查 但是不常用
属性:
source
作用:提供数据源,可以是command对象,sql语句,数据表,查询名等
格式:a.source=""
activeconnetion
作用:connection对象名或者链接数据库的字符
格式:同上
cursortype
作用:指定该对象使用的指针类型,0 向前指针 1 可以向前向后,用户修改以后(除了增加新的数据
),可以立刻显示
2 动态指针,所有改动显示都会显示
3 静态指针:所有改动都不会显示
locktype
作用:设置锁定, 1 只读 2 只能同时被一个用户修改,修改时锁定,修改完毕后释放 3 可以修改,只有在修改的瞬间锁定 4 数据可以修改,但不锁定其他用户
maxrecords
作用:设置从数据库中取得记录的最大条数
格式:a.maxrecords=12 最多返回12条记录
filter
作用:过滤记录集中的记录可以使用条件和逻辑运算符
格式:a.filter="ziduan>18 and ziduan<25"
recordcount
作用:返回记录集中记录的总数
格式:a=a.recordcount
bof
作用:当记录指针指向第一条记录之前时候,返回true ,否则是false
格式:同上
eof
作用:当记录指针指向最后一条记录之后的时候,返回true,否则是false
pagesize
作用: 设置或者返回数据分页显示的时候,每一页的记录数
格式:同上
absolutepage
作用:设置或者返回记录指针指向的数据页
格式:同上
absoluteposition
作用:返回或者设置返回记录指针指向记录行的绝对值
格式:同上
bookmark
作用:返回或者设置书签的位置,利用它可以重新返回指定的位置
格式: b=a.bookmark 设置一个书签
a.bookmark=b 返回书签指定的位置
方法:
open
作用:打开记录集对象
格式: a.open source activeconnetion cursortype locktype options
options
作用:source的参数类型
内容:-1 参数类型由系统自己确定 默认
1 sql语句
2 数据表名
3 查询或者储存过程名
close
作用:关闭记录集
格式:同上
requery
作用:重新打开记录集
格式:同上
movefirst
作用:移动到第一条记录
格式:同上
movelast
作用:移动到最后一条记录
格式:同上
moveprevious
作用:移动到上一条记录
格式:同上
movenext
作用:移动到下一条记录
格式:同上
move
作用:移动到指定记录
格式:a.move star,number
a.move 2,5 从2前记录开始向前移动5条
省略默认是当前位置,负数时候是向后移动
addnew
作用:增加新的记录
格式:a.addnew
a("ziduanming")="a"
a("ziduanming")="b"
a.update
delete
作用:删除当前记录
格式:a.delete
a.update
update
作用:更新数据库数据
格式:同上
cancelupdate
作用:取消数据更新
格式:同上
find
作用:查找单个记录,只能使用一个条件,不能使用逻辑运算符
格式:a.find 表达式 查找记录时候,跳过的行数,默认是0 当前位置 1向前查找,-1向后查找 书签位置
getrows
作用:返回指定的记录条数到一个2维数组,默认是-1表示从当前记录开始直到结尾
2维:第一维:表示 列 第二维:表示行
格式: b=a.getrows(10)
读取:
Dim Rs_Cate
Dim Arr_Cate
Set Rs_Cate=Conn.ExeCute("SELECT ID,Title,Intro FROM T_Cate ORDER BY ID ASC")
Arr_Cate=Rs_Cate.GetRows
Set Rs_Cate=Nothing
Dim Arr_CateNumS,Arr_CateNumI
Arr_CateNumS=Ubound(Arr_Cate,2) '得到数组中数据的下标
For Arr_CateNumI=0 To Arr_CateNumS
Response.Write("ID:"&Arr_Cate(0,Arr_CateNumI)&" | 标题:"&Arr_Cate(1,Arr_CateNumI)&" | 介绍:"&Arr_Cate(2,Arr_CateNumI)&"<br>")
Next
创建方法:
1 dim a connection方法
set a=server.createobject("adodb.connetion")
a.open " shujubiao"
dim b
set b=a.execute
2 dim a
set a=server.createobject("adodb.connection")
a.open "shujubiao"
dim b
set b=server.createobject("adodb.command")
b.activeconnection=a
b.commandtype=1
b.commandtext="sql 语句"
dim c
set c=b.execute command方法
3
最科学的方法
dim a
set a=server.createobject("adodb.connection")
a.open "shujubiao"
dim b
set b=server.createobject("adodb.command")
b.activeconnection=a
b.commandtype=1
b.commandtext="sql 语句"
dim c
set c=server.createobject("adodb.recordset")
c.open b,,1,2
集合的子集 字段集 fields
集合属性
count
作用:返回集合中的该集合对象的数目
格式:同上
集合方法
item
作用:用来获取集合中某个对象
格式: set a=rs.fields.item(1) 字段索引从0开始
set a=rs.fields.item("ziduanming") 字段名
field对象属性:
name:
作用:返回字段名称
格式:同上
value
作用:设置和返回字段值,常用
格式:同上
type
作用:返回字段的数据类型
格式:同上
definedsize
作用:返回字段被定义的大小
格式:同上
actualsize
作用:返回字段的实际大小
格式:同上
precision
作用:返回字段为数值的时候,允许的最大数位
格式:同上
numericscale
作用:返回字段为熟知的时候,允许的最小数位
格式:同上
attributes
作用:返回字段数据的数据值属性
格式:同上
方法
appendchunk
作用;在当前的字段值末尾添加数据
格式:未知
创建方法:
asp默认对象 不需要创建
错误对象
error 对象 connection 的字对象
errors 集合
属性:
count
作用:返回errors集合中的error对象的数目
格式:同上
方法:
item
作用:用来获取集合中某个error对象
格式:set a=conn.errors.item(0)
括号中的参数索引 从0开始
clear
作用:清楚errors的所有错误对象
格式:conn.erors.clear
error 对象
属性:
number 返回错误编号
description 返回错误编号
source 返回发生错误的原因
helpcontext 返回错误帮助的提示文字
helpfile 返回错误帮助的提示文件
nativeerror 返回数据库服务器产生错误的原因
创建格式“
set a=coon.errors.item(i)
文件包含
1 包含函数库
作用:可以直接用声明的函数
格式:<!--#include file="文件夹名字"-->
2 提交页面处理
格式:(1)用 resques 获取
(2)处理返回
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) |
Powered by Discuz! X3.2 |