|
什么是对象? |
以前程序员开发程序中某一常用功能,需要编写大量代码。为了减轻编程难度,把实现某种常用功能的代码集中起来形成对象,方便程序员调用。
某个对象可能包含属性、方法、数据集合、事件。
比如:“一台电视机”为一个对象,其尺寸、屏幕分辨率即为其属性;打开、关闭电视机即为事件;调台、调音量即为操作方法;有线电视接收、DVD播放节目可以视为电视机收视信号(数据集合)。
|
ASP的内置对象? |
最常用的有Request对象(获得数据)、Response对象(输出数据至页面);比较常用的有Application对象(存储和获取所有用户共享的信息)、Session对象(存储一个客户信息)、Server对象(在服务器端创建某个对象实例) |
Request对象的作用? |
Request对象是ASP中最常用的对象,用于获取客户端发送来的信息,常用于获取用户所填写的表单信息(例如用户注册、论坛发贴),然后送至数据库存储。 |
Request对象获取客户端信息有哪些方式?(即数据集合) |
QueryString方式(常用):通过QueryString方法实现在页面之间传递字符
QueryString,意查询字符串,动态页面文件名后跟随问号,=号后即为向下一个页面所传递的字符串。
采用这种方式传递字符串,字符串不能多于255个,并且所传递的字符串会出现在IE地址栏中,保密性不好。
例如:第一个页面是包括以下链接,链接至第二个页面list.asp,list.asp是动态页,是栏目的分类页,内含向数据库查询栏目的ASP代码
http://www.jxcia.com/dep/youthjob/h/list.asp?t=人生价值
中的t=人生价值
list.asp获得由前面页面传递过来的字符“人生价值”,并以“人生价值”为查询条件,向数据库中t字段查询符合“人生价值”查询条件的记录,并在页面上列表显示。
list.asp中部分ASP代码:
<%
t=request.querystring("t")
sql="select * from herewr where t='"&t&"' order by id desc"
%>
再例:
http://www.jxcia.com/dep/youthjob/h/body.asp?id=112
body.asp即为查询并显示文章页,根据所传递的ID号为112,向数据库查询ID号为112的文章并输出显示。
body.asp中部分ASP代码:
<%
id=request.querystring("id")
sql1="select * from herewr where id =" & id
%>
通常用于信息发布系统中的文章分类列表和随ID号调用文章.
Form方式(最常用):从表单获取。下面有详解。
ServerVariables方法:获取服务器环境参数,包括客户端一些参数,例如服务器主机名;客户机IP;客户机上安装的操作系统等。
rr=Request.servervariables("REMOTE_ADDR")
可以获得客户机的IP地址
|
Request 对象的语法? |
Request[.数据集合|属性|.方法]("变量或字符串")
例如:
err=Request.Form("t1")
表示用Form方法从表单中获取名称为t1的表单元素的值。
id=request.querystring("id")
表示用QueryString方法获取变量或字符串
request对象采用的方法书写时可省略,即
err=Request("t1")
id=request("id") |
能不能举例说明Form方式的运用? |
表单代码如下:
<form method="post" action="">
标题:
<input name="t1" type="text">
内容:
<textarea name="t2"></textarea>
<input type="submit" value="提交">
</form>
通过ASP程序中Request对象的Form方法,把表单用户输入信息通过SQL语句送往后台数据库存储。
<%
dim t1,t2
t1=Request.Form("t1")
t2=Request.Form("t2")
conn.Execute "insert into zb(t1,t2) values ('"& t1 &"','" & t2 & "')"
conn.close
%>
这里有三种T1、T2,其代表意义不同,为了方便说明,我这里特意用不同颜色标出。
t1、t2是表单中的表单元素名称
t1、t2是变量名称
t1、t2是数据库字段名称
变量t1、t2的作用是二传手,它将表单中表单元素的值获取,然后送至数据库相应的字段中存储。见下面的图示:

此处表单中的表单元素名称、变量名称、数据库字段名称都取名为t1、t2,是为了对应的方便,其实三种的取名可以不同,例如
<%
dim qq1,qq2
qq1=Request.Form("t1")
qq2=Request.Form("t2")
conn.Execute "insert into zb(title,body) values ('"& qq1 &"','" & qq2 & "')"
conn.close
%>
变量的作用是二传手,可以省略,省略后,代码简化成:
<%
conn.Execute "insert into zb(title,body) values ('"&Request.Form("t1")&"','" &Request.Form("t2")& "')"
conn.close
%> |
表单信息传递的方式? |
表单信息传递方式有GET和POST,默认为POST,在FORM表单属性中设置。
GET方式:只能传递不超过255个字符,并且所传递的字符会出现在IE地址栏里,保密性差。接收表单页面采用Request.QueryString方式接受传递过来的信息
例如:
<form method="get" action="1.asp">
post方式:传递传递大量字符,并且所传递的字符不会出现在IE地址栏里。接收表单页面采用Request.form方式接受传递过来的信息
例如:
<form method="post" action="1.asp"> |
Response对象的作用? |
Request对象是ASP中最常用的对象,功能为输出,即向客户端浏览器发送信息。
|
Response对象有哪些常用属性? |
Buffer属性:Buffer用于指定是否将输出页面先保存到缓存。
默认为真True,即全部执行完页面中的ASP程序,最后将执行结果输出。如果设置为False,则服务器处理ASP时,每执行一条命令就将输出立即送到浏览器中,即边处理边输出。
如果页面中ASP代码使用了Response.Redirect,必须把Response.Buffer设为True
ContentType属性:该属性用来指定输出内容的类型,默认为”text/html”,即HTML格式。常用的还有image/jpeg、application/msword。
例如将图片以二进制形式存入数据库,输出时就要指定输出类型为image/jpeg
例如将WORD文档以二进制形式存入数据库,输出时就要指定输出类型为application/msword |
Response对象的方法? |
Write方法:是Response对象最常用的方法,用于向浏览器输出信息。可以在Response.write语句中加入任何HTML标记,例如加入br或p标记来换行。可以用=号省略表示,例如<%=变量%>
BinaryWrite方法:该方法主要用于写非字符串信息(如客户端应用程序所需的二进制数据等)。例如以二进制形式存储在数据库中的图片输出
Redirect方法:该方法可以用来将客户端的浏览器重向到一个新的网页,其作用有点类似于超链接。 |
什么是Cookies? |
你可能有这样的访问经历,访问某大型论坛时,页面上会显示以下信息:
欢迎您,你是第二十八次访问本论坛,上次访问时间是....
这就是Cookies技术的具体应用.
再例如www.126.com电子邮局登录页,如果你选择记住用户名,下次,你的用户名将自动输入并显示在用户名文本框中.

Cookies俗称"小甜饼",其实是你的电脑硬盘中的一块区域,里面存储了你访问某些网站的信息.
你可用Cookies为关键字,在你的电脑查找Cookies文件夹,里面存储的即是你访问某些网站的信息资料.
你可以关闭你的电脑的Cookies功能.
asp中的Request对象和Response对象都可以使用Cookies技术,Cookies是这两种对象的数据集合.
例如以下代码可以实现某人访问某网站的次数统计.
<%
dim num
num=request.cookies("visitnum")
if num<>"" then
num=num+1
response.write"您是第"& num & "次访问本站点。"
else
response.write"您是首次访问本站点。"
num=1
end if
response.cookies("visitnum")=num
%>
|
respons、erequest对象都有cookies集合,谁负责在客户端生成cookies? |
试试实例,用response.cookies向你的浏览器发送采集到的信息。在你的电脑里,以cookies为查询条件,搜索并查看你的硬盘新生成的cookies文本文件
试试实例,用request.cookies获得你的电脑中cookies文本文件中存储的信息 |
Application对象和Session对象的作用? |
Application对象用于记录、存储、追踪所有访问该系统的用户信息,即公用信息,例聊天室里大家的发言。Application对象来实现多个用户之间的信息共享;
Session对象用于记录、存储、追踪所有访问该系统的某个用户的信息。采用Session,可以使一个用户在多个页面间切换的时候也能保留该用户的信息。例如,一个用户登录进入网上商店,用一个Sesssion来记录他的身份,他在网上商店其它页面就不会次次登录来表明身份。还可以通过Sesssion区分进入网上商店不同用户的操作权限。
例如
<%
if isempty(Session("name")) then
Response.Redirect "login.asp"
end if
%>
一个不是很贴切的比喻,Application象校徽,Session象胸牌,记录配带者的个人信息和用户级别信息。
|
Application对象方法?
|
Application对象有两个方法。
Lock方法:Lock方法用于锁定Application对象,禁止其他客户修改Application对象的属性。Lock方法保证同一时刻仅有一个用户在对Application对象进行操作。
Unlock方法:与lock方法相反,Unlock方法用于解除锁定,允许其他客户修改Application对象的属性。
Lock方法锁定对象之后,可以用Unlock方法解除对象的锁定。
例如:记录页面所有用户的访问数
<%
application("visitnum ")=0 ' 初始化为0
application.lock ' 先锁定
application("visitnum")=application("visitnum")+1 ' 当客户登录此页面,来访次数加1
application.unlock ' 再解锁
%>
|
Sesssion对象的TimeOut属性作用? |
如果有用户进入某个管理系统,服务器即生成一个Sesssion对象来记录、存储、追踪他的信息,在该超时时限(默认为20分钟)之内如果此用户没有操作(例如暂时离开电脑,或忘了正常退出管理系统),则该Sesssion对象将终止。目的是回收被这个Sesssion对象占用的服务器资源,以及保证系统安全。 |
利用Application对象、Sesssion对象制作一个最简单的聊天室 |
在1.asp中,用户输入昵称登录到聊天室页面,其代码如下:
现在有<%=application("online")%>人在线~
<form action="chat.asp" method="post" >
昵称:<input type="text" name="name" size="10">
<input type="submit" value="进入" name="B1">
</form>
说明:
▲ <%=Application("online")%>,获取Application中的信息,显示在线人数。
▲聊天室一般采用框架结构进行布局,在chat.asp中采用框架结构将整个聊天室分为三帧,其代码如下:
<%
' 获得聊天者信息
session("name")=request("name")
userin=session("name")& "于" & time & "进入" ' 显示聊天者昵称和进入时间
' 下面将聊天者信息保存到application中
Application.Lock ' 先锁定
' <br>用于分行显示
Application("online")= Application("online")+1 ' 在线人员加1
' 将聊天者信息保存到application中
Application("showinout")=userin & "<br>" & Application("showinout")
Application.Unlock ' 解除锁定
%>
<frameset rows="*,13%">
<frameset cols="*,17%">
<frame name="show" src="show.asp">
<frame name="show1" src="userinfo.asp" target="_self">
</frameset>
<frame name="input" src=input.asp>
</frameset>
说明:
▲ 通常聊天室采用框架结构进行页面设计,本聊天室分三帧,分别显示聊天内容、聊天者信息和用户输入聊天内容。
▲ 聊天者进入聊天室后,将昵称和进入时间等登录信息保存到Application中。
▲ 注意Application对象的使用方法。当某人登录聊天室,在这一刻只有这个人更新聊天室的登录信息,为了实现这个目标,Application对象使用了Lock和Unlock方法,这样,就可以保证在某一时刻只有一个人修改Application对象变量的值。
show.asp是整个聊天室框架结构中的主要帧页面,用于显示聊天信息,位置在框架结构的左上部,其代码如下:
<html>
<head>
<meta http-equiv="refresh" content="2">
</head>
<body>
<%
Response.Write Application("showsay") ' 读出Application中的信息,显示聊天内容
%>
</body>
</html>
说明:
<meta http-equiv="refresh" content="2">,表示页面每隔2秒自动刷新一次,通过这种刷新显示最新的聊天内容。如果没有这句,必须用户输入聊天内容并发送后才能刷新。由于HTTP协议的限制,Web聊天室一般不能实时更新聊天信息,这里采用每2秒刷新页面以显示最新的聊天信息,不过这样会给用户带来页面闪烁的感觉。
userinfo.asp用于显示聊天者信息,位置在框架结构的右边,其代码如下:
<html>
<head></head>
<body>
<p>成员信息<br>
共有<%=application("online")%>人</p>
<%
Response.Write Application("showinout") ' 读出Application中的信息,显示成员信息
%>
</body></html>
说明:
Application("showinout"),用于记录聊天者的登录与退出信息。
在input.asp中用户通过表单输入聊天内容,位置在框架结构的下部,其代码如下:
<html>
<head></head>
<body>
<form method="POST" action="" name="form1">
发言:
<input type="text" name="say" size=40 >
<input type="submit" value="发言" > <a target="_top" href="exit.asp">返回</a></form>
<%
IF Request("say")<>"" Then
name=Session("name") ' 获得聊天者呢称
say=request("say") ' 获得聊天内容
sayinfo="" & name &":"& say &""
' 将聊天内容保存到Application
Application.Lock ' 先锁定
Application("showsay")= sayinfo & "<br>" & Application("showsay")
Application.Unlock ' 解除锁定
End If
%>
</body>
</html>
说明:
▲ 用户的发言存储于Application("showsay")中。
▲ Application("showsay")= sayinfo & "<br>" & Application("showsay"),表示将新发言的内容加到以前发言内容的前面,然后再保存回Application("showsay")中,<br>的作用是将发言内容换行显示。
▲ <a target="_top" href="exit.asp">,链接至退出聊天室程序处理页面。只有通过单击这个链接退出,才能将在线人员减一,实现正常退出。
exit.asp代码:
<%
exituser=session("name") ' 获得退出者呢称
exituser=exituser & "于" & time & "退出" ' 获得退出时间
'下面几句将来访信息保存到application中
Application.Lock ' 先锁定
Application("online")=Application("online")-1 ' 在线人数减1
Application("showinout")= exituser & "<br>" & Application("showinout")
Application.Unlock ' 解除锁定
response.redirect"1.asp" ' 重定向到首页
%>
说明:
通过本页面的程序处理,将在线人数减一,然后重定向到首页。如果是通过IE窗口上的【关闭】按钮或是IE【标准按钮】工具栏上的【后退】按钮退出,在线人数不会发生减一的变化,这就不符合在线人数的实际情况。 |
什么是Global.asa文件? |
下载一个现成的ASP系统时,经常可以看到里面的Global.asa文件,它的作用是用来指定Application对象和Session对象的使用规则。
对于每个应用系统而言,只能有一个Global.asa文件,文件名规定为Global.asa,Global.asa文件必须放在系统程序根目录下。 |
什么是Server对象? |
Server对象提供对服务器上的方法和属性进行的访问。大部分的方法和属性均是作为实用程序功能服务的。利用Server对象,我们就可以在服务器上启动ActiveX对象,并可以使Active Server服务提供像HTML和URL编码这样的函数,从而扩展服务器的功能。 |
Server对象的CreateObject方法? |
CreateObject方法是用于创建已经注册到服务器上的ActiveX组件实例。
CreateObject方法的语法如下:
Server.CreateObject("progID")
progID为指定所要创建的对象类型。
例如,下面的代码用于建立数据库实例。
<%Set db=Server.CreateObject("ADODB.Connection")%>
当创建对象后,如果不再需要,可以利用下列方法释放所占用的资源,方法如下:
<%
Set 实例名=nothing
%>
例如:创建一个实例,与数据库的连接
<%
Set conn=Server.CreateObject("ADODB.Connection")
conn.Open"Dbq="&Server.Mappath("zbbbsidjcodsda.mdb
")&";Driver={Microsoft Access Driver (*.mdb)}"
%>
|
Server对象的MapPath方法? |
MapPath方法将指定的相对或虚拟路径路径映射到物理路径(即真实路径)。
例如:
<%
Set conn=Server.CreateObject("ADODB.Connection")
conn.Open"Dbq="&Server.Mappath("../swerd/zbbbsidjcodsda.mdb
")&";Driver={Microsoft Access Driver (*.mdb)}"
%>
此路径表示,此ASP页面与数据库的位置关系。 |
| |
Server对象的URLEncode方法? |
当查询字符串值包含非字母和数字的字符时,服务器或系统有可能会出错,可以在传输之前必须先对其编码Server.URLEncode
例如:在百度搜索表单里输入所要查询的字符串,字符串经过编码处理,所以你地IE地址栏中所看到的似乎是一串乱码。 |
| |
Server对象的HTMLEncode方法? |
在网页制作学习交流动态论坛中,如果某人发贴子要讨论某段HTML代码,贴子从数据库里读出,并在页面上输出显示时,IE读到这样的字符串时,就会试图进行解释。
为了避免此类问题,我们就需要使用Server对象的HTMLEncode方法,让浏览器对这些HTML代码不作解释,而是将代码以字符串方式输出。 |
| |
实训与作业
1、
制作一个简易表单系统,页面1为静态页,包含一个表单;页面2为动态页,分别用Request.form和request.querystring方式接收由页面1的表单所传递过来的信息、客户机IP、系统当前日期与时间,并且将这些信息分别采用Response.write方法和简写的=方式在页面2上输出显示。
2、制作简单聊天室 |