ImageVerifierCode 换一换
格式:DOCX , 页数:40 ,大小:53.57KB ,
资源ID:6688270      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6688270.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第二章 asp提高篇.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第二章 asp提高篇.docx

1、第二章 asp提高篇2.1 全面解析Server对象Server对象提供对服务器上访问的方法和属性.大多数方法和属性是作为实用程序的功能提供的。 语法:Server.property|method属性(property)Server对象只有一个属性:ScriptTimeout 程序能够运行的最大时间 方法(Methods)CreateObject 建立一个对象实例. Execute 执行一个asp文件 GetLastError 返回一个错误代码 HTMLEncode 对指定的HTML代码进行转换. MapPath 将一个相对路径转化为一个绝对路径. Transfer 将当前的所有状态信息发送给

2、另一个asp文件 URLEncode 以URL形式转化指定的代码,包括空格 Server对象的方法详细说明CreateObject语法Server.CreateObject( progID )参数progID 指定要创建的组件名称,格式如下: Vendor.Component.Version. 要点:一般来说,用由Server.CreateObject方法创建的对象拥有页面的范围.这就说,当这页的asp程序执行完后,这种对象会自动地消失.为了创建一个拥有Session或Application范围的对象,你可以在Global.asa文件中使用ExecuteExecute 方法呼叫一个ASP文件并

3、且执行它就像这个呼叫的ASP文件存在这个ASP文件中一样。这很像许多语言中的类的调用。 语法Server.Execute( Path )参数Path 指定执行的那个asp文件的路径。如是它是一个绝对路径,那么它必须是一个在这个ASP应用程序相同的地方(目录)。 讲解Server.Execute 方法提供了一种将一个复杂ASP应用程序分化为小块单位来执行的方法。通过这种方法,你能够建一个ASP图书馆,你能够随便在你需要时调用你图书馆中的ASP文件。这个就有点像SSI了!嘿嘿!当IIS根据指定的ASP文件路径执行完这个ASP文件之后,就会自动返回以前的ASP文件。这个刚刚执行完的ASP文件有可能改

4、变了HTTP head.但是和其它的ASP文件一样,当程序试图改变http head时,就会报错!这个path参数可以包括一个询问信息。如果在被呼叫和呼叫的ASP文件中都含有相同的子函数,那么这些子函数只在本ASP文件中起作用。举个例子,如果在下面的ASP1和ASP2两个文件中都含有放弃程序的子函数。首先ASP1呼叫ASP2,那么ASP2中的的OnTransactionAbort开始执行,当ASP2执行完毕,ASP1中的OnTransactionAbort才开始执行。ASP1: % Transaction=Required% % Server.Execute (Page22.asp) Sub

5、OnTransactionAbortSub OnTransactionCommit%Asp2.asp: % Transaction=RequiredSub OnTransactionAbortSub OnTransactionCommit%Example ASP1 % Response.Write(I am going to execute ASP2 )Server.Execute(/myasps/asp2.asp)%ASP2 % Response.Write(Here I am)%GetLastErrorGetLastError 方法返回一个ASPError Object 来描述一个错误信息

6、.这个方法只适用于在asp文件发送任何内容给用户机之前.语法Server.GetLastError () 要点如果一个500;100 用户错误已经被定义在一个asp应用程序中,它是指的一个以.asp为后缀的文件。这种情况下,在这个程序运行时当一个错误发生时,服务器就会自动的以Server.Transfer这种方式传送到这个正在执行的ASP页面。ASP应用程序就会将有效的处理这个错误。另外,这个ASPError Object一定要有效,这样你就能够看到服务器提供给你的错误信息来改这个文件了!一般的Web Site 都是根据文件iishelpcommon500-100.asp来构造的。你能够用它来

7、执行一个asp错误,当然你能够自己定义了!。如果你想改变为另外一个asp文件的来执行这些用户错误。那么你可以用IIS中的snap-in. 注意:当IIS发现了一个asp文件或者global.asa文件中的一个错误,那么一个500;100用户错误产生。以下的程序将不能执行! Example下面的三个例子证明不同的错误会产生的用户错误。三个错误是: 编译错误 运行错误 逻辑错误 第一个例子证明了一个编译错误,就是当IIS试图包含一个文件时产生的。这个错误会产生是因为在这个包含文件中没有定义所需的参数。第二个例子显示的是一个运行错误,这个程序中断的原因是程序中没有“next.第三个例子显示的是一个逻

8、辑错误,因为这个程序试图除以一个0. 不行啦! Example 1 %response.write hello%Example 2 %dim Ifor i=1 to 1nxt%Example 3 %dim i,jdim sumsum=0j=0for i=1 to 10sum=sum+1nextsum=sum/j%HTMLEncodeHTMLEncode方法对指定的字符串进行HTML编码. 语法Server.HTMLEncode( string )参数string 要进行编码的字符 例子 下面的程序: %= Server.HTMLEncode(The paragraph tag: ) % 输出为

9、:The paragraph tag: 注意 程序执行后在浏览器中看到的是:The paragraph tag: 但是如果你用查看源文件看一下的话,源代码就不是了.MapPathMapPath 方法将相对路径转化为服务器上的物理路径 语法Server.MapPath( Path )参数 Path 相对路径。这个路径是以/或开头的路径,如果这个路径中没有,那么MapPath方法就会返回以当前目录为基础的路径。 讲解MapPath 方法不能检查路径在这个服务器下是否存在。因为 MapPath 转化路径时是不管这个路径是否在这个服务器下存在的。 你能够用它来将一个相对路径转化为一个物理路径,然后再在

10、这个路径下进行各种操作。 Example在下面的例子中,data.txt文件存在 C:InetpubWwwrootScript 目录中,而且一个test.asp 文件包括下面的代码。C:InetpubWwwroot 是该服务器的主目录 。下面的例子中,首先用环境变量PATH_INFO获得当前文件的物理路径。下面是Script 代码: %= server.mappath(Request.ServerVariables(PATH_INFO)%显示为:c:inetpubwwwrootscripttest.asp因为下面的例子中路径参数没有以/开头,所以它是以当前目录转化的,asp文件是放在C:Ine

11、tpubWwwrootScript中的.以下是 scripts的内容: %= server.mappath(data.txt)% %= server.mappath(script/data.txt)%显示为:c:inetpubwwwrootscriptdata.txtc:inetpubwwwrootscriptscriptdata.txt以下的两个例子是以/开头的.以下是scripts的内容: %= server.mappath(script)%显示为:c:inetpubwwwrootscriptdata.txtc:inetpubwwwrootscript直接用/或就会得到服务器的主目录: %

12、= server.mappath()%显示为:c:inetpubwwwrootc:inetpubwwwrootTransfertransfer 方法会把一个正在执行的asp文件的所有信息传给另外一人asp文件。 语法Server.Transfer (path)参数Path 将要接收信息的asp文件的位置。 要点当你调用Server.Transfer时,所有内建对象的状态信息都会包含在这次传送之中。这就是说,所有在保存在Session或Application中的信息都会被传送,而且,所有当前请求的信息都会被接收信息的asp文件所接受。Example下面的例子示范了从一个asp文件传送到另一个as

13、p文件例子!ASP1 % Dim sessvar1 Response.Write Session.SessionIDResponse.Write ()Response.Write(I am going to ASP2 )Server.Transfer(/Myasps/ASP2.asp)% ASP2 % Response.Write Session.SessionID % URLEncodeURLEncode 方法可以将指定字符串进行URL编码。 语法Server.URLEncode( string )参数 string 指定要转化的字符串 Example下面是代码: % Respones.Wr

14、ite(Server.URLEncode() % 显示为:http%3A%2F%2Fwww%2Emicrosoft%2Ecom 属性:ScriptTimeoutScriptTimeout 属性规定了程序的最大运行时间。 语法Server.ScriptTimeout = NumSeconds参数NumSeconds 规定了程序的最大的运行时间(以秒计算)。缺省值是90秒 Remarks一个缺省的Scritpt Timeout的值会能过ASPScriptTimeOUT属性来设置在Web sertvic 或 Web server上。在程序中,ScriptTimeout属性的值不能小于这个缺省值。举个

15、例子吧,如果NumSeconds我们设置为10秒,而缺省值为90秒,那么程序就会中止在90秒以后,而不是10秒以后的。同样,如果我们设置ScriptTimeout的值为100秒,那么,程序就会在100秒之后中止,而不是90秒。Example下面的例了中程序将被设置为100秒后自动中止。 % Server.ScriptTimeout = 100 %下面的例子中将重新得到ScriptTimeout的值,然后把它存在Timout变量中 % TimeOut = Server.ScriptTimeout %2.2 利用JSP的思想来做ASP程序的功能有了个大体的框架,其实可以自己添加一些功能,比如开始的

16、数据库连接 ,可以先设置变量然后通过INIT() 来选择不同类型的数据库 % On Error Resume Next Class ConnEx public ConnEx public DBpath -数据库路径 public DBtype -数据库类型 1(Access) 2(SqlServer) 3(可扩充) public ConnMethod -连接方式 (DSN,非DSN) public User public Pass Sub Class_initialize End Sub Sub Init() ConnStr = Driver=Microsoft Access Driver (

17、*.mdb);dbq=&Server.MapPath(Date.mdb) Set ConnEx = Server.Createobject(ADODB.CONNECTION) ConnEx.Open ConnStr CatchError(Class_Terminate) End Sub Sub CatchError( Str ) If Err Then Err.Clear Class_Terminate() Response.Write(捕捉到错误,程序结束!在&Str&处) Response.End() End If End Sub * *通过SQL语句来查找记录是否存在,容易出错 * Fu

18、nction HasRecordBySql( Sql ) Call CheckSql(Sql,R) Dim Rs,HasR Set Rs = ConnEx.Execute( Sql ) CatchError(HasReordSql) If Not (Rs.eof Or Rs.bof) Then HasR = False Else HasR = True End If Rs.Close Set Rs = Nothing HasRecordBySql = HasR End Function * *通过ID来查找记录是否存在 * Function HasRecordById( StrTableNam

19、e , IntID ) CheckValue( IntID , 1 ) Dim Rs,HasR Sql = Select top 1 * from &StrTableName& Where Id = &IntID Call CheckSql(Sql,R) Set Rs = ConnEx.Execute(Sql) CatchError(HasRecordByID) If Not (Rs.eof Or Rs.bof) Then HasR = False Else HasR = True End If Rs.close Set Rs = Nothing HasRecordById = HasR En

20、d Function * *通过SQL语句取得记录集 * Function GetRsBySql( Sql ) Call CheckSql(Sql,R) Dim Rs Set Rs = Server.CreateObject(Adodb.RecordSet) Rs.Open Sql,ConnEx,1,1 Set GetRsBySql = Rs End Function * *取得某个字段的值 * Function GetValueBySql( Sql ) Call CheckSql(Sql,R) Dim Rs,ReturnValue Set Rs = ConnEx.Execute(Sql) C

21、atchError(GetValueBySql) If Not( Rs.Eof Or Rs.Bof ) Then ReturnValue = Rs(0) Else ReturnValue = 没有记录 End If Rs.Close Set Rs = Nothing GetValueBySql = ReturnValue End Function =Update,Insert= * *利用SQL修改数据 * Function UpdateBySql( Sql ) Call CheckSql(Sql,w) ConnEx.Execute(Sql) CatchError(UpdateBySql) U

22、pdateBySql = True End Function * *利用SQL语句插入数据 * Function InsertBySql(Sql) Call CheckSql(Sql,w) ConnEx.Execute(Sql) CatchError(InsertBySql) InsertBySql = True End Function =Delete= * *通过SQL语句删除 * Function DeleteBySql( Sql ) Call CheckSql(Sql,D) ConnEx.Execute(Sql) CatchError(DeleteBySql) DeleteBySql

23、= True End Function * *检查SQL语句权限,根据标志Flag 来检测语句拥有的权限 * Sub CheckSql( Sql , Flag ) Dim StrSql,SinCounts,DouCounts,i StrSql = Lcase(Sql) SinCounts = 0 DouCounts = 0 For i = 1 to Len(StrSql) If Mid(StrSql,i,1) = Then SinCounts = SinCounts + 1 If Mid(StrSql,i,1) = Then DouConnts = DouCounts + 1 Next If

24、(SinCounts Mod 2) 0 Or (DouCounts Mod 2) 0 Or Instr(StrSql,;) 0 Then Call Class_Terminate() Response.Write(SQL语法错误!) Response.End() End If Select Case Flag Case R,r: If Instr(StrSql,delete) 0 Or Instr(StrSql,update) Or Instr(StrSql,drop) 0 Or Instr(StrSql,insert) 0 Then Class_Terminate() Response.Wr

25、ite(权限不足,没有执行写操作的权限) Response.End() End If Case W,w: If Instr(StrSql,delete) 0 Or Instr(StrSql,drop) 0 Or Instr(StrSql,select) 0 Then Class_Terminate() Response.Write(权限不足,没有执行删除操作的权限) Response.End() End If Case D,d: Case Else: Response.Write(函数CheckSql标志错误!) End Select End Sub Sub Class_Terminate If Not IsEmpty(FriendConn) Then FriendConn.Close Set FriendConn = Nothing CatchError() End If End Sub End Class %2.3 深入研究Application和Session对象用ASP编写虚拟社区、网上购物等程序时,Application和Session对象具有举足轻重的作用,能够灵活合理地运用这两个对象是提高程序质量的关键。下面让笔者根据自己在这方面的经验,向大家深入介绍一下ASP的这两个内建对

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1