ASP动态网页设计初步陈志伟鼓浪听涛BBSID:zhiweiEmail:zhiwei_chen@sina.com2020年3月13日星期五什么是ASP?ASP(ActiveServerPages)是微软公司推出的一种网页与数据库解决方案。简单地讲,ASP是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的、交互式的Web应用程序。Active:ASP采用了微软的ActiveX技术。它采用封装对象,程序调用对象的技术,简化编程,加强程序间的合作。Server:ASP是运行在服务器端的。不必担心浏览器是否支持ASP所使用的编程语言。Pages:ASP返回标准的HTML页面,可以在常用的浏览器中正常显示。浏览者查看页面源文件时,看到是ASP生成的HTML代码,而不是ASP源代码。一句话,ASP就是利用ActiveX技术在服务器端动态生成HTML页面的一种脚本环境。什么是静态网页、动态网页?所谓静态网页,指的是网页从服务器传到客户端时,网页的内容是“固定不变”的,也就是说,服务器只是把所存储的网页的内容原封不动直接传递给客户端浏览器,这种网页一般是标准的HTML代码。所谓动态网页,它在由服务器传递给客户端的时候必须由服务器把它转换成相应的HTML格式,而且会根据用户的要求和选择在在服务器端做出相应的改变和响应。例子:静态网页:动态网页:运行平台Win9X:PWS(PersonalWebServer)WinNT,Win2000:IIS(InternetInformationServer)推荐用PWS作为ASP的开发平台,Win2000作为ASP的服务器运行平台。理由:PWS带有详细的ASP帮助文档,而且开发过程中比较少出现一些莫名其妙的错误。而Win2000由于功能及设置更强大全面,适宜作服务器平台。PWS安装注意事项安装时选择“自定义”安装,以选择安装帮助文档安装ADO(ActiveXDataObject)帮助文档安装ASP(ActiveServerPages)帮助文档启动PWS打开PWS/ASP帮助文档PWS/ASP帮助文档打包下载:中设置ASP脚本执行权限IIS中设置ASP脚本执行权限创建ASP应用程序ASP应用程序是后缀名为.asp的文本文件使用的脚本语言:VBScript(PWS或IIS默认)Jscript/JavaScript使用的编写工具:常用的文本编辑工具即可ASP脚本和HTML网页代码结合方式:以%,%为定界符以ScriptRunAt=“Server”/Script来定界简单的ASP应用程序例子内建对象Response(响应)对象它控制在HTTP响应消息中,将消息发送给浏览器Request(请求)对象它在一个HTTP请求过程中,获取由浏览器传送给服务器的消息Server(服务器)对象它提供对驻留在服务器上的资源的访问Session(会话期)对象它用于存储和管理与一个特定的用户会话有关的信息Application(应用程序)对象它用于存储和管理与该Web应用程序有关的信息ASP内建对象应用举例例子所用到的对象及其方法:Request对象:.Form().ServerVariables(Remote_Addr).ServerVariables(REQUEST_METHOD)Response对象:.Write(string).EndServer对象:.HTMLEncode(string)Application对象:.Lock.UnLockSession.SessionIDASP与数据库的结合ADO——ActiveXDataObjects对数据提供程序(如MSSQLServer和MSAccess)提供了一个应用程序水平的界面。可以在ASP中直接用ADO与数据库通信。与数据库通信之前,必须先连接上数据库。这是通过ADOConnection对象来实现的。浏览器Web服务器IIS/PWS使用了ADO对象的.asp文件ODBC或OLEDB驱动程序数据库ADO的三大对象:Connection,RecordSet,CommandASP采用ADO与数据库连接的几种形式记录的分页显示数据库访问的安全性设置ADO的三大对象Connection:连接数据库,执行SQL查询语句,执行事务查询RecordSet:根据用户的不同查询条件检索并获取数据库中的数据(记录集),所有记录集对象都由记录(行)和字段(列)组成。Command:主要用于执行不会返回记录集的SQL命令和带输入输出参数的存储过程。ADO对象模型还包括其它的对象:Field对象,Parameter对象,Error对象和Property对象。ASP采用ADO与数据库连接的几种形式ODBC形式——相对比较安全SQLServer:%Setcon=Server.CreateObject(“ADODB.Connection”)con.Open“DSN=myDSN;UID=sa;PWD=**;DataBase=Pubs”%Access:%Setcon=Server.CreateObject(“ADODB.Connection”)con.Open“DSN=AccessDSN”%ASP采用ADO与数据库连接的几种形式字符串连接(无DSN连接)——比较常用SQLServer:%Setcon=Server.CreateObject(“ADODB.Connection”)con.Open“Driver={SQLServer};Server=yourServer;UID=sa;PWD=**”%或者采用OLEDB(推荐):con.Open“Provider=SQLOLEDB;DataSource=yourServer;UID=sa;PWD=**;DataBase=Pubs”ACCESS:%Setcon=Server.CreateObject(“ADODB.Connection”)con.Open“Driver={MicrosoftAccessDriver(*.mdb)};DBQ=C:\”%或者采用OLEDB(推荐):con.Open“Provider=Microsoft.Jet.OLEDB.4.0;DataSource=c:\myDb.mdb”ASP采用ADO与数据库连接的几种形式文件DSN——比较少用SQLServer:%Setcon=Server.CreateObject(“ADODB.Connection”)con.Open“FILEDSN=myDSN;UID=sa;PWD=**;DataBase=Pubs”%Access:%Setcon=Server.CreateObject(“ADODB.Connection”)con.Open“FILEDSN=AccessDSN”%RecordSet记录集的应用建立与数据库的连接后,可使用RecordSet对象的Open方法返回记录集:Setrs=Server.CreateObject(“ADODB.RecordSet”)rs.OpenSource,ActiveConnection,CursorType,LockType,OptionsSource:为合法的Command对象变量名、SQL语句、表格名称、存储过程调用。ActiveConnection:为合法的Connection对象变量名或含有ConnectionString参数的String。CursorType:可选项。打开记录集时使用的游标类型值。LockType:可选项。打开记录集时使用的游标类型值。Options:可选项。用于表示Source参数的类型,可取值为:adCmdText,adCmdTable,adCmdStoredProc,adCmdUnknown。这四个值是ADO预定义的一些常量,在ASP中使用时必须包含定义文件:adovbs.inc。下面还会用到其中定义的一些常量。()RecordSet的游标类型(CursorType)对于所有ADO对象,只有RecordSet对象运行用户浏览一组记录,记录集中每次只有一条记录可供使用。CurSorType属性决定了使用记录集中记录的方式。纯前向游标adOpenForwardOnly(0):缺省游标,提供最快的速度,最低的开销。用它打开RecordSet,只能从头至尾取得记录。他不支持向后滚动,只允许在结果间向前移动。键集游标adOpenKeySet(1):可以查询表中底层数据行的某些变化,但不是全部。它特别是可以准确反映数据是否更新过。但它不能查明其他用户是否曾插入或删除过数据行(删除掉的数据行会在RecordSet中留下空洞)。键集游标支持前后滚动。动态游标adOpenDynmic(2):最丰富的游标类型。游标打开时可以查看其它用户对表的任何修改,而且支持滚动。静态游标adOpenStatic(3):反映第一次打开游标时表中数据的状态,游标无法查明底层表中的数据行是否更新过、删除过或添加了新数据。与只能向前移的游标不同,静态游标可以在记录集中前后滚动。RecordSet游标类型对其属性和方法的有效性属性ForwardOnly(0)Dynamic(2)Keyset(1)Static(3)AbsolutePage无效无效读/写读/写AbsolutePosition无效无效读/写读/写ActiveConnection读/写读/写读/写读/写BOF只读只读只读只读Bookmark无效无效读/写读/写CacheSize读/写读/写读/写读/写CursorLocation读/写读/写读/写读/写CursorType读/写读/写读/写读/写EditMode只读只读只读只读EOF只读只读只读只读Filter读/写读/写读/写读/写LockType读/写读/写读/写读/写MarshalOptions读/写读/写读/写读/写MaxRecords读/写读/写读/写读/写PageCount无效无效只读只读PageSize读/写读/写读/写读/写RecordCount无效无效只读只读Source读/写读/写读/写读/写State只读只读只读只读Status只读只读只读只读RecordSet的上锁类型(LockType)当应用程序需添加、删除或编辑记录是,需指定不同的上锁类型。在多用户环境中,上锁操作可以确保两个用户不能同时修改一个记录。只读锁定adLockReadOnly(1):缺省上锁游标。只读加锁允许多个用户同时读取同样的数据。不过,用这种类型打开RecorSet时,不能改变数据。悲观锁定adLockPessimistic(2):以悲观上锁打开RecordSet时,一旦你开始编辑记录,其它用户就不能访问该数据。乐观锁定adLockOptimistic(3):以此类型打开RecordSet时,只在调用Update方法时对记录加锁。批处理更新加锁adLockBatchOptimistic(4):执行批处理更新BatchUpdate时采用这种加锁类型。访问记录集中的记录记录集打开