asp相关知识整理

时间:2024-08-12 12:05:56

WWW----World Wide Web(万维网) 
URL----Uniform Resource Locator(统一资源定位符) 
HTTP----Hyper Text Transfer Protocol(超文本传输协议) 
HTML----Hyper Text Markup Language(超文本标记语言) 
XML----Extensible Markup Language(可扩展标记语言) 
ODBC----Open DataBase Connectivity(开放数据库连接标准) 
DLL----Dynamic Link Library(动态链接库) 
DAO----Data Access Objects(数据连接对象) 
RDO----Remote Data Objects(远程数据对象) 
ADO----Microsoft ActiveX Data Objects(动态数据对象) 
SQL----Structured Query Language(结构化查询语言) 
CGI----Common Gateway Interface(公共网关接口) 
API----Application Programming Interface(应用程序编程接口) 
ASP----Active Server Pages(动态服务页面) 
PHP----Personal HomePage(个人主页) 
JSP----Java Server Pages 
ColdFusion 
SSI----Server-Side Include(服务器端包含) 
DOM----Document Object Model(文档对象模型) 
IIS----Internet Information Server(网络信息服务) 
IP----Internet Protocol(网际协议) 
TCP----Transmission Control Protocol(传输控制协议) 
IE----Internet Explorer(浏览器) 
CSS----Cascading Style Sheet(层叠式样式表) 
VBScript----Microsoft Visual Basic Script Edition 
ISDN----综合业务数字网 
Web 
FTP 
SMTP 
MMC----管理控制台

网页设计前述

Web(万维网)提供了一个图形化用户界面,一浏览Internet上的文档,这些文档以及它们之间的链接构成了一个庞大的信息网。 
Web起源于1989年3月,是由欧洲量子物理实验室CERN(the Ruropean Laboratory for Particle Physics)开发的主从结构分布超媒体系统。 
Web是信息资源的海洋,三个要素保证了人们能够方便地在这海洋中遨游: 
l 统一的资源命名方案(URL) 
l 访问某一资源的方式,即协议(HTTP) 
l 在资源之间*访问的方法,即超文本(HTTP) 
Internet发展到现在,Web技术经历了3个发展阶段: 
l 第一代,提供对静态文档(信息)的管理和访问(显示) 
l 第二代,与数据库系统相结合,提供对动态文档(信息)的访问和显示 
l 第三代,除动态文档生成和访问之外,还提供基于Web的联机事务处理能力。

静态网页存在的不足:

1. 无法支持后台数据库 
2. 无法有效的对站点信息进行及时的更新 
3. 无法实现动态显示效果 
ASP是Microsoft公司在1996年底推出的一种运行于服务器端的Web应用程序开发技术。ASP既不是一种语言,也不是一种开发工具,而是一种内含于IIS/PWS之中的易学易用,可以集成Script语言到HTML主页的服务器端的脚本语言环境,其主要功能是为生成动态的,交互的Web服务器应用程序提供一种功能强大的方式和技术。

ASP的特点如下:

1. ASP可以混用HTML,DHTML,Java小程序,ActiveX,VBScript,<I>javascript</I>,并且可以互相嵌套。 
2. 不需编译,纯文本格式。 
3. 安全性好 
4. 面向对象 
5. 可扩充服务器端功能 
6. 可扩充脚本语言 
7. 与浏览器无关 
8. ASP提供6个内置的全局对象供开发者不需声明就可直接调用 
9. ASP提供5个重要的服务器组件

访问HTML页面的过程:

1. 在客户端浏览器地址栏处输入HTML文件的URL地址,按回车键发送一个网页请求 
2. 浏览器发送网页请求到IIS/PWS服务器 
3. IIS/PWS服务器接收到请求,通过扩展名.htm或.html判断是HTML文件的请求 
4. IIS/PWS服务器将对应的HTML文件从磁盘或存储器中取出并送回浏览器 
5. HTML文件由用户的浏览器解释,结果在浏览器的窗口显示

访问ASP网页的过程:

1. 在客户端浏览器的地址栏输入要请求的ASP文件的URL地址,按回车键发送一个ASP请求 
2. 浏览器向IIS/PWS服务器发送ASP网页请求 
3. IIS/PWS服务器收到请求并根据扩展名.asp识别出ASP文件 
4. IIS/PWS服务器从磁盘或内存中获取相应的ASP文件 
5. IIS/PWS服务器将ASP文件发送到一个类似于发动机引擎的名为asp.dll的特定文件库中 
6. asp.dll引擎将ASP文件从头至尾进行解释处理,并根据ASP文件中的命令要求生成相应的动态HTML页面 
7. HTML页面被送回客户端浏览器 
8. 用客户端浏览器解释执行HTML网页,并将结果显示在客户端浏览器上

与HTML相比,ASP具有3个重要特征:

1. ASP可以包含服务器端脚本语言,即可以用动态内容创建网页 
2. ASP使用内置对象可以使脚本功能更强大 
3. ASP使用组件使用户可以处理数据库,发送email或访问文件系统等

ASP提供的6个内置对象:

1. Response:发送信息到浏览器 
2. Request:用来读取来自浏览器的请求信息,可用该对象读取HTML表单的信息 
3. Server:允许用脚本来生成Active Server组件的实例 
4. Application:用来存储,读取用户共享的应用程序信息,如可以用该对象在网站的不同连接者之间传递共用信息 
5. Session:用来存储,读取特定连接者的对话信息,如可以存储连接者对网站的访问信息 
6. ObjectContext:用于控制ASP的交易(Transaction),交易由Microsoft Transaction Server(MTS)管理

ASP提供的5个重要组件

1. ADO:用于在Microsoft SQL Server,Microsoft Access数据库中读取或存储数据 
2. File System:提供可用来访问计算机文件系统的方法和属性 
3. Content Linking:根据不同浏览器的性能显示不同的HTML内容 
4. Browser Capabilities:用来链接不同的HTML页面使其操作更简单 
5. AD Rotator:用于在网页上显示横幅广告,并可控制不同广告的显示频率

ASP基本知识

ASP文件的扩展名为.asp,其中可以包括HTML标记,文本和脚本语言,其脚本语言代码包含于”<%……%>”之间。 
在VBScript中:注释可以是Rem,’等 
<% Option Explicit %>表示VBScript中的变量都要声明后才可使用,否则会出错。 
文件包含:<!--#include file=”myfirstinc.inc”--> 
<!--#include file=”myfirstasp.asp”--> 
<!--#include file=”myfirsttxt.txt”-->

认识VBScript脚本的基本用法: 
1. 运算符 
2. 数据类型 
3. 常量,变量及数组 
4. 条件语句(if….then end if, if….then….Else end if) 
5. 循环语句(for….next, for each….next, do while…..loop) 
6. 过程 
7. 基本函数:分为数学类,字符串类,日期时间类,类型转换类,格式化类和判断类。 
a) 数学类:abs(), sqr(),rnd(随机数),round(四舍五入)… 
b) 字符串类:len(),left(),right(),mid(),strReverse(),split(),trim() 
c) 日期时间类:DateValue(),TimeValue(),Year(),Month,Day(),Hour(),Minute(),Second(),DateSerial(),TimeSerial(),Date(),Time(),Now(),DatePart(),DateAdd(),DateDiff()… 
d) 类型转换类:Cdate(),Cint(),Clng(),Cstr(),str(),Val(),Int(),Fix() 
e) 格式化类:FormatDateTime,FormatNumber,FormatPercent…. 
f) 判断类:IsDate,IsEmpty,IsNull,IsNumeric,IsObject… 
g) 信息对话框函数:InputBox,MsgBox… 
ASP内置对象说明: 
Response: 
语法格式:Response.集合|属性|方法(变量) 
Response的属性有:Buffer,Charset,ContentType,Expires,ExpiresAbsolute,Status. 
Response的方法有:AddHeader,AppendTolog,BinaryWrite,Clear,End,Flush,Redirect,Write 
Response的集合:Cookie. 
Request: 
语法格式: 
Request.集合(变量) 
集合:Form,QueryString,ServerVariable,Cookie,ClientCertificate 
1. Form:语法格式:Request.form(element)[(index).count].<%=request.form.count%>表单个数。<%=request.form(“name”)%> 
2. QueryString:语法格式:Request.QueryString(variable)[(index)|.count] 
3. ServerVariable:语法格式:Request.ServerVariable(服务器环境变量) 
4. Cookie:语法格式:Request.Cookies(Cookie名)[(key)|.attribute] 
使用Cookies集合: 
Response.Cookies(CookieName)[(key)|.attribute]=CookieValue 
Request.Cookies(CookieName)[(key)|.attribute] 
Application: 
语法格式:Application.属性|方法|事件|集合 
Application的方法:Lock(),UnLock() 
Application的事件:Application_OnStart,Application_OnEnd 
Application的集合:Contents,StaticObjects 
Application的属性:Application(“变量名”)=变量名 或 Set Application(“对象实例名”)=对象 
其实是定义全局变量,供多个用户使用。 
实例名(反过来是还原) 
Session: 
语法格式:Session.方法|事件|集合|属性 
Session方法:Abandon()用于清除Session对象<% Session.Abandon %> 
Session事件:Session_OnStart,Session_OnEnd 
Session集合:Contents,StaticObjects 
Session属性:SessionID,Timeout 
用户也可以自定义Session属性,其实是变量,就是我们前面说的会话变量。 
Session(“VariableName”)=VariableName 
Set Session(“ObjectName”)=ObjectName(反过来就是还原变量) 
网页变量的生命周期与传递 
全局变量,会话变量,网页变量 
用Request.QueryString集合在网页间传递变量 
用ASP的Application或Session对象在网页间传递变量。 
Session和Application的比较: 
1. 两者都允许用户自定义属性,即定义Application变量和Session变量。 
2. 两者都可以用于存取对象中的变量及对象实例 
3. 两者都有生命周期。Session开始于新连接者第一次连接时,终止于连接者若干时间内没有索取过任何信息;Application开始于IIS/PWS开始执行且出现第一个连接者的时候,终止于若干时间内没有任何连接者索取过信息,或IIS/PWS关闭时。 
4. 两者都是ASP文件共用的对象。Application对象是所有网页连接者共用的一个对象,Session对象是每位连接者独有的对象。 
5. 两者都有OnStart和OnEnd事件代码,但它们发生的时间不同。当一个Application应用程序与一个Session应用程序同时启动时,ASP会先执行Application_OnStart,接着才执行Session_OnStart;若在结束一个Session的同时结束Application应用程序,则会先执行Session_OnEnd,然后才执行Application_OnEnd. 
Global.asa文件与应用程序的初始化: 
Global.asa文件: 
网站计数器或统计在线人数等 
Server对象、ODBC与ADO组件: 
Server语法格式:Server.属性|方法 
Server属性:ScriptTimeout 
Server方法:CreateObject,HTMLEncode,URLEncode,MapPath 
Server的CreateObject方法是ASP中最实用,最强大的功能,它可以创建已注册到服务器上的ActiveX组件实例,是建立ActiveX对象的源头。 
Server.CreateObject(“组件名或组件注册名”) 
Set Myconn=Server.CreateObject(“ADODB.connection”)连接对象实例 
Set MyAds=Server.CreateObject(“MSWC.AdRotator”)广告对象实例 
ODBC:是连接数据库的通用接口,是由Microsoft公司开发并倡导的数据库连接标准。 
ADO:是ASP服务器内置组件及实现Web数据库操作的一个十分重要的组件。 
ADO组件是一个功能强大的组件,由7个接口组件组成,分别如下: 
1. Connection组件 
2. Recordset组件 
3. Command组件 
4. Parameter对象 
5. Porperty对象 
6. Error对象 
7. Field对象 
其中前三个组件需要使用Server.CreateObject方法来建立后才能使用。 
Connection:语法格式:Set Connection对象名=Server.CreateObject(“ADODB.Connection”) 
如:Set conn=Server.CreateObject(“ADODB.Connection”) 
Connection对象的方法: 
1. Open格式:Connection对象名.Open “连接数据库信息字符串”[;用户帐号][;用户密码]。该方法用于打开一个数据库并与其建立连接。有两种方法: 
a) 用DSN方法打开数据库:该方法先用ODBC建立对应数据库的数据源名(DSN),然后通过数据源名打开对应数据库。如下代码就可以打开数据源名qhbook所对应的数据库book.mdb。<% Set Conn=Server.CreateObject(“ADODB.Connection”) Conn.Open”qhbook;mydata;zhxing”%> 
b) 用全路径DSN方法打开数据库。如果在连接数据库前没有建立ODBC数据源,也可以采用直接指定ODBC驱动程序名称的方法建立与数据库的连接。此时的“连接数据库信息字符串”必须以driver开始,变为”Driver={ODBC驱动程序名};dbq=”&Server.MapPath(“数据库名”).如下: 
<% Set Conn=Server.CreateObject(“ADODB.Connection”) 
Conn.Open”Driver={Microsoft Access Driver(*.mdb)};dbq=”&Server.MapPath(“book.mdb”) %> 
如果是SQL Server类型,则驱动程序是Driver={SQL Server};如果是Oracle类型,则:Driver={Microsoft ODBC for oracle}. 
2. Close:关闭一个已经建立的连接对象及其相关对象。<% Conn.Close%><%Set Conn=nothing%> 
3. Execute: 
格式一:Connection对象名.Execute(SQL指令). 
格式二:Connection对象名.Execute(数据表名)。 
如下: 
<% SQL=”Select * from bookitem” Set rs=Conn.Execute(SQL) %>或: 
<% Set rs=Conn.Execute(“bookitem”)%> 
4. BeginTrans 
5. CommitTrans 
6. RollbackTrans 
Recordset组件: 
前面的Conn.Open方法知识打开并连接了相应的数据库,数据库通常是由一个或多个表组成,所以要存取其中的数据表还必须建立Recordset对象后,才能对其进行各种操作。 
1. 建立Recordset对象 
方法由以下几种: 
Set Recordset对象名=Server.CreateObject(“ADODB.Recordset”) 
Set Recordset对象名=Connection.Execute(“数据表名”) 
Set Recordset对象名=Connection.Execute(SQL指令) 
如下代码: 
<% 
Set Conn=Server.CreateObject(“ADODB.Connection”) 
Conn.Open”qhbook;mydata;zhxing” 
Set rs=Conn.Execute(“bookitem”) 
%>或 
<% 
Set Conn=Server.CreateObject(“ADODB.Connection”) 
Conn.Open”Driver={Microsoft Access Driver(*.mdb)};dbq=”&Server.MapPath(“book.mdb”) 
Set rs=Server.CreateObject(“ADODB.Recordset”) 
Exec=Select * from bookitem 
Rs.Open Exec,Conn 
%> 
Recordset对象的方法: 
Open:格式一:rs.Open Exec,Conn,1,1(记录集类型(0,1,2,3),锁定类型(1,2,3,4)) 
格式二:rs.Open bookitem,Conn,1,1 
Recordset类型:0:只读,当前数据记录只能向下移动 
1:只读,当前数据记录可以*移动 
2:可读写,当前数据记录可以*移动 
3:可读写,当前数据记录可以*移动(注) 
锁定类型:1:默认值,用于打开只读的数据记录 
2:悲观锁定 
3:乐观锁定 
4:批次乐观锁定 
复杂一些~
Recordset.open Source,ActiveConnection,CursorType,LockType,Options 
各参数的含义是: 
Source : 可以是一个SQL查询、数据表或存储过程 
ActiveConnection: 可以是一个已打开的连接,或连接字符串 
CursorType:游标类型,定义如下 
0(adOpenForwardOnly): 只能在Recordset的记录中向前移动,但速度最快。 
1(adOpenKeyset):可以在Recordset中任意移动,其他用户所做的记录修改可见,但其他用户添加的记录不可见,删除的记录字段值不能被使用。 
2(adOpenDynamic):可以在Recordset中任意移动,其他用户增、删、改的记录都可见,但速度最慢。 
3(adOpenStatic):可以在Recordset中任意移动,其他用户增、删、改的记录都不可见。 
LockType:并发控制 
0(adLockReadOnly):recordset的记录为只读 
1(adLockPessimistic):只要保持Recordset为打开,别人就无法编辑该记录集中的记录. 
2(adLockOptimistic):当update recordset中的记录时,将记录加锁 
3(adLockBatchOptimistic):以批模式时更新记录时加锁 
Options:指定source传递命令的类型 
1(adCmdText):SQL语句 
2(adCmdTable):数据表的名字 
4(adCmdStoredProc):存储过程 
8(adCmdUnknown):未知类型

Close方法 
<% rs.Close 
Set rs=nothing %> 
Recordset对象指针移动的方法: 
MoveFirst 
MoveLast 
MoveNext 
MovePrevious 
Move NumRecords,Start: 
Recordset对象的操作方法: 
Addnew:该方法可以向Recordset对象中添加一条记录 
Delete:删除Recordset对象中的一条记录 
Update:更新Recordset对象的当前记录 
CancelUpdate:取消更新,在更新方法之后才有效 
UpdateBatch:当锁定类型是4时,该方法用于保存对一个或多个记录的修改。 
Recordset对象的属性 
AbsolutePage 
AbsolutePosition 
ActiveConncetion 
BOF 
EOF 
Bookmark 
CacheSize 
CursorLocation 
CursorType 
EditMode 
Filter 
LockType 
MaxRecords 
PageCount 
PageSize 
RecordCount 
State 
Source 
Field对象与集合 
Field属性: 
Name,Value,Type,…. 
Field方法:AppendChunk,GetChunk 
Field集合: 
输出数据表表头: 
For I=0 to rs.fields.count-1 
Response.write”<td>”&rs.fields(i).name&”</td>”(注释:前面的有获取表单元素个数的,和此差不多。Request.form.count) 
Next 
输出表中各个记录的值: 
for I=0 to rs.fields.count-1 
response.write”<td>”&rs.fields(i).value&”</td>” 
next 
用ADO与SQL查询数据库 
建立数据库与数据源: 
本例用Microsoft Access 2000建立一个图书管理数据库,数据库名为book.mdb,其中的数据表是bookitem,只有一个表。 
bookitem表的结构: 
book_id(编号):长整形,主键 
book_name,book_author,book_price(货币),book_press,book_date(日期) 
建立此数据库的DSN,取名qhbook,帐号和密码为:internet 
用Select选取所有记录: 
格式:Select [Top N] 字段列表 From 数据表名(*表示所有字段,多字段用,隔开) 
1. Select * from bookitem 
2. Select book_name,book_author,book_price from bookitem 
3. Select * from bookitem where book_name=’孤独羊’ 
Select * from bookitem where book_name like ‘%原理%’(通配符%和_,其中%代表任意多个,_代表一个。) 
Select * from bookitem where book_price between 20.00 and 23.00 
Select * from bookitem where book_price>=20.00 and book_price<=23.00 
Select * from bookitem where book_price between 12.00 and 20.00 and book_name like ‘%系统%’ 
Select * from bookitem where book_date>=#2000/3/1# and book_name like’%原理%’ 
Where后的条件表达式可以用逻辑、比较、like,between…and,in/not,in,isNull/Is not Null等运算符来构成各种筛选。 
Select [Top N] 字段列表 From 数据表名 Where 条件表达式 
4. Select [Top N] 字段列表 From 数据表名 Where 条件表达式 order By 字段列表[Desc]降序排列: 
Select * from bookitem order By book_date Desc,book_price Desc 
Select * from bookitem Where book_date>=#2000/3/1# order By book_name 
Select Top 4 * from bookitem where book_date>=#2000/3/1# 
插入记录: 
格式一:Insert Into 数据表名[(字段名列表)] Values (字段值列表) 
格式二:rs.Open SQL,conn,2,3 
Addnew 
为各字段赋值 
Update(此法最常用,特别是和表单结合时,通过表单添加记录) 
如: 
Insert Into bookitem(book_name,book_author,book_price) Values (‘书名’,’作者’,’价格’) 
删除记录: 
格式一:Delete from 数据表名 Where 条件表达式(SQL语言的删除) 
格式二:rs.Open SQL,conn,2,3(记录集的删除方法) 
rs.MoveLast 
rs.Delete 
rs.Update(常用的一种方法) 
如:Delete from bookitem where book_author=’寡人’ 
修改记录: 
rs.Open SQL,conn,3,3 
rs.MoveLast 
rs(“book_author”)=”朕” 
rs.Update