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)处理返回 |