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