ASP 基础知识
Web起源于1989年3月,是由欧洲量子物理实验室CERN(the European Laboratory for Particle Physics)开发的主从结构分布超媒体系统。Web提供了一个图形化用户界面,一浏览Internet上的文档,这些文档以及它们之间的链接构成了一个庞大的信息网。
Web是信息资源的海洋,三个要素保证了人们能够方便地在这海洋中遨游:
统一的资源命名方案(URL)
访问某一资源的方式,即协议(HTTP)
在资源之间自由访问的方法,即超文本(HTML)
Internet发展到现在,Web技术经历了3个发展阶段:
第一代,提供对静态文档(信息)的管理和访问(显示)
第二代,与数据库系统相结合,提供对动态文档(信息)的访问和显示
第三代,除动态文档生成和访问之外,还提供基于Web的联机事务处理能力
静态网页存在的不足:
1. 无法支持后台数据库
2. 无法有效的对站点信息进行及时的更新
3. 无法实现动态显示效果
ASP是Microsoft公司在1996年底推出的一种运行于服务器端的Web应用程序开发技术。ASP既不是一种语言,也不是一种开发工具,而是一种内含于IIS/PWS之中的易学易用,可以集成Script语言到HTML主页的服务器端的脚本语言环境,其主要功能是为生成动态的,交互的Web服务器应用程序提供一种功能强大的方式和技术。
ASP的特点如下:
1. ASP可以混用HTML、DHTML、Java小程序、ActiveX、VBScript、JavaS cript,并且可以互相嵌套
2. 不需编译,纯文本格式
3. 安全性好
4. 面向对象
5. 可扩充服务器端功能
6. 可扩充脚本语言
7. 与浏览器无关
8. ASP提供6个内置的全局对象供开发者不需声明就可直接调用
9. ASP允许调用3个重要的服务器组件
访问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使用组件使用户可以处理数据库,发送E-mail或访问文件系统等
ASP提供的6个内置对象:
1. Response:发送信息到浏览器
2. Request:用来读取来自浏览器的请求信息,可用该对象读取HTML表单的信息
3. Server:允许用脚本来生成Active Server组件的实例
4. Application:用来存储,读取用户共享的应用程序信息,如可以用该对象在网站的不同连接者之间传递共用信息
5. Session:用来存储,读取特定连接者的对话信息,如可以存储连接者对网站的访问信息
6. ObjectContext:用于控制ASP的交易(Transaction),交易由 Microsoft Transaction Server(MTS)管理
ASP允许调用的3个重要组件:
1. ADODB(即 ADO):Database Access 类组件,用于在 Microsoft SQL Server、Microsoft Access 数据库中读取或存储数据。
2. Scripting(即 Scrrun.dll):原本用于阅读和编写脚本和文本文件,其包含的对象 FileSystemObject(即 FSO)提供可用来访问计算机文件系统的方法和属性;Dictionary 对象与 TextStream 对象也属于此组件。
3. MSWC:包含 NextLink 对象(即 Content Linking,用来链接不同的 HTML 页面使其操作更简单)、BrowserType 对象(即 Browser Capabilities,根据不同浏览器的性能显示不同的 HTML 内容)、AdRotator 对象(即 AD Rotator,用于在网页上显示横幅广告,并可控制不同广告的显示频率)等。
ASP脚本文件基本知识:
1. ASP文件的扩展名为.asp,其中可以包括HTML标记,文本和脚本语言,其脚本语言代码包含于“<%”、“%>”之间。
2. IIS 内置的 ASP 解释器还可以解释 SSI 语句,但只能解释一句——“<!--#include -->”。注意,这里的 include 和别的环境下的 SSI 语法可能不同:当其属性为 file 时,属性的值虽然不能填写绝对路径,但是相对路径可以使用“../”(上级目录);当其属性为 virtual 时,属性的值只能填写绝对路径(基于虚拟主机根目录),即使你开头省略“/”也一样。
3. 在VBScript中:注释可以是“Rem”、“'”等。
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].表单个数。
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_On Start,Application_On End
Application集合:Contents,StaticObjects
Application属性:Application("变量名")=变量名 或 Set Application("对象实例名")=对象
其实是定义全局变量,供多个用户使用。
实例名(反过来是还原)
Session 对象:
语法格式:Session.方法|事件|集合|属性
Session方法:Abandon()用于清除Session对象
Session事件:Session_On Start,Session_On End
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. 两者都有On Start和On End事件代码,但它们发生的时间不同。当一个Application应用程序与一个Session应用程序同时启动时,ASP会先执行Application_On Start,接着才执行Session_On Start;若在结束一个Session的同时结束Application应用程序,则会先执行Session_On End,然后才执行Application_On End.
Global.asa文件与应用程序的初始化:
Global.asa文件:
网站计数器或统计在线人数等
Server 对象:
Server语法格式:Server.属性|方法
Server属性:ScriptTimeout
Server方法:CreateObject,HTMLEncode,URLEncode,MapPath,Execute,Transfer
Server的CreateObject方法是ASP中最实用,最强大的功能,它可以创建已注册到服务器上的ActiveX组件实例,是建立ActiveX对象的源头。
Server.CreateObject("组件名或组件注册名")
Set Myconn=Server.CreateObject("ADODB.connection")连接对象实例
Set MyAds=Server.CreateObject("MSWC.AdRotator")广告对象实例
ADO 组件:
1. Connection Object - represents the connection to the database.
2. Recordset Object - represents a set of database records.
3. Command Object - represents a SQL command.
4. Record Object - represents a set of da ta, typically from a source other than a database. (新增)
5. Stream Object - represents a stream of da ta, as from a text file or web page. (新增)
6. Error Object - stores errors.
7. Field Object - represents a database field.
8. Parameter Object - represents a SQL parameter.
9. Property Object - stores information about objects.
其中前五个对象需要使用Server.CreateObject方法来建立后才能使用。
