vivo手机听歌时用QQ音乐听歌加速QQ怎么没有了,通知栏一直显示只有新消息,不显示正在播放的音乐,也没有下一曲和上一首

& & 出版社:清华大学出版社& & 本书特点:& & 通过大量实例,将ASP.NET的技术点贯穿起来& & 深入剖析网络数据库开发的技术点和难点& & 贯穿了作者多年的开发经验,具有较高的参考价值& & 专门设计……
声明:该文章系网友上传分享,此内容仅代表网友个人经验或观点,不代表本网站立场和观点;若未进行原创声明,则表明该文章系转载自互联网;若该文章内容涉嫌侵权,请及时向
论文写作技巧
上一篇:下一篇:
相关经验教程亚马逊意外错误报歉,由于程序执行时,遇到意外错误,您刚刚操作没有执行成功,请稍后重试。或将此错误报告给我们的客服中心:推荐您,确认您的操作无误后,再继续其他操作。您可以通过亚马逊,获得更多的帮助。当前位置: >>
第6章ASP的网络数据库编程
网络数据库 Web Database第六章 ASP的网络数据库编程 第六章 ASP的网络数据库编程6.1 ASP简介6.2 ASP文件 6.3 ASP的内置对象 6.4 ASP的外接组件ADO 6.1 ASP简介6.1.1 ASP概述6.1.2 ASP的运行环境 6.1.3
ASP的运行方式 一、动态网页技术网页的“动态性”并不是指在网页上包含一些动画效 果或滚动字幕,而是指“交互性”、“情境性”和“自 动更新性”。?网页交互性:指网页能根据用户的要求和选择,而动态地做 出相应的改变或响应。?情境性:指不同(或同一)人在不同的时间或地点登录同一网站应能看到不同的页面内容。?自动更新性:指维护人员无须手动地更新HTML文档,便会由 Web服务器根据情景改变而自动生成新的页面。 二、目前得到应用的动态网页技术?CGI:(即通用网关接口),原理是根据浏览器端的HTTP请求激活响应进程,每一个请求对应一个进程。当同时有很多请求时,程 序挤占系统资源,造成效率低下;?PHP:由一些爱好者自由开发的动态网页技术,具有简单易用、运行速度快等优点,但能够支持PHP网页的Web服务器较少,而 且由于是自由软件,缺乏大公司的支持,无法实现商品化的商业开发。 ?ASP:由微软创建用于实现动态网页的解决方案,优点是安装配置方便,开发简单易学,开发工具功能强大。而不足之处在于 ASP使用了组件因而将导致大量的安全问题;无法实现跨平台,只能应用于Windows NT/2000。?JSP:由SUN公司在Java语言的基础上推出的。优点是可移植性好, 支持多种平台以及具有强大的可伸缩性。不足之处在于安装配置管理较为复杂;运行速度较慢。 三、什么是ASP?微软于1996年11月推出的Web应用程序开发技术(Active Server Pages, 即活动服务器页面)。?在微软的文件中把ASP描述为:“一个服务器的脚本环境,在这里可以生成和运行动态的、交互的、高性能的Web服务器应用程序”。?从描述中可以看出,ASP既不是一种语言,也不是一种开发工具,而 是一种技术框架,它能够把HTML、脚本、组件等有机地组合在一起, 形成一个能够在服务器上运行的应用程序,并把按用户要求专门制作 的标准HTML页面回送给客户端浏览器。?其主要功能是为生成动态的交互式的Web服务器应用程序提供一种功 能强大的方法或技术。 三、什么是ASP(续)?ASP是一个Web服务器端开发环境,属于服务器端技术,与在客户端实现动态主页的技术如Java applet、VBScript、JavaScript等所 不同的是,ASP中的命令脚本语句都是在服务器中解释执行,执 行后将结果转化成Web页面,并把标准的HTML格式的数据流送到 浏览器。?ASP具有很好的安全性。由于它在服务器端执行,所以不必担心 别人是否能下载程序而窃取编程逻辑,访问者除了浏览器上的HTML界面,什么也看不见。保护了开发者的利益。 三、什么是ASP(续)?ASP还提供了丰富的组件和对象,可以使用第三方控件来完成复杂的功能。?ASP通过扩展名为.asp的文件来实现。一个ASP程序相当于一个可 执行文件,必须放在Web服务器上有可执行权限的目录下。?当浏览器向Web服务器请求调用ASP文件时,就启动了ASP,Web 服务器开始调用ASP,将被请求的.asp文件从头读到尾,执行每一 个命令,然后动态生成一个HTML页面并送回到浏览器。 四、ASP的四个重要特征?可以包括服务端脚本。通过脚本的使用,可以使网站“动”起来,成为真正的和用户交互的网站。?提供了一些内建对象。利用对象,通过简单的编程就能获得功能 强大的脚本。?可以用另外的组件来扩展。在ASP中,本身就提供了相当数量的 标准服务端ActiveX组件,可以轻松地使用这些组件来完成复杂的 工作。另外还可以使用各种第三方控件来增强网页的功能。?ASP可以利用一些特定的对象集合,如ActiveX Data Object(ADO)在ASP中使用SQL语言对诸如SQL Server这样的数据库进行操作。 6.1 ASP简介6.1.1 ASP概述6.1.2 ASP的运行环境 6.1.3 ASP的运行方式 6.1.2 ASP的运行环境?事实上,任何一个服务器只要有了ASP解释程序,就能支持ASP所编写的动态网页。通常ASP的运行环境是 Windows NT服务器的IIS。 ? 微软推出的支持ASP的Web服务器有:? ?Microsoft Internet Information Server5.0 on Windows 2000 Server Microsoft Internet Information Server 3.0/4.0 on Windows NTServer?Microsoft pear Server3.0 on Windows NT Workstation等等。 1.Web服务器的安装及配置?IIS的安装以Windows XP为例说明Web服务器的安装及配置。如 果尚未安装IIS,则可使用“控制面板”中的“添加/删 除组件”来安装IIS里的Web服务。?IIS的配置在开始菜单中选“控制面板→管理工具→ Internet信息 服务,便可打开IIS管理程序。如图6.1所示: 图6-1 Internet信息服务 ?在网站的“IP地址”栏内输入或选择一个有效的IP地址作为此站点的地址。图6-2 设置站点IP地址 1.Web服务器的安装及配置(续)?在“主目录”的“本地路径”中填写:C:\Inetpub\wwwroot, 或根据实际情况通过“浏览”选择自己的Web服务目录,如图6-3图6-3 设置站点主目录 1.Web服务器的安装及配置(续)在“文档”选项卡中,修改浏览器默认调用的文件名及调用顺序,如图6-4。图6-4 设置默认启动文档 2. 测试ASP?用“记事本”或熟悉的文本编辑软件创建一个文件,并键入以下代码:&html& &head& &title&我的第一个ASP程序&/title& &/head& &body& &% response.write(&hello world!&) %& &/body& &/html&将此文件命名为hello.asp,保存到站点主目录内。要访问此ASP文 件,只需在浏览器的地址栏中键入:http://localhost/hello.asp,如果一切正常,浏览器上将显示出如图6-5所示结果。 图6-4 Hello.asp在浏览器中的运行结果 表6-1 ASP错误信息及解决办法错误信息无法与服务器 建立连接错误原因及解决方法Web服务器未启动或网络出现故障。 检查IIS是否正常启动以及网络是否 正常。 指定位置不存在所要访问的文件。 检查输入的地址及文件名是否正确未正确设置ASP所在目录的访问权限 。改变该目录的权限为“读取及执 行”无法找到网页禁止访问 6.1 ASP简介6.1.1 ASP概述6.1.2 ASP的运行环境 6.1.3 ASP的运行方式 6.1.3 ASP的运行方式?用户在浏览器的地址栏添入ASP文件名称,回车后即触发这个ASP要求。?浏览器将这个ASP的请求发送给IIS。??Web服务器接受这个请求并进行分析,调入正确的ASP文件。Web服务器将被请求的.asp文件从头读到尾,执行每一个命令,并 生成相应的动态网页。?回送这个动态网页,由用户的浏览器解释执行并显示出来。 第六章 ASP的网络数据库编程6.1 ASP简介6.2 ASP文件 6.3 ASP的内置对象 6.4 ASP的外接组件ADO 1. ASP文件的组成?ASP文件是以”.asp”结尾的文本文件,可以使用任何文本编辑器编辑,ASP文件是由HTML和VBScript或 JavaScript脚本语言等混合而成。?ASP脚本部分由”&%”和”%&”括起而成,HTML的标记仍然是括号”&”和”&”。 ASP只处理服务器端的脚本语言,而对于ASP文件的其 他内容,服务器将不做任何改动就发送给客户端,由 客户端的浏览器进行处理。? 2. ASP基本语法?&%......%&:是ASP使用的定界符,在定界符中可以包含在主脚本语言(VBScript或Javascript)中合法的语句、表达式、过程等。除 此之外,还可以加入ASP特有的一些指令,如输出指令和输入指令。?例如:?&%@ LANGUAGE=VBScript RUNAT=Server %& ?设置使用 的脚本为VBScript,且为服务器端脚本’? ?&% Set myname=“chen” %& ?定义变量myname并赋值’&% Call &一个已定义的过程或函数名&%& ?调用一个已定义的 过程或函数’?&% =Greeting %& &&% =myname%& ?ASP输出指令’ 2. ASP基本语法(续)?&% ?以下为一段VBScript脚本程序’ If Time&=#12:00:00 AM# And Time&#12:00:00 PM# Then Greeting=“Good Morning!” Else Greeting=“Hello!” End If %&?&Script&…&/Script&:与&% %&定界符不同,虽然它们之间加入的也是脚本程序,但IIS/PWS却不会执行它,而是将其中内容原原本本地送至浏览器端。&Script&…&/Script&间的内容为客户 端脚本,只在客户端解释执行。?HTML标签:HTML文件中合法的标签都可以在ASP中使用。 3. 声明脚本语言?在ASP文件中不做任何说明,即表明所用的脚本语言为默认脚本语言 (VBScript)。 直接在ASP文件中声明使用的脚本语言时,声明语句要放在ASP文件的第 1行。例6.1:?&%@ Language=VBScript %& &HTML& &TITLE&ASP File&/TITLE&&/HEAD& &BODY& &% Response.Write(“You are welcome!”) %& &/BODY& &/HTML& 例6.1的执行结果 3. 声明脚本语言(续)例6.2:&%@ Language=VBScript %& &HTML& &TITLE&ASP示例&/TITLE&&/HEAD& &BODY& &P&2008年---北京&/P& &% Response.Write(“&P& 绿色奥运”) %& &SCRIPT Language=“JScript” runat=“Server”& Funciton world() { Response.Write(“&P& 欢迎,欢迎,热烈欢迎!”) } &/SCRIPT& &% world() %& &/BODY& &/HTML& 例6.2的执行结果 4. ASP文件中的文件包含?ASP文件也可以插入一个”被包含的文件”,程序执 行到这里,将先执行该文件,然后才继续执行其他程 序代码。ASP通过Include命令执行这一功能,其语法为: &!--#include virtual|File=“文件名”--& virtual表示虚拟地址,它指示一个以虚拟目录开始的?路径。?注意:在使用文件包含时,不应造成循环的形式。例 如:A.asp包含B.asp;B.asp包含C.asp;但C.asp不能包 含A.asp;否则程序会出错。 5. ASP文件的执行??ASP文件的HTML代码是在用户的浏览器中执行的,而ASP脚本程 序代码是在服务器中运行的,又ASP解释器执行后将脚本语言翻 译成可识别的HTML代码,再传送给浏览器,完成一个ASP文件 的执行过程。 例如:A.asp文件包含有脚本:&% For i=2 to 4 %& &Font size=&%=i%&& &P&不到长城非好汉! &% Next %&?经过ASP翻译器处理后成为标准的HTML代码传送到浏览器端: &Font size=2& &P&不到长城非好汉! &Font size=3& &P&不到长城非好汉! &Font size=4& &P&不到长城非好汉! 第六章 ASP的网络数据库编程6.1 ASP简介6.2 ASP文件 6.3 ASP的内置对象 6.4 ASP的外接组件ADO 6.3 ASP的内置对象?ASP中已经预先封装好了一些对象供设计人员直接使用而无须自己定义,这些对象有的可用来接收浏览器 传来的有关用户的请求信息,有的将执行结果或错误 信息等返回浏览器的,同时还有一些对象用来记录某 一个浏览器与Web服务器的连接信息,它们统称为ASP的内置对象。?ASP中常用的内置对象包括:Request对象、Response 对象、Application对象、Session对象和Server对象。 6.3 ASP的内置对象(续)?Request对象:用来获取从浏览器发送到服务器的请求信息,并读取表单中提交的数据或Cookies中的数据。?Response对象:用于将服务器端的数据发送到客户端,向浏览器输出文本、数据及Cookies,并控制传送ASP网页过程的每一个阶段。?Application对象:用来存储、读取用户共享的应用程序信息,为应用程序的所有使用者设置属性,并传送信息给使用者。? ?Session对象:用来存储、读取特定用户的对话和相关信息。 Server对象:在服务器端脚本中通过实例和使用其他外部对象和组件,提供了一种扩展ASP网页功能的方法。 Request对象?用于接收客户端请求一个页面或者传递一个表单Form时,客户端 提供的全部信息,包括从HTML表格用POST或GET方法传递的参 数、cookies和用户认证等。?使用Request对象需要指定传送数据方式的集合名称,例如: Request.QueryString(“Name”),传送方式有两种:GET方式和POST 方式。?Request对象常用的集合有:QueryString、Form、Cookies、 ServerVariable和ClientCertificate。?QueryString:依附于用户请求的URL后面的名称/数值对,或作 为请求提交的且METHOD=GET的&FORM&中所有HTML控件单 元的值,每个成员均为只读。 Request对象的集合?Form:当METHOD的属性值为POST时,所有作为请求提交的&FORM&中的HTML控件单元的值的集合,每个成员均为只读。?Cookies:根据用户请求,用户系统发出的所有Cookie值的集合。Cookie仅对相应的域有效,每个成员均为只读。?ServerVariable:随同客户端请求发出的HTTP报头值,以及Web 服务器的几种环境变量的值的集合,每个成员均为只读。?ClientCertificate:当客户端访问一个页面或其他资源时,用来向 服务器表明身份的客户证书的所有字段或条目的数值集合,每个 成员均为只读。 Request对象:使用QueryString得到GET方法的数据?以下例子表示用QueryString集合从浏览器端传送客户的名字与密码给ASP文件。例子分为两个文件,即HTML文件(Login.htm)显示 浏览器上的用户的登录表,而服务器中运行的是ASP文件Log.asp Login.htm P93例6.4&HTML& &HEAD&&TITLE&Login&/TITLE&&/HEAD& &BODY& &FORM Action=“Log.asp” Method=“Get”& &P&欢迎使用我们的系统 Name&INPUT TYPE=Text NAME=UNM VALUE=“”&&BR& Password&INPUT TYPE=Password NAME=PWD VALUE=“”&&BR& &INPUT TYPE=Submit NAME=submit VALUE=“登录”& &INPUT TYPE=Reset NAME=reset VALUE=“清除”& &/FORM&&/BODY&&/HTML&? ?Log.aspP94 例6.5存在错误&%@ language=“VBScript”%& &HTML& &HEAD&&TITLE&Log&/TITLE&&/HEAD& &BODY& &% Dim UNM Dim PWD UNM=Request.QueryString(“UNM”) PWD=Request.QueryString(“PWD”) If UNW=“jnu” and PWD=“” then Response.write”注册成功!” Else Response.write”注册失败!” End If %& &/BODY& &/HTML& Login.htm Log.asp Request对象:使用Form集合获取POST方法的数据?使用GET方法只能传送较少的数据量。当数据量较大时,需要采用POST方法。POST与Form配合使用可以获取较多的信息,其中 Form表单中可以包含文本框、按钮、多项按钮、单选按钮和复选 框等。?用户单击“提交”按钮时,系统可将Form所保存的信息从客户端 传送至服务器端。?在HTML文件中,可以通过Form表单设置Method=POST来实现 POST方法,而在ASP文件中,可用Request.Form(“表单元素”) 来取得表单的相应值。 Request对象:使用Form集合获取POST方法的数据?例如:&FORM ACTION=“Login.asp” Method=“POST”&&INPUT NAME=“Username” TYPE=“Text” VALUE=“”&&HR& &INPUT NAME=“Password” TYPE=“Text” VALUE=“”&&HR& &/FORM&而在ASP程序中,可以取得用户键入的相应值:&% 用户名=Request.Form(“Username”) 密码=Request.Form(“Password”) %& Teaching.htm &HTML& &HEAD&&TITLE&POST-测试页&/TITLE&&/HEAD& &BODY& &FORM ACTION=&Teaching.asp& Method=&POST&& &TABLE&&TR& &TD align=&right& Width=&25%&&&B&姓名:&/B& &TD Width=&75%&&&INPUT Name=&Name&&&/TD&&/TR& &TR& &TD align=“right&&&B&性别:&/B&&/TD& &TD&&INPUT Type=radio Name=&Sex& Value=女&女 &INPUT Type=radio Name=&Sex& Value=男&男 &/TD&&/TR& &TR& &TD align=&right&&&B&单位:&/B&&/TD& &TD&&INPUT Name=&DW&&&/TD&&/TR& &TD align=&right&&&B&服务:&/B&&/TD& &TD&&Select Name=&Position&& &Option value=0&助教 &Option value=1&讲师 &Option value=2&副教授 &Option value=3&教授 &/select& &/TD& &/TR& &TR& &TD align=&right& Valign=top&&B&简历:&/B&&/TD& &TD&&Textarea clos=18 rows=4 Name=&Note&&&/TextArea& &P&&INPUT Type=&Submit& Name=&Submit& Value=&提交&& &/P& &/TD&&/TR&&/TABLE& &/FORM&&/BODY&&/HTML& Teaching.asp &%@ language=&VBScript&%& &HTML& &HEAD&&TITLE&post测试页&/TITLE&&/HEAD& &BODY& &% Dim Name Dim Sex Dim DW Dim Position Dim Note If Request.Form(&Name&)&&&& then Name=Request.Form(&Name&) Sex=Request.Form(&Sex&) DW=Request.Form(&DW&) Position=&& Select case Request.Form(&Position&) case 0:Position=&助教& case 1:Position=&讲师& case 2:Position=&副教授& case 3:Position=&教授& End select Note=Request.Form(&Note&) Response.write&您输入的信息为:&BR&姓名:&&Name Response.write&&BR&性别:&&Sex Response.write&&BR&单位:&&DW Response.write&&BR&职务:&&Position Response.write&&BR&其他说明:&&Note Else Response.write&&BR&对不起,请重新输入姓名&&Name End If %&&/BODY&&/HTML& Teaching.htm
Teaching.asp GET与POST方法的不同之处??post方法与get方法最大的差异在于数据传递的隐密性。post方法的数据传递方法较为隐密,不会将传递的信息显示在浏览的网址后,而get方法则会将传递的信息显示在与浏览网页网址后。?因此post方法是较常被程序设计师使用的参数传递方 式。 Response对象? ?Response对象的主要功能是向客户端浏览器发送数据。使用该对象将服务器端口的数据以HTML的超文本格式 传送给客户端的浏览器,该对象的功能与Request对象的 功能恰好相反。?这信息一般由Form表或QueryString集合送往服务器,而 些服务器端口由Request对象读取查询数据,所得的结果 由Response对象传送返回。 Response对象的属性?Buffer=True|False:设定是否启用缓冲处理,即服务器处理的页面是否立即送回浏览器。若要启用则设为True,当服务器调用了 Flush或End或将所有页面处理完后,才将页面发送到浏览器;若设为False,则表示服务器一边处理页面一边将结果送回浏览器。?ContentType:用于指定Response返回的文件类型,常用的类型有 text/html文本、jpeg/gif图象文件,其中默认类型为text/html。?Expires:设定网页保留在客户端浏览器的时间长短,即浏览器的 缓冲区中页面刷新的时间间隔。?ExpiresAbsolute:设置网页保留在客户端浏览器的日期与时间, 即浏览器缓冲区中页面刷新的具体日期或时间。 Response对象的属性????Status:服务器的状态值。例如,Response.Status=404, 表示找不到请求网页;Response.Status=505,表示服务 器内部错误。 CacheControl=“Private”|”Public”:设定是否允许代理 服务器缓存页面,如果允许,则设为”Public”;否则 设为”Private”。 Charset:将字符编码方式的名称附加到内容类型标头。 IsClientConnected=True|False:用于描述浏览器是否仍 与服务器端相连。 Response对象的方法? ?Write方法:把变量的值发送到浏览器的当前页面上。Redirect方法:可以使浏览器重定位到另一个URL,如当某用户 登录时的用户标识与密码合法,程序就转向其相应的网页。?Clear方法:用于清除缓冲区。当Response对象的Buffer属性为”True”时,Clear才有效。?Flush方法:输出缓冲区的内容到客户端,使用该方法的前提也是Response对象的Buffer属性为”True”。? ?End方法:结束ASP文件的执行。 BinaryWrite方法:用于向HTTP文件写入二进制信息(如图形、声音等)。?Cookies:用于设置Cookie的值。 Cookies集合的应用?Cookies是Web服务器设置在用户浏览器上的记录集。通常Cookies 保留在客户机的硬盘上,用于Web服务器与浏览器之间的重要信 息交换。?Cookie文件是一个文本文件,每一个Web服务器都会产生一个与网络相关的Cookie文件。它是一个服务器通过浏览器保留下的记 录器。当访问一个Web站点时,它会在本地计算机上留下一个记 号,下一次再访问同一站点时,站点的页面就会查找这个记号。?ASP脚本可以用Request.Cookies获取,以及Response.Cookies设置 这些信息。 1.向客户端写入Cookie?语法:Response.Cookies(Cookie名)(Key名).Attribute=Value?Cookie名:指定cookie文件的名称?Key:关键字,可选参数。如果指定了key,则该 cookie 就是一个字典。测试一cookie是否为一个字典,可用: &%=Request.Cookies(“cookiename”).HasKeys%&为true是字典,false则不是。?Attribute:属性,指定cookie自身的有关信息,该参数的可选 值为Domain域属性、Expires过期日期、Haskeys是否包含关键字、及Path路径属性。 ?Domain :域属性表明cookie由哪个网站产生或者读取。若被指定, 则 cookie将被发送到对该域的请求中去。默认情况下,cookie的域 属性设置为产生它的网站,但也可以根据需要改变它。 Response.Cookies(“CookieName”).Domain= “” Path:路径属性可以实现更多的安全要求,通过设置网站上精确 的路径,就能限制cookie的使用范围。如果未设置该属性,则使用 应用程序的路径。Response.Cookies(“CookieName”).Path = “/maindir/subdir/path”Expires: 指定 cookie 的过期日期。为了在会话结束后将 cookie存 储在客户端磁盘上,或希望能更长时间地在访问者的计算机上保 存cookie。必须设置该日期。例如:将cookie的使用到期时间设置 为日: Response.Cookies(&CookieName&).Expires=#January 01, 2010#?? 例6.8 服务器在客户端上建立一个Cookie,Cookie名为”Password”,值为“”,文件名为 Cookies.asp。&%@ Language=“VBScript”%& &% Response.Cookies(“Password”)=“”%& &HTML& &HEAD&&TITLE&Cookies&/TITLE&&/HEAD& &BODY& &H2&Cookie test example&/H2&&/BODY&&/HTML& 2.获得客户端的Cookie?语法:Request.Cookies(Cookie名)(Key名).Attribute?Cookie名:指定要检索其值的 cookie。??Key: 可选参数,用于从 cookie 字典中检索某关键字的值。Attribute:指定 cookie 自身的有关信息。 如:HasKeys 只读,指定 cookie 是否包含关键字。 例6.9通过留在本地磁盘上的cookie记录一年内访问本站的次数,第 一次显示“首次访问”,以后显示“第几次访问”。 &%@ Language=“VBScript”%& &% dim num num=request.cookies(&visitnum&) if num & 0 then num=num+1 Response.write &您已是第&&num&&次访问本站点了。& else Response.write &欢迎您首次访问本站。& num=1 end if response.cookies(&visitnum&)=num response.cookies(&visitnum&).expires=date+365%& showcookie.asp(从Cookies文件夹中遍历出浏览器所有的Cookiename, 以及相关的字典Cookie的显示(蓝字显示)) &% For each cookie in Request.Cookies if Request.cookies(cookie).HasKeys =false then Response.write cookie & &=& & Request.Cookies(cookie) Response.write (“ ”) Else for each key in Request.Cookies(cookie) Response.write (&&font color=blue&&) Response.write cookie&&.(&&key&&)&&&=&& Request.Cookies(cookie)(key) Response.write (&&/font&&) next end if next %&? Application对象?Application对象是个应用程序级的对象,可用来存储不同浏览器端共享的应用程序信息,如共享变量,这是因为无论有几个浏览 者同时存取该网页,服务器端都只会产生一个Application对象的实例。?一旦定义了Application对象的属性,它就会持久地存在,而不论 是否有用户在使用该应用程序,直到关闭Web服务器使 Application对象停止服务。?由于存储在Application对象中的变量可以被应用程序的所有用户 共享,因此Application对象的属性可用于应用程序的用户之间传 递信息。 Application对象?Application对象没有内置的属性,但可以使用以下格式设置用户自定义的属性: Application(“属性名”)=值例如,我们可以使用如下脚本声明并建立Application对象的一个属性。 &% Application(“MyProperty”)=“Hello” %&?Application对象常用的集合、方法和事件及其说明如下: Application对象?集合:??Contents:包含所有非对象变量,是Session对象默认的集合。 如要存取Application对象记录的变量Counter,则可以写成 Application.Contents(“Counter”)。 StaticObjects:包含所有对象变量,这些对象变量在Global.asa 文件中用&Object&标记。?方法:? ? ??Contents.Remove(item):从contents集合内删除所指定的变量。 Contents.RemoveAll:删除contents集合内的所有变量。 Lock:防止其他用户访问Application集合,保证同一时刻只能 由一个用户操作Application对象。 Unlock:用于取消Lock方法的限制,使其他用户可以访问 Application集合。 Application对象?事件:?OnStart:当Web服务器启动并允许对应用程序所包含的文件 进行请求时触发此事件。?OnEnd:当停止Web服务器或改变Global.asa文件时触发此事 件。例:使用Lock、Unlock和Application自定义属性设计一个网页访问记 数器,当客户端浏览器每次打开该网页(即建立一个连接)时,计数器 加1。为防止多个用户同时浏览该网页时可能出现的冲突,需要使用 Lock,Unlock保证每次只有一个客户连接访问记数器,具体代码如 下: &% Application.Lock Application(“VisitCount”)=Application(“VisitCount”)+1 Application.Unlock Response.write”您是本站第“& Application(“VisitCount”)&”位访客!”%& Session对象?当一个用户访问某一Web应用时,服务器为该用户创建一个Session会话对象,该Session对象存储此用户本次会话所需的信息, 如可存储用户对网站的访问状态信息等。?Session类型的变量仅供该用户在该Web应用的所有页面中共享数据。如果另一个用户也同时访问该Web应用,他也拥有自己的 Session变量,但两个用户之间无法通过Session变量共享信息,这 是与Application对象所不同的。?当用户停止会话(即关闭ASP文件或浏览器)或浏览器超过20分钟 (默认)没有存取网页时,Session对象停止。 Session对象?集合:??Timeout:用于指定该应用程序的Session对象与任一用户会话 持续时间。如果用户在规定时限之内不刷新或请求网页,则 该会话将终止。 SessionID:用于存放某一用户的会话标识。在创建会话时, 服务器通常会为每一个会话生成一个单独的标识。 Abandon:用于删除所有存储在Session对象中的对象,并释 放这些对象的资源。如果未明确地调用Abandon方法,一旦会 话超时,服务器将自动删除这些对象。 Contents.Remove(item):从contents集合内删除所指定的变量。 Item可以是字符串或整数索引值。 Contents.RemoveAll:删除Contents集合内的所有变量。?方法:??? Session对象?事件:?OnStart:当Web服务器接收到用户的HTTP请求时触发此事件, 并建立一个Session对象。 ? OnEnd:在Timeout集合指定的时间内用户没有刷新网页或调用 了Session.Abandon方法时触发此事件。 例:使用Session对象来创建某次连接访问该网页次数计数器,当在 同一个浏览器窗口内,用户每次返回该页面,计数器的值加1,具体 代码如下: &% session(“Countvisitsofauser”)=session(“Countvisitsofauser”)+1 Response.write”您在本次连接中,是第”&session(“Countvisitsofauser”) &”次访问本站!” %& Server对象??Server对象在服务器端脚本中通过实例和使用其他外部 对象和组件,提供了一种扩展ASP网页功能的方法。 Server对象常用的属性和方法如下: 属性:?ScriptTimeout:用于设置或返回页面的脚本在服务器退出执 行和报告一个错误之前可以执行的时间(单位为秒)。达到该值 后将自动停止页面的执行。缺省值为90。 CreateObject:使用外挂对象。通过此方法可以创建一个服务 器组件(即外挂对象)的实例,并返回可以在代码中使用的一个 引用。例如:Server.CreateObject(“ADODB.Connection”) Execute(url):执行一个ASP文件。其中url是指定执行的那个 ASP文件的路径。?方法:?? Server对象?方法:?HTMLEncode(“string”):将指定的字符串转换为HTML编码 形式。? ?MapPath(url):把相对路径转化成绝对路径。Transfer(url):将当前的所有状态信息发送给另一个asp文件。 其中,url是要接收此信息的asp文件的位置。 URLEncode(“string”):把字符串转化成URL编码的形式,注 意空格也一起转换。? 第六章 ASP的网络数据库编程6.1 ASP简介6.2 ASP文件 6.3 ASP的内置对象 6.4 ASP的外接组件ADO 6.4 ASP的外接组件ADO? ?ADO(ActiveX data object)是ASP技术中脚本语言与数据库系统的 主要接口技术。 ADO模型中包含了Connection、RecordSet和 Command三大对象, 结合三者功能来实现对数据库的访问。ConnectionRecordSetCommandErrorsFieldsParametersErrorFieldParameter图6.5 ADO组件结构图 ? ? ?Connection对象:用于建立数据源与ASP程序之间的连接。Errors对象:用于响应执行Connection命令时从数据源返回错误信息。 Command:对象代表一个命令,可以通过其方法执行针对数据源的有 关操作,比如查询、修改等。? ?Parameters对象:用于传送参数给Command对象,以执行SQL查询。 RecordSet对象:代表表的记录集合,RecordSet中包含了数据的游标, 用于对结果集数据进行维护或者浏览等操作。?Field接口:表示RecordSet对象中某一列数据。 Connection对象?建立与关闭Connection对象:? ?建立:&% Set vq=Server.CreateObject(“ADODB.Connection”)%& 关闭:&% vq.Close %&?建立与数据库的连接:??启用ODBC数据源: &% Set vq=Server.CreateObject(“ADODB.Connection”) strDSN= “DSN=数据源名” vq.Open strDSN %& 启用OLE DB连接数据库: &% Set vq=Server.CreateObject(“ADODB.Connection”) vq.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库文件名& %& Connection对象?Connection对象的方法:P105表6.1?Open方法: Connection.Open ConnectionString, UserID, Password, OpenOptionsConnectionString:连接字符串,可选参数。UserID:包含用户名的串,可选参数。 Password:用户的密码,可选参数。OpenOptions:可选参数,例如设置为adConnectAsync,表示连接以异步方式打开。?Close方法:Connection.Close使用该方法关闭一个已打开的Connection对象,释放相应的资源。 Connection对象Execute方法:执行指定的查询、SQL语句或存储过程。 Set RecordSet=Connection.Execute(CommandText, RecordsAffected,Options) RecordSet:用来存储Execute语句执行后所得到的查询结果。 CommandText:包含SQL语句、表名、存储过程或数据提供者指定 的文本串。 RecordsAffected:可选参数,返回受影响的即更新记录总数。 Options:可选参数,用于指定CommandText参数类型,如: AdCmdText:表明将执行一个SQL串。 AdCmdTable:表明将返回CommandText命名表的所有行和列。 AdCmdStoreProc:表明将执行数据源的存储过程。 AdCmdUnknown:表明CommandText参数中Command 类型未知。? Connection对象?BeginTrans、CommitTrans与RollbackTrans方法: Object.BeginTrans:开始一个新的事务操作。 mitTrans:保存数据的变动并结束当前事务操作。 Object.RollbackTrans:取消当前事务并恢复到事务开始以前。?Connection对象的属性:P106表6.2?ConnectionString属性:用于指定与数据库建立连接的字符串。 &%vq.ConnectionString=“Datasource=Userid=Password=” %&?Attributes属性:用于返回Connection对象的事务状态。 Connection对象?P103例6-10:设数据库Studb.mdb中表Student的结构如 下:Stuname Sex Age Addr T_email编写一段ASP程序e-10.asp,用于显示Student表的全部 内容,结果如图6.6所示。 &%@ Language=&VBScript& %& &HTML& &HEAD&&TITLE&Read Access DB&/TITLE&&/HEAD& &BODY& &H4& &% Set vq=Server.CreateObject(&ADODB.Connection&) strcon=&Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Studb.mdb& vq.Open strcon strquery=&SELECT * FROM Student& Set Rs=vq.Execute(strquery) If not Rs.eof then do while not Rs.eof Response.write&&P&&&&&H2&&&Rs(&Stuname&)&&&/H2&& Response.write&性别:&&Rs(&Sex&)&& & Response.write&年龄:&&Rs(&Age&)&& & Response.write&地址:&&Rs(&Addr&)&& & Response.write&E-mail:&&Rs(&T_email&)&& & Rs.movenext Loop Else Response.write&没有查到记录!& End If Rs.Close Set Rs=nothing %&&/H4&&/BODY&&/HTML& e-10.asp 图6.6 e-10.asp的执行结果 RecordSet对象?建立RecordSet对象:Set rs=Server.CreateObject(“ADODB.RecordSet”)&%rs.Open “select * from emp”,”DSN=SUID=PWD=”%& 字符串”ADODB.RecordSet”用来建立RecordSet对象的标识码。该字符串传给操作系统后,可建立相应的RecordSet对象。rs.Open是在 已建立的对象上执行一个SQL查询,并获取一个记录集。这里RecordSet表示执行一个Command对象后返回的记录集合。表格的列名(字段)由RecordSet的Fields集合表示,该集合中每一个对象 RecordSet对象?数据库的操作:?读取数据记录: 变量=rs(“字段名”) 添加数据记录: rs.AddNew rs.Update 添加一条记录 更新一条记录?P108 例6-12:在例6-10中的数据库Studb.mdb的表Student中添加一个新记录。 &%@ Language=&VBScript& %& &HTML& &HEAD&&TITLE&Append mdb&/TITLE&&/HEAD& &BODY& &% sql=&select * from Student& Set vq=Server.CreateObject(&ADODB.RecordSet&) vq.Open sql,&Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Studb.mdb&,0,2 vq.AddNew vq(&Stuname&)=&rachel& vq(&Sex&)=&女& vq(&Age&)=&25& vq(&Addr&)=&aaa& vq(&T_email&)=&bbb& vq.Update vq.Close Set vq=nothing %& &/BODY& &/HTML&e-12.asp 图6.7 e-12.asp的执行结果图6.8 再执行e-10.asp查看 student表的全部数据 RecordSet对象的方法?打开、关闭和复制RecordSet的方法:?Open方法:可以打开一个记录集。其语法格式为:RecordSet.Open Source, ActiveConnection,CursorType, LockType, Option其中, Source:表示一个Command对象名、SQL字符串、表名和存储过程。ActiveConnection:表示一个连接对象名。CursorType:表示打开RecordSet对象时的光标类型。 LockType:表示打开RecordSet对象时的锁定类型。 Option:表示如何处理RecordSetSource中的信息,通过使用这个参数 可优化对RecordSet的处理。 RecordSet对象的方法??Close方法:用于关闭RecordSet对象。其语法格式为: RecordSet.Close 注意: Close方法并不能清除RecordSet对象,如果要清除: &% vq.Close Set vq=Nothing %& Clone方法:用于建立一个RecordSet对象的拷贝。其语法格式为: Set CloneRecordSet=RecordSet.Clone LockType 其中,LockType的可选值有以下两个常数值: -1(AdLockUnspecified):表示默认的拷贝锁定类型与源记录锁定 类型相同。 1(AdLockReadOnly):表示锁定类型是只读的。 RecordSet对象的方法?在RecordSet中移动或更新数据的方法:?Move方法:用于移动指针到一个RecordSet对象的指定位置 RecordSet.Move N, Start其中,N:为一个有符号的整数,指示从起点开始移动了N条记录。N为 正整数时,表示指针向记录号大的方向移动。为负数时相反。Start:可选参数。其取值可以是:0 (AdBookMarkCurrent):默认值,表示从当前记录开始移动。 1 (AdBookMarkFirst):表示从第1条记录开始移动。 2 (AdBookMarkLast):表示从最后一条记录开始移动。 RecordSet对象的方法?MoveFirst等方法:用于移动RecordSet对象光标。RecordSet.MoveFirst:将光标移动到第1条记录。 RecordSet.MoveLast:将光标移动到最后一条记录。RecordSet.MoveNext:将光标移动到下一条记录。RecordSet.MovePrevious:将光标移动到前一条记录。?GetRows方法:从数据源中取得多条记录并放到数组中。Array=RecordSet.GetRows(Row, Start, Fields)其中, Rows:指出需要的记录个数,默认情况下将所有记录取出。Start:可选参数,表示起始点。取值同表6.3Fields:指定用户所需要的字段名或字段名集合。 RecordSet对象的方法?Requery方法:用于重新执行一次查询来更新RecordSet对象的数据。RecordSet.Requery?Resync方法:用于从数据源取出记录以更新当前RecordSet对象中 的数据。 RecordSet.Resync AffectedRecords, ResyncValues?NextRecordSet方法:用于清除当前的RecordSet对象,并返回一个 RecordSet对象。Set RecordSet2=RecordSet1.NextRecordSet, RecordsAffected RecordSet对象的方法?编辑和修改数据的方法:?AddNew方法:用于为RecordSet对象增加一条记录。 RecordSet.AddNew Fieldlist, Values?Delete方法:删去RecordSet对象的一条或一组记录。RecordSet.Delete Affect Update方法:用于将修改后的记录存入数据库中。?RecordSet.Update Fields Values?Supports方法:用于判定当前RecordSet对象所支持的功能类型。 返回值=RecordSet.Supports(CursorOptions) 其中,返回值为布尔值,表示RecordSet是否支持CursorOptions选 项。 RecordSet对象的属性:表6.5?RecordSet对象的工作属性:? ?Active Connection:用于指定当前的Connection对象。 Source:用于设置和返回一个字符串。该属性指明RecordSet组件内数据的来源,可以是Command对象、SQL语句、表名或存储过程。?RecordSet对象的行为属性:?CusorType:用于设置或返回RecordSet所用的游标类型。取值:0(AdOpenForwardOnly):默认值,静态游标,只能向前浏览记录集 1(AdOpenKeyset):动态游标,对其他用户增加记录不可见。 2(AdOpenDynamic): 动态游标,对其他用户的记录更新可见。3(AdOpenStatic):静态游标,为记录集产生静态备份,可供前后查找,对其他用户更新的记录不可见。 RecordSet对象的属性:表6.5?LockType:用于指定当前的锁定类型。取值:1 (AdLockReadOnly):默认值,打开RecordSet时,不可更新数据。 2 (AdLockPessimistic):悲观的封锁方式,较为安全。 3 (AdLockOptimistic):乐观的封锁方式,用户可以在调用Update时 才锁定记录。 4 (AdLockBatchOptimistic):编辑时记录不会被锁定,而更新是在 批处理方式下进行的。?Filter:该属性表示RecordSet中对数据进行处理的过滤器,可以设置为以下字符串或数值: 由AND或OR组成的逻辑表达式。指向RecordSet对象的唯一BookMark数组。也可以取0~4的常数值。 RecordSet对象的属性:表6.5?记录指针移动的属性:?BookMark:该属性表示当RecordSet对象允许使用BookMark时,会 给每个记录唯一的BookMark标识,以识别当前记录或 设置至BookMark所指定的位置。?BOF:BOF属性表示当前记录是否在RecordSet的首记录之前,并返回布尔值。当BOF为真,指示当前记录指针已移至第一条记录之 前。?EOF:EOF属性则表示记录指针是否在RecordSet的末记录之后,并返回相应的布尔值。当EOF为真,指示当前记录指针已移至最 后一条记录之后。?PageSize:表示在RecordSet对象内构成一个网页的记录条数,默认值 为10。 Command对象?建立Command对象:??利用已建立的Connection对象来建立Command对象 &% Set Pa=Server.CreateObject(“ADODB.Connection”) Pa.Open “Driver={Microsoft Access Driver(*.mdb)}; DBQ=”&Server.Mappath(“test\emp.mdb”)&”;”3,3 Set Pb=Server.CreateObject(“mand”) Pb.ActiveConnection=Pa %& 单独创建一个Command对象 &% Set Pb=Server.CreateObject(“mand”) Set Pb.ActiveConnect=“DSN=UID=PEW=…” %& Command对象?基于Command对象的查询:?使用Command对象的Execute方式 &% Set vs=Pb.Execute %&vs表示Command对象所返回的RecordSet记录集合。?使用Command对象的Open方式 &% vs.Open Pb, Pa%&这里,vs是一个已建立的RecordSet对象,Pb是一个已建立的Command对象,而Pa是一个Connection对象。 通过RecordSet对象的Open方法来执行CommandText属 性所指定的查询。 Command对象?Command对象的方法:?Cancel:该方法用于消除一个未确定的异步执行的Execute方法。 Command.Cancel?CreateParameter:用于创建一个新的Parameter对象。Set Parameter=Command.CreateParameter (Name,Type,Direction,size, value)?Command对象的属性:表6.8?CommandType属性:用于指示Command对象的类型。具体参数 如表6.9?Prepared属性:表示在调用Command对象的Execute方法时,是否将查询的编译结果保存下来,其结果返回一个布尔值。 ADO数据存取模型:应用程序/浏览器ADOOLE DBODBCSQL数据源 SQL Server,Oracle, Jet,FoxPro和其他非SQL数据源 Email,Video,目录,正文 和其他服务主框架和 传统数据图6.9 ADO数据存取架构 ADO连接数据库的两种方式?ADO可以通过OLE DB直接连接数据库,或由OLE DB通过ODBC连接数据库。?通过ODBC的DSN连接数据库:?使用系统数据源,其连接字符串为:strDSN=“DSN=系统数据源名;UID=数据库的用户名;PWD=密码”?使用文件数据源,其连接字符串为: strDSN=“FILEDSN=文件数据源名;UID=数据库的用户名;PWD=密 码”?ODBC的无DSN连接: strConn=“Driver={Microsoft Access Driver(*.mdb)}; Dbq=mysite\chaxun\chaxun.Uid=APwd=;” ADO连接数据库的两种方式(续)?使用OLE DB连接字符串连接数据库:连接字符串是一组包含数据库连接信息的字符串值。?以下字符串指向Access数据库: strConn=“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mysity\chaxun\chaxun.mdb”?以下字符串指向SQL Server: strConn=“Provider=SQLOLEDB;Server=Your_Server_NDat abase=MyS&_UID=your_user_PWD=your_passwor d” ASP网络数据库编程实例例6.1 使用ASP的ADO组件实现一个网上产品数据库查询操作,产 品数据存放在MS Access中。具体功能如图6.10所示,即当在(a)图中 根据选择的查询字段输入相应关键字后,按”提交查询内容”按钮 则 显示图(b)的结果。图6.10 例6.1运行的结果(a) ASP网络数据库编程实例图6.10 例6.1运行的结果(b) ?首先,在Access中建立数据库,其中数据库表如下图所示。 ?然后,将该数据库添加入ODBC数据源列表中,如下图所 示: ?接下来编程实现数据库查询,这里共使用了两个文件,其中,第一个文件QueryTest.asp用于接收用户查询请 求;第二个文件search.asp用于实现查询功能,并用表 格形式返回查询结果。 QueryTest.asp&html& &head&&title&商品查询&/title& &body& &form action=&search.asp& method=&get&& 请选择查询类别 &select name=&Kind&& &option&类别 &option&品牌 &option&型号 &option&厂商或供货商 &/select& 请输入查询关键字 &input type=&text& name=&Keyword&& &br&&br& &input type=submit name=&query&& &input type=reset name=&reset&& &/form& &/body& &/html& search.asp&% Dim Kind,Keyword Kind=Request(&Kind&) Keyword=Request(&Keyword&) %& &HTML& &BODY& &% Dim objRS,sql Set objConn=Server.CreateObject(&ADODB.Connection&) strDSN=&DSN=chaxun& objConn.Open strDSN Set objRS=Server.CreateObject(&ADODB.RecordSet&) sql=&select * from fenlei where &&Kind&& like '%&&Keyword&&%'& objRS.Open sql,objConn %& &table border=&1&& &tr& &% For i=0 To objRS.Fields.Count-1 Response.Write&&th&&&objRS.Fields(i).Name&&&/th&& Next %& &/tr& &% Do While Not objRS.EOF Data=&&tr&& For i=0 To objRS.Fields.Count-1 Data=Data&&&td&&&objRS.Fields(i).Value&&&/td&& Next Response.Write Data&&&/tr&& objRS.MoveNext Loop objRS.Close Set objRS=Nothing objConn.Close Set objConn=Nothing %& &/table& &/body& &/html&

我要回帖

更多关于 QQ音乐听歌加速QQ怎么没有了 的文章

 

随机推荐