600 likes | 766 Views
Web 程序开发技术 ASP. 1 ASP 概述 : Active Server Pages (动态服务器主页)简称 ASP ,内含 于 Internet 服务程序 IIS 中,是 Microsoft (微软)公司开发的 服务器端直译软件。它能够把 HTML 、脚本语言、 ActiveX 组件等 有机地结合在一起,创建动态、交互式网页。 动态网页实质上是建立在 B/S 模型上的服务器端脚本程序, 其运作模式可以描述为:请求→处理→应答。 从浏览器提交的请求通过 Web 服务器给应用程序服务器,由 其调用相关的网页应用程序进行处理,并将处理结果(网页)
E N D
Web程序开发技术ASP 1 ASP概述: Active Server Pages(动态服务器主页)简称ASP,内含 于Internet 服务程序IIS中,是Microsoft(微软)公司开发的 服务器端直译软件。它能够把HTML、脚本语言、ActiveX组件等 有机地结合在一起,创建动态、交互式网页。 动态网页实质上是建立在B/S模型上的服务器端脚本程序, 其运作模式可以描述为:请求→处理→应答。 从浏览器提交的请求通过Web服务器给应用程序服务器,由 其调用相关的网页应用程序进行处理,并将处理结果(网页) 返回Web服务器,然后由Web服务器把该网页作为对请求的应答 发送至客户端浏览器。即一幅浏览器端显示的网页,是一段服 务器端程序运行的结果。
1.1 ASP的特点 • 一个ASP文件相当于一个可执行文件,不需编译或链接就可直接解释执行。 • 使用常规文本编辑器,如Windows的记事本或写字板就可编辑ASP脚本。 • 独立于浏览器。由于ASP脚本是由服务器解释执行,并生成标准的HTML文件,客户端只要使用可解释执行HTML代码的浏览器就可以浏览ASP的网页。 • ASP的源程序代码不会传到用户浏览器,保证了源程序代码的安全和知识产权。 • 具有强大的面向对象功能和可扩充性。ASP提供了6大类内置对象,因而扩充了ASP的功能。 • 一个ASP文件是由HTML标记、文本和脚本(VBScript或Jscript脚本)命令组合而成,是以.asp为扩展名的文本文件。
1.2 ASP的工作原理 一、ASP的工作原理概括为如下几步: • 用户在浏览器网址栏中输入ASP文件名,回车触发该ASP申请; • 浏览器发送ASP请求给IIS; • Web服务器响应该请求,如果ASP请求中只有HTML标记,不经任何处理直接将它送回浏览器,在浏览器端执行; • 如果是ASP脚本程序,则Web服务器调用ASP引擎解释执行,生成一个标准HTML页面;若脚本命令中涉及到对数据库的访问,就通过数据库访问组件实现对数据库的连接操作,并将执行结果动态生成一个HTML页面返回Web服务器端,然后与非脚本的HTML合并成完整的HTML页面送回客户端浏览器; • HTML页面被浏览器解释执行并显示。
1.2 ASP的工作原理 二、ASP请求与HTML请求的比较: 对Web服务器来说,ASP和HTML请求有着本质的区 别,HTML是不经任何处理返回给浏览器,而ASP的每个 脚本命令都将被解释执行,生成标准HTML文件,并允 许生成动态内容。 对浏览器而言,ASP和HTML请求几乎是没有区别, 仅仅是扩展名为.asp和.htm的不同。无论在客户端提 出HTML申请,还是ASP申请,浏览器接受的仍然是HTML 格式的文件。
1.4 ASP的文件结构 一、ASP文件的结构 • HTML标记 • 客户端脚本程序:通常用<Script>…</Script>”定界符括起来。 • 服务器端脚本程序:用“<%…%>”定界符括起来。 • 使用#INCLUDE语句在Web页面中嵌入其他Web页面。 要编写一个ASP程序可以使用最简单的记事本,也可 以用FrontPage、Dreamweaver等网页制作工具,并将它 保存为.asp为扩展名的文件。 下面是使用记事本创建的ASP文件index.asp,保存在 虚拟目录E:\sample下。
二、一个ASP文件实例 演示
三、运行ASP文件 在浏览器地址栏输入http://127.0.0.1/index.asp后回车,浏览器 以不同字体和颜色显示一段“请注意,我在长大!”的汉字。此时右击页 面,选择“查看源程序” ,经服务器执行后的HTML文档如下 执行后的ASP源程序 以标准HTML格式显示 可防止ASP源代码泄漏
1.5 ASP的指令 一、输出指令 格式:<%=expression %> 功能:该输出指令向浏览器显示信息。 例如,执行<font size=<%=i%> color=<%=colour%>>语句 浏览器端变为标准HTML格式:<font size=3 color=red> 二、处理指令 格式:<%@ keyword %> 功能:该指令为ASP提供处理.asp文件所需信息。 处理指令主要的2个关键字: ① language关键字设置页的脚本语言 ② codepage关键字设置页的代码页 例如,命令:<%@ language=Jscript codepage=932 %> 设置了脚本语言和代码页。
2 VBScript、HTML和ASP的综合应用 一、简介 ASP不是一种脚本语言,它却为嵌入HTML中的脚本语言提供 了运行环境。ASP中常用脚本语言有VBScript和Jscript,系统 默认为VBScript。 VBScript脚本程序既可在客户端,也可在服务器端执行: • 用“<%...%>”定界符括起的VBScript脚本在服务器端执行; • 包含在HTML标识<script>和</script>之间的VBScript脚本,是在客户端还是服务器端执行,由Runat属性决定。 <script>对象有2个属性 language属性用来指定脚本语言的类型,缺省language属 性,系统默认为VBScript。 Runat属性用来指定脚本语言是在客户端还是服务器端执 行,缺省Runat属性,系统默认是客户端执行的脚本程序。
二、表单与处理脚本 表单是网页中的常用组件,表单支持客户端- 服务器关系中的客户 端。当访问者在 Web 浏览器显示的表单中输入信息,然后单击提交按钮 时,这些信息将被发送到服务器,服务器端脚本或应用程序将对提交的 表单信息进行处理。
2.1 VBScript在客户端的编程应用 一、在客户端执行的VBScript脚本实例jc1.htm
2.1 VBScript在客户端的编程应用 二、在客户端执行的VBScript脚本实例jc6.asp
整个程序中只有客户端脚本和HTML语言 <script>标记包含的脚本,声明了一个过程和一个函数。 从输入文本框键入n值,单击“计算”按钮时触发output事件过程。 该过程利用浏览器对象Document从输入文本框读取n的值,调用fac函数计算n的阶乘值,然后写入输出框 VBScript源代码及分析 演示
2.2 在ASP中使用脚本 演示 一、在<%……%>之间使用VBScript脚本 一个在ASP文件中使用VBScript脚本的示例jc2.asp 用<%……%>符号包含的VBScript脚本被送到服务器端执行,并将j计数器的值存储在变量J中 ASP指令<%=j %>将变量J的当前值发送到浏览器显示为: 变量j的值为30
2.2 在ASP中使用脚本 <% =display() %> 向浏览器输出内容,这个包含在<%和%>符号之间的脚本是VBScript,调用的却是Jscript的函数。 在一个ASP文件中利用<script>标记分别在相应位置指定多种脚本语言,可弥补某种脚本语言在内置函数和方法等功能上的不足。 这是<script>标记的一个明显的优点 二、在<script>…</script>标记之间混合使用多种脚本 在一个主页中混合使用多种script脚本实例jc4.asp 演示
2.3 VBScript、HTML和ASP的综合编程 在一个ASP文件中既包含了客户端的脚本程 序,又包含了服务器端脚本程序和HTML语言,这种 混合编程使得程序的源代码难以理解和维护。所以 在编写ASP应用程序时,必须清楚地知道现在编写 的脚本是在客户浏览器端还是在服务器端执行。 此外,ASP脚本程序在语法上与浏览器端的脚 本程序相同,两者之间的差别是:在服务器端执行 的脚本不支持图形界面的方法或组件,VBScript脚 本中的某些函数在服务器端脚本中不可使用。
演示 一、一个综合实例(jc5.asp)
二、源代码分析 在以上程序中,<script>标记内的脚本定义了 一个show()过程,由于缺runat属性,被默认是客 户端脚本。 body以OnLoad事件处理在页面载入时将show() 过程调入执行,show()过程的功能是利用时间函数 对表单form1的各属性进行赋值,写上系统日期、 时间、星期几和年份。 由<% 和 %>括起来的脚本是在服务器端执行, 根据hour(now)函数的结果(几点钟),分时显示 不同的问候语。
3 ASP的常用内置对象和组件 概述: 1、ASP的内置对象 ASP中包含了许多内置对象,每种对象都有自己的方法和属 性,用来提供基本的请求、响应、会话等处理功能,不需建立 就可以在代码中直接调用它们。ASP有以下5种基本对象,如表 2所示,表中前三个对象是最常用的。
3 ASP的常用内置对象和组件 2、ASP的应用组件 ASP的应用组件是内置的服务器组件,必须建立对象以后再 使用。ASP本身自带了5个服务器组件,一个服务器组件相当于 一个对象,它提供属性和方法来使用服务器资源,完成服务器 端的大部分工作。ASP内置组件如表3所示。
3.1 Response对象和Request对象 Request对象和Response对象是用来处理HTTP的请求和响 应,实现浏览器和服务器之间数据的动态交互。 一、Request对象 Request对象对应于HTTP请求,主要功能是从客户浏览器端 得到数据,包括获取表单中的数据、查询字符串中的变量值、 客户端认证等,它有自己的数据集合、方法和属性。 常用的3种从浏览器获取数据的方式如下: ① Request.QueryString(使用QueryString方法) ② Request.Form(使用Form方法) ③ Request 第1种获取数据的方式对应于表单提交时的get;第2种对应 于表单提交时的post;其第3种是前两种的一个缩写,可以取代 前两种。
3.1 Response对象和Request对象 1、使用QueryString方法获取数据 一个对应于get提交方式获取数据,通过在URL地址后面直 接使用?带着Query(查询)字符串来传递参数的实例jc7.asp URL地址栏: http://127.0.0.1/jc7.asp?x1=20...
演示 ASP源代码及其分析 从浏览器表单文本框 x1键入值20后提交 表单提交时将Method 属性说明为 get方式 表单x1的值20作为字 符串附加在action属 性所设定的URL后面 (jc7.asp?x1=20&…) 以此传递参数x1的值 Request.QueryString (“x1”)获取所传送的 URL中x1的值 在服务器端求奇数和 并送往浏览器显示
3.1 Response对象和Request对象 2、使用Form方法获取数据 对应于表单的post提交方式,在服务器端使用Request对象 的Form方法获取表单信息并显示的示例jc8-1.asp和jc8-2.asp 浏览器表单的输入界面设计
jc8-1.asp源代码及其分析 浏览器表单界面: 诸如文本域、列表框 、复选框、单选按钮 以及下拉菜单(组合 框)等。 表单提交时将Method 属性说明为POST方式 单击表单的发送按钮 提交输入信息 服务器调用程序 jc8-2.asp对用户的 输入进行响应 演示
jc8-2.asp源代码及结果 使用Request对象的Form方法取得客户端表单发往服务器的信息,同时使用 ASP的输出指令<%=Request.Form("sex") %>向浏览器显示信息。
3.1 Response对象和Request对象 二、Response对象 Response对象与Request对象的功能刚好相反,Response 对象专门用来响应HTTP的请求,将服务器端的数据发送到客户 浏览器。Response对象也有自己的数据集合、方法和属性,下 面讲述2个常用方法。 1、使用Write方法 Response.Write的主要功能是向浏览器输出信息(变量或 字符串)。它与VBScript脚本中的Document.write的功能相 近,其区别在于:Response是ASP的对象,是从服务器向浏览 器输出信息,而Document是浏览器对象,直接向浏览器输出。
直接输出字符串和 变量值 把HTML标记以字符 串的形式直接发送 到客户端,由浏览 器解释执行。 以不同形式的Response.Write输出信息 浏览器显示页面 演示
3.1 Response对象和Request对象 2、使用Redirect方法 Response对象的Redirect方法可以根据用户输入,指示客 户端浏览器根据字符串URL下载相应地址的页面,类似于HTML中 的超级链接。 语法格式:Response.Redirect(String) 其中:参数String为网址变量或URL字符串。 例如:Response.Redirect http://www.cqu.edu.cn 通过这一方法,程序员可以为不同身份的客户指定不同的 页面或根据不同的情况指定不同的页面。 下面的网页重定向实例由两个文件组成:一个是用户登录 页面jc10-1.asp,另一个是响应用户输入而指定不同页面的处 理文件jc10-2.asp。
jc10-2.asp源代码分析 当输入表单元素后,单击“确定”按钮,文件 jc10-2.asp将从服务器端取得输入用户名称和管理 密码,根据不同的取值指引到不同的页面。 如果用户名称或管理密码为空,则页面跳转 到网站首页index.asp,拒绝到管理页面。如果用 户名称和管理密码正确设置为“htgl”和“123456”, 则跳转到网站管理页面manage.asp,否则页面仍跳 转到网站首页index.asp。
3.2 Cookie的应用 Cookie是当访问某个站点时,随某个HTML网页从服务器 发送到客户浏览器中的一小段文本信息,其中包含有关用户 信息(如用户姓名、密码等),浏览器通常将它保存在硬盘中。 它可以用在某个网站站点会话之间持久地保持数据,在 页面之间交换信息。如当在网上购物时,如果要跨页面购买, 就可以用Cookie来存放前面买的物品。这一功能还经常被用 在要求认证客户密码、电子公告板以及聊天室等ASP程序中。 ASP脚本可使用Request对象和Response对象的Cookies数 据集合,获取和设置Cookie的值。 语法格式: Request.Cookies –获取(读取)信息 Response.Cookies –设置(写入)信息
用Cookie做的计数器 演示 首先从浏览器读取Cookies变量count_visit,如果该变量存在,说 明用户已经访问过该页面,同时输出num加1后的访问次数,然后向浏览 器写入新的Cookie变量count_visit的值。 如果用户是首次访问该页面,则Cookies变量ount_visit值为空,即 变量不存在,num赋值为1,显示第1次访问,由于对一个不存在Cookie赋 值,系统就会创建这个Cookie。
3.3 Session对象 Session对象主要用来保存属于一个用户会话所需的信息 (如:客户的身份、喜好和习惯等),可让同一个用户在多 个主页之间共享信息,类似于普通应用程序中的全局变量。 Session是客户浏览器与服务器每一次会话的标识变量, 每个访问用户都可单独拥有一个Session变量,当用户在应用 程序的页之间跳转时,存储在Session对象中的变量信息不会 丢失,存在于整个用户会话中。 该对象引用语法格式:Session.属性│方法│事件 1、Session对象的属性 • SessionID属性:它唯一的标识用户身份,从而区分同一应用程序的不同用户。 • Timeout属性:为Session对象指定会话的超时时限。即用来设置每个Session的结束时间(以分钟为单位)。
3.3 Session对象 2、Session对象的方法 • Abandon方法 调用该方法结束当前用户会话并撤消当前Session对象。 3、Session对象的事件 • Session_OnStart事件 在启动时触发的事件,用于初始化变量、创建对象或运行 其他代码。 • Session_OnEnd事件 在结束时触发的事件,主要用来取消会话中的所有变量。 这2个事件保存在名为Global.asa的文件中,放在应用程序 根目录下。且每个应用程序只能有一个Global.asa文件。
3.3 Session对象 4、创建和使用Session变量 格式:Session(“变量名”)=字符串 例如:使用Session对象进行身份认证的示例jc12-1.asp和jc12-2.asp 演示 注册会员信息被赋予Session变量,对于不 同的用户,Session的name变量、age变量和 sex变量是不同的,只要Session没有结束, 每个人在网站的不同主页间浏览时,该身份 信息一直为个人保留。
3.4 Application对象 Application对象是所有在线人员的一个共同对象,当网 站服务器一开,就创建了该对象。 所有用户可对Application进行修改,并且Application 对象所创建的变量可在网页结束浏览时,仍然把变量值记录 下来,Application所创建的变量会一直存在到网站关闭或者 这个Application被卸载,它不会因为某个用户或者全部用户 离开就消失。 利用这些特点,常用Application来设计聊天室、网页计 数器等。 由于Application对象为多个用户所共享,为防止多个 用户同时访问同一网页,该对象提供了lock(锁定)和 unlock(解除锁定)两个方法来保证在同一时间只能有一个 用户对Application变量进行操作。
一个 Application网页计数器实例 Jc13.asp源代码 <% Application.lock Application("counter")=Application("counter")+1 Application.unlock %> <html> <body> <h3> 你是第<%=Application(“counter”) %>位访问本网页的用户! </h3> </body> </html> 当在浏览器中执行jc13.asp文件,并且连续单击19次“刷 新”按钮,则会显示:“你是第20位访问本网页的用户”。 演示
3.5 Cookie、Session和Application的比较 一、Cookie与Session的比较 Response对象可以建立Cookie文件来保存客户的各种信 息,Session对象也可以用来记录客户的信息,它们的概念很 相似,区别在于:Cookie是把客户信息记录在浏览器中,而 Session对象则把客户信息记录在服务器中。 二、Session与Application的比较 每个访问用户都可单独拥有一个Session对象,可让同一 用户在多个主页之间共享信息。 所有的用户公用一个Application对象,当打开网站服务 器时创建,直到网站服务器被关闭而终止。 Session对象通常被用来记录单个用户的信息(身份、密 码等),Application对象则被用来记录所有用户的公共信 息,如主页访问计数器、公共讨论区等信息。
3.6Server对象 Server对象是与服务器关系最密切的ASP内置对象,是专 为处理服务器上的特定任务而设计。它提供对服务器上的方 法和属性进行的访问,主要是建立ASP以外而存在于服务器端 的各种组件,如创建ActiveX组件。 一、Server对象的CreateObject方法的使用 Server对象的CreateObject方法可以用来创建服务器组件 或组件中某一对象的实例。在ASP中,除了6大内置对象外, 如果要使用其他外置对象或组件,都必须通过Server对象的 CreateObject方法来建立。 格式:Serve.CreateObject(progID) 功能:创建由progID标识的对象(一个组件、应用程序 或脚本对象)。 例如:创建数据库访问组件ADO的对象实例 <% set conn=Server.CreateObject("ADODB.Connection ") %>
3.6Server对象 用该方法建立的对象实例仅在创建它的页面中有效,即 当ASP处理完该页面后,对象自动消失。如果要在其他页面中 使用该对象,可将该对象实例保存在Application或Session 对象中。例如: <%set Session("conn")=Server.CreateObject("ADODB.Connection")%> 二、创建其他ASP内置组件的对象实例 • 创建广告轮播器组件的对象实例 <% set Ad=Server.CreateObject("MSWC.AdRotator") %> • 创建浏览器功能组件的对象实例 <% set lgz=Server.CreateObject("MSWC.BrowserType") %> • 创建文件访问组件的对象实例 <% set fs=Server.CreateObject("Scripting.FileSystemObject") %> • 创建内容链接组件的对象实例 <% set CL=Server.CreateObject("MSWC.Nextlink") %>
4 使用ADO组件访问数据库 ADO(ActiveX Data Object)技术是微软公司推 出的数据库链接技术,是一组优化的访问数据库的对 象集,可以实现对各种数据库的链接、查询和存取等 操作。 ADO与ASP结合,已成为ASP的内置组件。使用ADO 数据库访问组件可制作出功能完善的动态数据库网 页。 制作数据库网页,首先要建立服务器端的数据 库,一般可选择Access或者SQL Server作为后台数据 库。然后可通过执行结构化查询语言SQL命令来输 入、查询、更新和删除网站服务器的数据库信息。
4.1 建立Web数据库 为了更好地使用ADO,必须了解后台数据库的建立以及SQL 命令的简单使用。SQL Server 2000是一个高性能的关系数据库 管理系统,用它来建立Web数据库。 一、关系数据库 关系数据库系统采用关系模型作为数据库的组织方式,该 模型将数据库作为一个关系集合表示出来。 例如:关系RS(员工档案)如表4所示
4.1 建立Web数据库 二、关系的基本概念 ① 关系:一个关系对应一张表,如RS关系表。 ② 元组:表中的一行即为一个元组(记录),如职工号为86001 的记录。 ③ 属性:表中的一列即为一个属性(字段),具有属性名,如 职业、姓名等。 ④ 关键码:表中的某个属性组,它可以唯一确定一个元组, 如职工号。 ⑤ 分量:元组中的一个属性值,如86003元组中的属性名为 “职业”的值是“干部”。 ⑥ 域:属性的取值范围。 现在使用的大多数数据库都是关系数据库,它概念简单, 无论实体还是实体间的联系都用关系表示,并且具有更高的数 据独立性和更好的安全保密性。
4.1 建立Web数据库 三、使用SQL Server的企业管理器建立后台数据库 1、用企业管理器创建数据库WebDb 操作步骤如下: ① 选择 “开始”/“程序”/“Microsoft SQL Server”/“企业 管理器” ; ② 在打开企业管理器界面右击“数据库”,然后选择“新建 数据库”命令; ③ 在“名称”框输入数据库名WebDb,单击“确定”。 2、用企业管理器在WebDb数据库中创建数据表RS 操作步骤如下: ① 打开企业管理器,在“WebDb”树型列表中,右击“表”,选 择“新建表”; ② 在“列名”栏输入字段名,在“数据类型”栏选择类型,在 “长度”栏输入数值,依次将RS关系表的各字段进行设置; ③ 单击左上角的“保存”按钮,在弹出的“选择名称”对话框 输入表名RS,然后单击“确定”按钮。
4.1 建立Web数据库 3、使用企业管理器向数据表RS添加记录 操作步骤如下: ① 打开企业管理器,在“WebDb”的树型列表中,双击“表”, 然后在右窗格中右击RS,选择“打开表”/“返回首行”菜单选项, 弹出添加数据窗口 ② 在窗口添加关系表RS中86001~86006共6条记录数据。 在SQL Server 2000环境下演示建立数据表的全过程。
4.2 结构化查询语言SQL简介 SQL(Structured Quey Language)是结构化查询语言的缩写,是一种标 准的关系数据库查询语言,绝大多数数据库管理系统 (Oracle、Sybase、 SQL Server、Foxpro、Access)都支持SQL语言。 SQL语句对数据表的四大常见操作是:查询、添加、删除和修改。由 SELECT,INSERT,DELETE和UPDATE四个语句实现。 1、SELECT查询语句 格式:SELECT 目标列 FROM 基本表 [WHERE 条件表达式] [GROUP BY <列名1>[HAVING 滤波条件表达式]] [ORDER BY <列名2> ASC|DESC] 功能:从基本表中找出满足条件的记录,按SELECT子句中的目标列形成 结果表。如果有ORDER子句,结果按列名2升序或降序排列;如果有GROUP子 句,结果按列名1分组,HAVING短语是分组条件。 例如:在Student表中,列出微机班且性别为男的学生情况,并按成绩 升序排列。 SELECT 姓名,班级,性别,成绩 FROM Student WHERE 班级='微机' AND 性别='男' ORDER BY 成绩
4.2 结构化查询语言SQL简介 2、Insert插入语句 格式:INSERT INTO 表名[(字段名[,字段名]…)] VALUES (常量[,常量]…); 或者:INSERT INTO 表名[(字段名[,字段名]…)] 子查询 功能:把一个新记录插入指定的表中或把子查询的结果插入表中。 例如:把一个新学生:学号870023、姓名李佳、女、信息1班、成绩 85,插入到Student表中。 INSERT INTO Student (学号,姓名,性别,班级,成绩) VALUES('870023', '李佳', '女','信息1班',85) 3、UPDATE修改语句 格式:UPDATE 表名 SET 字段=表达式[,字段=表达式]… [WHERE 条件] 功能:修改指定表中满足条件的记录,把这些记录按SET子句中的表达式 修改相应字段上的值。一次只能更新一个表。 例1:把Student表中姓名为“李佳”的学生,班级改为“信息2班” UPDATE Student SET 班级='信息2班' WHERE 姓名='李佳' 例2:把S1表中所有学生的年龄加2 UPDATE S1 SET 年龄=年龄+2
4.2 结构化查询语言SQL简介 4、Delete删除语句 格式:DELETE 表名 [WHERE 条件] 功能:从指定表中删除满足条件的那些记录。无WHERE短语时表示删去表 中的全部记录。 例1:在Student表中删除姓名为“李佳”的学生 DELETE Student WHERE 姓名='李佳' 例2:删除Student表中所有学生 DELETE Student 5、WHERE条件中一些特殊关键字的用法 参见表8.6所示: