Download presentation
Presentation is loading. Please wait.
Published by琇 苏 Modified 8年之前
1
第二节 ASP 内建对象 ASP 提供了五个内建对象来提供更高一级的 Web 功能,它们是: · Request :从客户端获取信息; · Response :将信息送给客户端; · Server :创建 COM 对象和 Scripting 组件等; · Session :存储单个用户的信息; Application :存放同一个应用程序中的所有用户之间的信息。
2
第二节 ASP 内建对象 一、利用 Request 对象从客户端获得信息 1 Request 对象简介 Request 对象用来获得客户端信息,共有 5 种获取方法,分别是 QueryString,Form,Cookies,ServerVariables,ClientCertificate 例如: <% Request.Form(“user_name”) Request.QueryString(“user_name”) %>
3
第二节 ASP 内建对象 一、利用 Request 对象从客户端获得信息 说明:传入的参数是要得到该信息的变量名称。 2 使用 Form 获取方法 先来看一个简单的例子 4-1.asp
4
第二节 ASP 内建对象 Form 获取方法示例 1 a + b
5
第二节 ASP 内建对象 4-2.asp 简单的计算器 Form 获取方法示例 1 <% Dim a,b,c a=Request.Form("a") b=Request.Form("b") c=CInt(a)+CInt(b) ‘ 因为传送的是字符串,所以须转换类型 Response.Write "a+b 的和 =" & CStr(c) %>
6
第二节 ASP 内建对象 注意: 标记中的 action 属性表示将信息传递给哪 一个 asp 文件处理; Method 属性表示上传表单的方法,一般用 post 在 4-2.asp 中,声明了几个变量,变量名字和表 单中的元素名字相同, a=Request.Form(“a”) 主 要是为了程序易读。前面的 a 是声明的变量,后 面的 a 表示表单中文本框的名字。两者可以不一 致。 4-1.asp 并没有使用 ASP 语句,所以可以改为 4- 1.htm
7
第二节 ASP 内建对象 在上面的例子中,客户端在 4-1.asp 中输入内容 后,单击确定按钮,就可以将信息传送给 4- 2.asp ,在 4-2.asp 中对传过来的信息进行各种处 理。事实上,也可以将上面的两个文件合成一个 文件,也就是说,可以将表单信息传送给自身。 实现方法只要令 action=“” 或自身文件名。
8
第二节 ASP 内建对象 Form 获取方法示例 2 a + b
9
第二节 ASP 内建对象 <% If Request.Form("a")<>"" and Request.Form("b")<>"" Then ' 这一句很重要 Dim a,b,c a=Request.Form("a") b=Request.Form("b") c=CInt(a)+CInt(b) Response.Write "a+b 的和 =" & CStr(c) Else Response.Write " 请输入两个整数后按确定按钮 " End If %> 思考 : 如果 a,b 中有一个文本框中输入了数据就需要进行计算, 没有输入的用数字 0 代替. 请完成代码.
10
第二节 ASP 内建对象 程序说明: ( 1 ) If Request.Form(“a”)<>“” and Request.Form(“b”)<>“” Then 这个判断语句表示, 如果输 入了两个整数, 就显示相加, 否则显示提示信息.
11
第二节 ASP 内建对象 2 使用 QueryString 获取方法 在一个网页向另一个网页过渡时,如果通过 URL 携带传递 信息,这类信息要用 QueryString 获取方法取回返回变量及 其值 如 :4-6.asp QueryString 用法示例 请单击下面的超链接 显示
12
第二节 ASP 内建对象 4-7.asp QueryString 用法示例 <% Dim name,age name=Request. QueryString ("name") ' 返回姓名 age=Request. QueryString ("age") ' 返回年龄 Response.Write " 您的姓名是: " & name & " ,您的年龄是: " & age %>
13
第二节 ASP 内建对象 3 ServerVariables 获取方法 当我们希望知道服务器端或客户端的一些信息时, 如客户 端的 IP 地址, 可以利用 Request 对象的 ServerVariables 方法可 以方便地取得服务器端的环境变量信息. ServerVariables 的语法格式: Request. ServerVariables (“ 环境变量名 ”)
14
ServerVariables 获取方法 例子: 4-8.asp …… <% Dim IP IP=Request.ServerVariables("REMOTE_ADDR") Response.Write " 来访者 IP 地址是: " & IP &" " Dim local_IP local_IP=Request.ServerVariables("Local_ADDR") Response.Write " 服务器的 IP 地址是: " & local_IP %> ……
15
在装有 IIS 的测试服务器上, 本机的 IP 地址是 127.0.0.1, 所以 Dim IP IP=Request.ServerVariables("REMOTE_ADDR") Response.Write " 来访者 IP 地址是: " & IP &" “ 将上述代码存为 ip.asp, 如果在浏览器的地址栏中输 入 :http://localhost/myweb1/ip.asp 将在页面上显示 ” 来访者 IP 地址是 :127.0.0.1”
16
假定用 ipconfig 得到的本机的真实 IP 地址是 192.168.1.105, 还是下面代码 Dim IP IP=Request.ServerVariables("REMOTE_ADDR") Response.Write " 来访者 IP 地址是: " & IP &" “ 将上述代码存为 ip.asp, 如果在浏览器的地址栏中输 入 :http://192.168.1.105/myweb1/ip.asp 则将在页面上显示 ” 来访者 IP 地址是 :192.168.1.105”
17
从上面可以看到, 如果在地址栏中用的是 localhost, 用 request.serverVariables(REMOTE_ADDR) 则显 示的是 127.0.0.1( 因为 localhost 对应的 IP 地址 是 127.0.0.1) 如果在地址栏中用的是本机的真实 IP 地址, 用 request.serverVariables(REMOTE_ADDR) 显 示的则是 :192.168.1.105
18
Request.ServerVariables("REMOTE_ADDR") :取得客户端的 IP 地址。(注:如果客户端是使用代理服务器来访问,那 取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址) Request.ServerVariables("HTTP_X_FORWARDED_FOR") :透 过代理服务器取得客户端的 IP 地址。 如果客户端没有通过代理服务器来访问,那么用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 取到 的值将是空的,因此,在程序中如果要使用此方法,则可 以这样处理:...... userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR") if userip="" then userip=Request.ServerVariables("REMOTE_ADDR")......
19
Response 对象 Response 对象可以向客户端输出信息,他的方法有: 方 法说 明 write 送出信息到客户端 redirect 引导用户端的浏览器至新的 Web 页面 end 终止处理 ASP 程序,并返回当时的状况 flush 立刻送出缓冲区的 Html 数据 clear 消除缓冲区中的所有 Html 页面 BinaryWrite 输出二进制信息
20
Write 方法 write 方法是 Response 对象最普遍、最常用的方法,它直接把信息从服务 端送到客户端,从而实现动态内容的显示。 语法格式: Response.write 字符串或变量或常量 Response.write () 建议去掉 ().
21
Write 方法 …… <% user_name=“G_Jocky” Response.Write “ 你的密码是: “ ‘ 输出字符串 Response.Write user_name ‘user_name 是一个变量 Response.Write “ 你的姓名是: " & user_name %> ……
22
Write 方法 注意: ( 1 ) Response.write 必须在 内,不能在客户端运行。 ( 2 ) Response.write 还有一种省略方法, 请看 4-9. asp
23
Write 方法 Write 方法还可以用来输出 HTML 元素 <% response.write " 比较 Write 方法输出 Html 元素 " %> 比较 Write 方法输出 Html 元素 注意 : 如果在双引号内用到双引号, 必须改为单引号
24
Write 方法 注意: ( 1 ) HTML 代码中的双引号要改成单引号。 ( 2 )在开发 ASP 程序时,如果遇到不方便进行 ASP 语句和 HTML 元素之间的切换 时,可以用 Write 方法来输出 HTML 元素。
25
Redirect 方法 在普通网页中,可以利用超链接引导客户至另一个页面,但是必须要客户单击 超链接才行。可是有时希望自动引导客户至另一个页面,比如:进行网上考试时, 当考试时间到时,应自动引导客户端至结束界面。在 ASP 中,可使用 Redirect 方 法引导客户至另一个页面。 语法格式为: Response.redirect 网址变量或网址字符串
26
Redirect 方法 <% If Request.Form("adrress")="csdn" then ‘ 将用户引至程序大本营网站 Response.Redirect "http://www.csdn.net" ElseIf Request.Form("adrress")="book" then ‘ 将用户引至网络书城 Response.Redirect "http://www.cnforyou.com" End If %>
27
Redirect 方法 注意: ( 2 )如果希望在 ASP 文件的任意地方使用 Redirect 语句,那就必须在 ASP 文件的 开头加上 这一句话。否则, Redirct 语句必 须放到 ASP 文件的开头,如果不放到 ASP 文件的开头,网页执行会出错: “ HTTP 头已经写入到客户浏览器。任何 HTTP 头的修改必须在写入页内 容之前。 ” ( 1 ) Redirct 语句中网址的写法,可以是相对地址,也可以是绝对地址。
28
Buffer 属性 Buffer 属性用来设置服务器端是否将页面输出到缓冲区,它的值为 True 或 False 。当 Buffer 为 True 时,服务器端先输出至缓冲区,在输出至缓冲区时,服 务器端不响应客户端,除非所有的服务器瑞文件被处理完毕。当 Buffer 为 False 时,服务器端直接将页面输出至客户端浏览器。 如果在 ASP 文件中任意地方用到 Redirect 方法重定向页面,则必须在文件开头 加 这一句话,否则就会报错。这是因为:在默 认状况下,服务器端直接将页面输出至客户端,当输出 HTML 元素后,又想将 网页引导到另一个页面,这是不允许的,而令 Buffer 等于 True 后,将把页面输 出到缓冲区,在缓冲区不存在这个问题,可以随时将网页引导至其他页面。
29
End 方法 End 方法用来终止 ASP 程序的执行。当 ASP 程序中遇到 response.end 语句后, 则终止程序执行(包括 asp 程序和 html 代码)。 该方法经常用在调试程序的时 候。 <% Response.Write " 这是第一句 " Response.End Response.Write " 这是第二句 " %> 这是第三句 4-11.asp
30
Cookies 的设置和读取 Cookies 是服务器嵌入用户浏览器中来标识用户的一种方法。依据 cookies 来 统计用户信息,为用户实现个性化服务。 Cookies 有两种形式:一种是会话 cookies ,另一种是永久 cookies 。前者只 在用户和服务器会话期间存在于用户的硬盘上,后者则在定义的有效期内永 久地存在于用户的硬盘上。 Cookies 变量可以实现网站的各页面之间共享这些信息。 ASP 的 Cookies 是由 response 对象的 Cookies 方法来设置的,由 Request 对象的 Cookies 方法获取。
31
Cookies 的设置(写入) 语法格式: response. Cookies( “ CookiesName ” )= 变量或字符串 response. Cookies( “ CookiesName ” )( “ 关键字 ” )= 变量或字符串 response. Cookies( “ CookiesName ” )[( “ 关键字 ” ) ]. 属性 = 变量或字符串 CookiesName : Cookies 变量名称 关键字:为可选参数, 若指定了关键字, 该 Cookies 则表示一 个集合,它可包含几个关键字,可以分别赋值 属性: Cookies 的属性 , Cookies 变量本身有一些属性,其中 有些属性是仅可写入的,有些是只读的。可设置的属性有: expires , path , Domain , Secure
32
Cookies 的设置 <% response.Cookies( “ user_name ” )=request.form( “ user_name ” ) %> 举例: <% response. Cookies( “ user ” )( “ name ” )=request.form( “ user_name ” ) response. Cookies( “ user ” )( “ sex ” )=request.form( “ user_sex ” ) response. Cookies( “ user ” )( “ hobby ” )=request.form( “ user_hobby ” ) …… %>
33
Cookies 的设置 注意: ( 1 )设置 Cookies 时,如果该 Cookies 已经存在,则覆盖原来的 Cookies ; 如果不存在则创建一个。 ( 2 )想在 ASP 文件任何地方使用用 response. Cookies 方法设置 Cookies 变 量,必须保证 response.Buffer=true. ( 3 )防止不同站点设置的 Cookies 名一样而发生覆盖,则可在程序中设置 cookies 变量的作用域(如 domain 、 path 属性)
34
读取 Cookies 语法格式: Request. Cookies(“CookiesName”)[( 关键字 )] 读取不包含关键字的 Cookies <% response. Cookies( “ user_name ” )=request.form( “ user_name ” ) response.write request. Cookies( “ user_name ” ) %>
35
读取 Cookies 语法格式: Request.Cookies(“CookiesName”)[( 关键字 )] 读取包含关键字的 Cookies <% response. Cookies( “ user ” )( “ name ” )=request.form( “ user_name ” ) response. Cookies( “ user ” )( “ sex ” )=request.form( “ user_sex ” ) response. Cookies( “ user ” )( “ hobby ” )=request.form( “ user_hobby ” ) response.write request. Cookies( “ user ” ) ( “ name ” ) response.write request. Cookies( “ user ” ) ( “ sex ” ) response.write request. Cookies( “ user ” ) ( “ hobby ” ) %>
36
读取 Cookies 语法格式: Request.Cookies(“CookiesName”)[( 关键字 ) ]. 属性 读取 Cookies 变量的 HasKeys 属性: <% ‘ 读取是否有关键字 response.write request. Cookies(“user”).haskeys %> 属性: Cookies 变量本身有一个只读属性: haskeys http://hi.baidu.com/zbwbao/blog/item/746701556a84ffc6b745ae 92.html
37
使用 Cookies 制作一个简单的网页计数器, 表单提交页面的代码如下:(文件名: 4-3g.htm) 用户个人资料 姓名: 性别: 男 女
38
统计本页面被访问多少次的处理程序页面(文件名: 4- 3g.asp) 的代码如下: 读写 Cookies 示例 接右边 本页面当前已被访问 " & n & " 次了。 " Response.Cookies("user")("VisitedTimes")=n Response.Cookies("User").Expires=date()+7 ' 设置名为 User 的 Cookies 的有效期为 7 天。 %> 返回上一页 ***||*** 返回教材
40
Cookies 的特点 1. Cookies 保存在用户的机子上,不是在服务器上,进行了简单的加密。 2. Cookies 的值为最近一次上网时修改后的值 不同的用户在同一台电脑上网时, Cookies 不会辨别用户的身份, 从而暴露其他客户的隐私。所以设置 cookies 一定要谨慎。 cookies 一般用于保存非重要的信息,供网站中文件共享。
41
注意 通常 Cookies 文件存放在 C:WindowsCookies 目录中 (对于 Win98/Me 系统 ) ,对于 Win2000/XP 系统, Cookies 文件通常存放在 C:Documents and Settings 中 该用户目录下的 Cookies 子目录中。 如果客户关闭 了 Cookies 选项, Session 就不起作用了。在 IE6.0 中, 点击 “ 工具 ” 菜单中的 “Inetnet 选项 ” 菜单项,打开 “Intenet 选项 “ 对话框,选择 ” 隐私 “ 选项卡,单击其 中的 ” 高级 “ 按钮,在打开的 ” 高级隐私策略设置 “ 对 话框中选中 ” 覆盖自动 Cookies 处理 “ 复选框,然后选 择 ” 拒绝 “ 选项,这时就关闭了 Cookies.
42
参考网址 ASP 入门基础教程 http://tech.ddvip.com/2006- 10/11618046459861.htmlhttp://tech.ddvip.com/2006- 10/11618046459861.html
43
课后练习 1 请开发一个页面,显示来访者的 IP 地址, 并判断:如果 IP 地址以 162.105 开头,则显 示欢迎信息;否则,显示为非法用户,并终 止程序。 2 请开发一个页面,当客户第一次访问时, 需在线注册姓名、性别等信息,然后把信息 保存到 Cookies 中。下一次如果该用户再访 问,则显示 “ 某某,您好,您是第几次光临本 站 ” 的欢迎信息。
Similar presentations