2.26k likes | 2.45k Views
9.3 ASP 编程基础. 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。 ASP 使用 ActiveX 技术基于开放设计环境,用户可以自己定义和制作组件加入其中,使自己的动态网页几乎具有无限的扩充能力。 ASP 可利用 ADO(Active Data 0bject ,微软的一种新的数据访问模型,从而使得开发基于 WWW 的应用系统成为可能。. 8.1 计算机网络基本概念. 2.ASP 的特点
E N D
9.3 ASP编程基础 9.3.1 ASP概述 1.ASP简介 ASP是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式Web服务器应用程序,如交互式的动态网页,上传与下载等等。 ASP使用ActiveX技术基于开放设计环境,用户可以自己定义和制作组件加入其中,使自己的动态网页几乎具有无限的扩充能力。 ASP可利用ADO(Active Data 0bject,微软的一种新的数据访问模型,从而使得开发基于WWW的应用系统成为可能。 8.1 计算机网络基本概念
2.ASP的特点 • 使用VBScript和JScript等简单易懂的脚本语言,结合HTML代码,完成网站的应用程序开发。 • 用ASP技术设计的网页是以 .asp为扩展名的文本文件。使用普通的文本编辑器(如记事本)就可进行编辑设计。容易编写,无须编译,可在服务器端直接执行。 • 与浏览器无关。用户端只要使用可执行HTML代码的浏览器即可浏览使用ASP技术设计的网页。ASP页面所使用的脚本语言均在Web服务器端执行,然后把执行结果传送到用户端的浏览器。
ASP的源程序只在服务器端执行,不会被传到客户端浏览器,因而可以避免源程序外泄,提高了程序的安全性。ASP的源程序只在服务器端执行,不会被传到客户端浏览器,因而可以避免源程序外泄,提高了程序的安全性。 • 可使用服务器端的脚本来产生客户端的脚本。 • ActiveX服务器元件具有无限可扩充性。可以使用Visual Basic、Java、Visual C++、COBOL等编程语言定制自己所需要的ActiveX服务器组件。
3.ASP运行环境 • (1)安装IIS 5.O • 如果操作系统是Windows 2000 Server或者是Windows 2000 Advanced Server的话,IIS 5.0已经是默认安装上的。 • 如果是Windows 2000 Professional,则需要安装IIS 5.0。从操作系统“控制面板”中找到并双击“添加/删除程序”,单击“添加/删除Windows组件”,选择“Internet信息服务(IIS)”,然后选择详细信息。
单击“确定”以后,放入Windows 2000的安装盘,出现安装界面,进行安装。最后点击“完成”按钮,完成安装。 • 安装完毕后,可以测试一下是否安装成功。打开浏览器,在浏览器的地址栏中输入 • http://localhost或者http://127.0.0.1 • 如果安装成功的话,将会出现欢迎界面。
http://localhost/localhost.asp http://localhost/iishelp/iis/misc/default.asp
(2)配置IIS 5.0 • 进入IIS的管理界面可以在“控制面板”的“管理工具”中打开“Internet服务管理器”。IIS的管理界面如下图所示。 鼠标右键点击“默认Web站点”后,选择“属性”菜 单项,在出现的对话框中选择“主目录”选项卡
选择此计算 机上的目录 选择默认的根目录,也可通过浏览来选择其他目录
首先在C盘根目录下建立一个文件夹:“asproot”,首先在C盘根目录下建立一个文件夹:“asproot”, 将网站的主目录设置到该目录下,
“主目录”选项卡文档选项,该选项的意义是:“主目录”选项卡文档选项,该选项的意义是: 如果IIS找不到默认打开的文件,就将该目录 下的所有文件列出。
在C:\asproot目录下新建一个文件 “test.txt”,点击默认Web站点, 在IIS的管理界面显示该文件。
鼠标右键点击“默认Web站点”选择“浏览” 选项卡,IIS5.0自动打开浏览器,如下图所示。
(3)测试ASP运行环境 • 例9.1让程序输出字符串“你好,中国!我的祖国”,测试ASP运行环境,程序名称:9-01.asp <html> <body> <% Response.Write "你好,中国!我的祖国!" %> </body> </html>
文件命名为9-01.asp,保存到c:\asproot目录下。在浏览器中输入http://localhost,可以看到程序列表,如下图所示。
4. ASP运行模型 • 浏览器从Web服务器上请求.asp文件时,ASP脚本开始运行。然后Web服务器调用ASP引擎,ASP引擎会全面读取请求的文件,执行所有脚本命令,并将Web页传送给浏览器。 • 由于脚本在服务器上而不是在客户端运行,传送到浏览器上的Web页是在Web服务器上生成的。ASP程序的运行与浏览器无关。由于只有脚本的结果返回到浏览器,所以服务器端的脚本不易被复制,用户看不到 ASP页的程序源代码。
5.ASP的工作原理 • Web Server对静态页面请求的处理过程: • (1)当一个用户从浏览器网址栏中输入所要浏览的Web页面的地址并按“Enter”键后,这个页面请求便通过浏览器送到对应的Web服务器。 • (2)服务器接到这个请求并根据请求文件的扩展名.htm或者.html的判断出请求一个HTML的页面是,或者扩展名为.asp,请求某种操作。 • (3)服务器从目前内存或硬盘上读取相对的HTML文件并将其传回给用户端浏览器,或者启动ASP程序,执行请求的操作。 • (4)浏览器将接收到的HTML程序解释运行并将结果提供给用户。
ASP嵌 入 式 程 序 浏 览 器 Web Server (IIS) 数据库 其它 在服务器这个ASP程序被编译 或解释运行,产生HTML文件 用户向Web服务器传送 一个.asp的页面请求 • 下图9-12所示为简化后ASP的运行过程。 传回给用户端浏览器 并由浏览器解释运行 服务器根据请求.asp的扩展名,判断 出用户要浏览的是一个ASP文件从内存 或硬盘上读取相对的ASP文件
6.创建ASP页 • 创建.asp文件非常容易。如果要在HTML文件中添加脚本,只需将该文件的扩展名.htm或.html替换为.asp就可以了。 • 脚本是一系列的命令和指令,指示Web服务器执行操作。脚本命令通过定界符与文本区别开来。ASP使用定界符<%和%>,在定界符中写入相关命令。 • 定界符括入的命令被称为主脚本命令。默认情况下,主脚本命令语言是VBScript。 • 在ASP定界符中可以包含任何主脚本语言中合法的语句、表达式、过程或操作符。
VBScript函数Now返回 当前的日期和时间 • 例9.2:用在HTML文件中添加脚本的方法创建一个.asp文件。在一个HTML页上显示该页被访问的时间,文件名为9-02.asp。 <html> <body> This paqe was last refreshed on <%=Now %> </body> </html> • Web服务器处理该页时,会使用当前的日期和时间替换<%=Now%>并且将该页返回到浏览器.
将值“Good Moming!”或值“Hello!” 存储在变量greeting中 • 例9.3根据访问网页的时间返回相应的问候语。文件名为9-03.asp。 <% if time>=#12:00:00 AM# And time<#12:00:00 PM# Then Greeting="Good Morning!" else Greeting="Hello!" end if %> <%=Greeting %> 将当前的变量值发送到浏览器
正午12点前浏览该脚本 正午12点以后浏览该脚本
7.ASP的指令 • ASP为用户提供了脚本语言以外的指令:输出指令和处理指令。 (1)ASP的输出指令显示表达式expression的值: <%=expression%> • 例如,sport变量的当前值为climbing,输出表达式<%=sport%>,将文字climbing传送到浏览器。 (2)ASP的处理指令提供处理.asp文件所需信息。 <%@keyword%> • 例如,下面的指令将VBScript设为该页的主脚本语言: • <%@ LANGUAGE=VBScript %>
处理指令必须出现在.asp文件的第一行。不要将处理指令放在包含#include语句的文件中。必须在标记(@)和关键字之间加入一个空格。处理指令有下列关键字: • LANGUAGE关键字:设置Web页的脚本语言。 • CODEPAGE关键字:设置Web页的字符编码。 • LCID关键字:设置Web页的Locale ID。 • ENABLESESSIONSTATE关键字:指定ASP页是否使用会话状态。 • 可以在单个指令中包含多个关键字;关键字/值对之间必须由空格分开,在等号(=)左右不加空格。
例9.4 下面是一个典型的在同一 .asp 文件中使用两种脚本语言的例子: <HTML> <BODY> <TABLE> <%Call Callme%> </TABLE> <%Call ViewDate%> </BODY> • </HTML> <% %> 符号是标 准的ASP定界符
<!VBScript脚本> <SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Callme Response.Write "<TR><TD>Call</TD><TD>Me</TD></TR>" End Sub </SCRIPT> < SCRIPT>和< /SCRIPT> 之间是脚本语言
<!JavaScript脚本> <SCRIPT LANGUAGE=JavaScript RUNAT=Server> function ViewDate() { var x x=new Date() 当前日期时间 Response.Write(x.toString()) 发送当前日期时间到浏览器,返回字符串形式的数值 } // </SCRIPT> UTC:协调世界时 进入
9.3.2 ASP的语句结构 1.选择结构 (1)If...Then...Else 语句 例9.5 <html> <head> <title>ifrespond.asp</title> </head>
<body> <% fname=request.querystring("Firstname") lname=request.querystring("Lastname") If fname="George" and lname="Washington“ then %> Hi.You must be the first president! <% else %> Hi! Nice to Meet You <%end if%> </body> </html>
例9.6 <html> <body> <FONT COLOR="Green"> <% If Time < #12:00:00# And Time >= #00:00:00# Then %> 早上好,今天天气不赖啊 ! <% ElseIf Time < #19:00:00# And Time >= #12:00:00# Then %> 下午好 ! <% Else %> 哈喽 ! 今晚你有没有去 IRC 聊天 ! <% End If %> </body> </html>
(2)Select Case语句 例9.7 <% fname=request.querystring("Firstname") lname=request.querystring("Lastname") name=fname+lname Select case name case "georgewashington" response.write "Hi.You must be the first president!<p>"
case "ronaldreagan" response.write "Hi.You must be the actor president!<p>" case "jimmycarter" response.write "Hi.You must be the peanut farmer president!<p> case else response.write "Hi!Nice to Meet You" End Select %>
2.循环结构 (1)Do Until ... Loop (2)Do... Loop Until 例9.8 <html> <head> <title>DoLoop.asp</title> </head> <body> <p> 请将今年到本月为止的每个月份的销售结算记录填写在本页之上。<P> <% counter=1
thismonth=month(now( )) Do while counter < thismonth+1 response.write " " & counter & " 月份 : " response.write "______________________________" & "<BR><br>" If counter > 13 then exit do end if counter = counter+1 Loop %> <hr></body> </html>
(3)For…Next语句 例9.9 <% for i=1 to 6%> <p><center><img src="smile.gif" width="32" height="32" alt="晚上好"></p> <% next %>
(4)For Each…Next语句 例9.10 <% For Each i in d <d包含hobby变量> Request.querystring("hobby") Response.Write i & "<BR>" Next %>
9.3.3 ASP的内置对象 Active Server Pages 提供内建对象,这些对象使用户更容易收集通过浏览器请求发送的信息、响应浏览器以及存储用户信息(如用户首选项)。 Application 对象 Application 对象可以使给定应用程序的所有用户共享信息。 Request 对象 使用Request对象可以从浏览器的最终用户接受请求,包括从HTML表格用POST方法或GET方法传递的参数。使用Request对象能访问发送给服务器的二进制数据,如上载的文件。
Response 对象 使用 Response 对象可以向浏览器发送信息以便向用户显示它; 发送给用户的信息。包括直接发送信息给浏览器、重定向浏览器到另一个 URL 。 Server 对象 Server 对象可以创建其他对象并确定服务器特定的属性。最常用的方法是创建 ActiveX 组件的实例 (Server.CreateObject)。其他方法用于将 URL 或 HTML 编码成字符串,将虚拟路径映射到物理路径以及设置脚本的超时期限。
Session 对象 使用 Session 对象可以维护有关当前用户会话的信息并保存和获取用户会话的状态信息。当用户在应用程序的页之间跳转时,存储在 Session 对象中的变量不会清除;而用户在应用程序中访问页时,这些变量始终存在。也可以使用 Session 方法显式地结束一个会话和设置空闲会话的超时期限。
1. Request对象 • 使用Request对象可以访问任何通过HTTP请求传递的信息,包括从HTML表格用Post方法或Get方法传递的参数、Cookie和用户认证。HTTP 请求包含当前用户的有关信息、在请求前输入的任何数据、以及告诉 Web 服务器如何处理和响应请求的参数。
Cookie 的基本工作原理。 • Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序都可以读取 Cookie 包含的信息。 • 假设在用户请求访问一个网站 www.contoso.com 上的某个页面时,网站的应用程序发送给该用户的不仅仅是一个页面,还有一个包含日期和时间的 Cookie。用户的浏览器在获得页面的同时还得到了这个 Cookie,并且将它保存在用户硬盘上的某个文件夹中。
Cookie 的基本工作原理。 • 如果该用户再次访问站点上的页面,当该用户通过URL输入这个网站的网址时,浏览器就会在本地硬盘上查找与该 URL 相关联的 Cookie。如果该 Cookie 存在,浏览器就将它与页面请求一起发送到这个的站点,网站的应用程序就能确定该用户上一次访问站点的日期和时间。网站可以根据这些信息向用户发送一条消息,也可以检查过期时间或执行其他有用的功能。 • Cookie 是与 Web 站点而不是与具体的多个页面关联的。
(2) Cookie 的用途 • 帮助 Web 站点保存有关访问者的信息。更概括地说,Cookie 是一种保持 Web 应用程序连续性(即执行“状态管理”)的方法。浏览器和 Web 服务器除了在短暂的实际信息交换阶段以外总是断开的。然而在大多数情况下,都有必要让 Web 服务器在用户请求某个页面时对用户进行识别。例如,购物站点上的 Web 服务器跟踪每个购物者,以便站点能够管理购物车和其他的用户相关信息。Cookie 的作用就类似于名片,它提供了相关的标识信息,可以帮助应用程序确定如何继续执行。
Request对象的语法如下: Request[ .集合|属性|方法](变量) • 可以使用Request对象的集合来访问信息,有Form集合和QueryString集合:。 (1)Form集合 • HTTP POST 方法用于在 HTTP 请求正文中发送表格数据,当浏览器使用 POST 方法传递请求时, Request对象的Form集合检索用POST方法发送的值,该值是HTTP请求正文中的表格元素的值。
语法格式如下: Request.Form(element){(index)|.count} 参数说明: element:指定集合要检索的表格元素的名称。 index:可选参数,使用该参数可以访问某参数中多个值中的一个。它可以是1到Count之间的任意整数。 Count:集合中元素的个数。
例9.11 本例将示范如何利用Request对象的Form集合属性来取得用户在表单中填写的信息。文件名为9-11.asp和9-11.htm。 • test9-11.htm内容如下: • <html> • <body bgcolor="#FFFFFF"> • <form method="post" action="9-11.asp"> • 姓名: <input type="text" name="yourname"><br> • 性别: <select name="gender"> • <option>男</option> • <option>女</option>
</select> <br> 留言: <textarea name="message">你好! 注意多行文本的处理</textarea> <br> 爱好(按住Ctrl键可多选): <select name="hobby" multiple size="4"> <option>电脑</option> <option>购物</option> <option>电影</option> <option>读书</option> </select> <br>