asp服务器组件和内置对象区别,第4章ASP内置对象Application,Session和Server(ASP)

a4c26d1e5885305701be709a3d33442f.png

★.Application对象

Application对象是一个比较重要的对象,对Application对象的理解关键是:网站所有的用户公用一个对象,当网站服务器开启的时候,Application就被创建。

利用Application这一特性,可以方便地创建聊天室和网站计数器等常用站点应用程序。

Application提供两个方法:

(1) Lock()——锁定Application对象,防止被其他用户访问。

(2) Unlock()——解除锁定,可以接受用户的访问。

Application提供两个事件:

(1)

Application_OnStart()——Application开始创建的时候,调用该事件。

(2)

Application_OnEnd()——Application被清除的时候,调用该事件。

★.自定义属性

Application对象没有自己的属性,用户可以根据自己的需要定义属性,来保存一些信息,其基本语法是:Application(“自定义属性名”),如程序4-13.asp所示。

执行完以后,该对象就被保存在服务器上。执行程序4-13.asp时依然可以输出原先保存的值。 

Application("Greeting")="你好!"

%>

a4c26d1e5885305701be709a3d33442f.png

-------------------------------------------------------------------★

★.实现聊天室 聊天室允许多用户实时进行信息交流,所有用户可以看到彼此的信息,这与Application对象的特点正好符合,所以可以利用Application方便地实现聊天室。如程序4-15.asp所示。

mywords = Request("mywords")

Application("chat") = Application("chat")&

"
" & mywords

Response.Write(Application("chat"))

%>

VALUE="I LIKE CHAT">

VALUE="提交">

a4c26d1e5885305701be709a3d33442f.png

-------------------------------------------------------------------★

★.网页计数器

网页计数器是Application

对象的又一个用途,因为Application是所有的用户所共有的,所以可以存储计数器的值当有新用户访问网页时自动增加计数器的值。如程序CountV1.asp所示。

Application("Counter") =

Cint(Application("Counter")) + 1

%>

ALIGN="CENTER">您是本站点第位贵宾!

a4c26d1e5885305701be709a3d33442f.png

-------------------------------------------------------------------★

★.计数器

(1)以上程序只有两条ASP语句,但是已经可以实现计数了。这个计数器还不完善,下面分成几个版本来完善它在版本二中加入Application的锁定语句。如程序CountV2.asp所示。

Application("Counter") =

Cint(Application("Counter")) + 1

Application.UnLock()

%>

ALIGN="CENTER">您是本站点第位贵宾!

a4c26d1e5885305701be709a3d33442f.png

-------------------------------------------------------------------★

(2)一般网站的计数器都是图形界面,这个计数器也可以变成具有图形界面的计数器。如程序CountV3.asp所示。

首先取出Application(“Counter”)的值,然后赋值给变量S,再执行循环语句,Len(S)功能是取字符串的长度,Mid(S,

i,

1)的意思是从字符串S的第i个位置开始取1个字符。执行完后就将原先的字符数字转化成以图形显示的图形计数器。

Application.Lock()Application("Counter") =

Application("Counter") + 1

Application.UnLock()

Function G ( counter )

Dim S, i

S = CStr( counter

) For i = 1 to Len(S)

myimage = myimage & "p><p>"

Next

G = myimage

End Function

%>

您是本站第

(Application("Counter"))%> 位贵宾!

a4c26d1e5885305701be709a3d33442f.png

-------------------------------------------------------------------★

★.Session对象

Session指的是访问者从到达某个特定主页到离开为止的那段时间网站为用户分配的用来保存用户信息的对象。可以使用Session

对象存储用户登录网站时候的信息。当用户在页面之间跳转时,存储在Session对象中的变量不会被清除。

Session对象是针对每个用户的,不同用户的信息用不同的Session来保存。在一个应用程序中,当客户端启用一个Session的时候,ASP会自动产生一个SessionID,并把这个

★.SessionID送给客户端浏览器。

Session对象的属性有两个:

(1) SessionID——存储用户的SessionID信息

(2) Timeout——Session的有效期

Session对象提供的方法只有一个:

Abandon()——清除Session对象。

Session对象提供两个事件:

(1)

Session_OnStart()——Session对象开始创建的时候,自动调用该事件。

(2) Session_OnEnd()——Session对象清除时,自动调用该事件。

★.对Session的理解

当用户登录网站的时候,系统会自动分配给用户一个Session。

可以使用SessionID属性得到该Session的ID,如程序4-16.asp所示。

你的 SessionID:

★.自定义属性

Session对象的主要用途也是保存信息,当用户第一次到达网站时,系统为其分配一个Session。Session和Application一样也使用自己的自定义属性,如程序4-17.asp所示。

Session("Greeting")="欢迎!"

Response.Write(Session("Greeting"))

%>

href="4-18.asp">下一页

a4c26d1e5885305701be709a3d33442f.png

-------------------------------------------------------------------★

★.Timeout属性

一个Session对象被创建以后,如果用户停止活动(比如:浏览网页)一段时间,该对象将被自动清除。也就是说:Session对象有其生存期,默认的时间为20分钟。

如果希望修改Session的生存期,可以有两种方法:(1)修改IIS中系统的设置值;(2)利用Session对象的Timeout属性来修改。比如将生存期修改为60分钟,使用的语法是:

Session.Timeout = 60

Abandon方法

如果想利用程序清除Session对象,可以调用Session的Abandon方法。语法是:

Session.Abandon()

★.Server 对象

利用Server对象可以方便地访问服务器上的方法和属性

最常用的是利用Server.CreateObject创建组件的实例。

★.Sever对象常用的属性

a4c26d1e5885305701be709a3d33442f.png

★.Server对象的方法

a4c26d1e5885305701be709a3d33442f.png

★.输出HTML代码

通常情况下,浏览器将“”中间的符号作为HTML标记,不会显示在浏览器上,如果想在浏览器上显示时,可以使用Server对象的HTMLEncode方法如程序4-19.asp所示。

Server.HTMLEncode("HTML段落标记:

a4c26d1e5885305701be709a3d33442f.png

-------------------------------------------------------------------★

★.获取物理路径

Server.MapPath的功能是把“网络路径”转换为服务器上的物理路径。

如程序4-20.asp所示。

Server.MapPath("/")

传回网站根路径: 

Server.MapPath("/file1.txt")传回:

Server.MapPath("/folder") 传回:

Server.MapPath("file2.txt")传回:

a4c26d1e5885305701be709a3d33442f.png

-------------------------------------------------------------------★

★.Execute方法

该方法用来执行新的网页,执行完毕后返回原来页面。语句为:Server.Execute(asp文件名)使用方法如程序4-21.asp所示。

Response.Write("欢迎您!
")

Server.Execute("4-02.asp")

Response.Write("
再见!")

%>

a4c26d1e5885305701be709a3d33442f.png

-------------------------------------------------------------------★

★.Transfer方法

该方法和Execute方法非常相似,唯一的区别是执行完新的网页后,并不返回原来的页面。语法为:

Server.Transer(ASP文件名)

Cookie集合

Cookie和Session一样都可以保存用户信息

区别是Cookie将信息保存在客户端,而Session将信息保存在服务器

写入Cookie

可以将Cookie写到浏览器中,让浏览器来保存Cookies的值。如程序4-22.asp所示。

Response.Cookies("User")("Name1")="Jack"

Response.Cookies("User")("Password")="password"

%>

写入Cookies

href="4-23.asp">查看

a4c26d1e5885305701be709a3d33442f.png

★.读出Cookies

a4c26d1e5885305701be709a3d33442f.png

-------------------------------------------------------------------★

global.asa文件

Application的两个事件(Application_OnsStart()和Application_OnEnd())和Session的两个事件(Session_OnStart()和Session_OnEnd())都放在global.asa文件中。

global.asa文件必须位于网站的根目录才能起作用。global.asa文件有如下结构。

★-------------------------------------------------------------------

Sub Application_OnStart()

Application.Lock()

Application("whosOn") = 0

Application.UnLock()

End Sub

Sub Session_OnStart()

Application.Lock()

Application("whoson") =

Cint(Application("whoson")) + 1

Application.UnLock()

End Sub

Sub Session_OnEnd()

Application.Lock()

Application("whoson") =

Cint(Application("whoson")) - 1

Application.UnLock()

End Sub

-------------------------------------------------------------------★

★.例4-3

实现动态在线人数统计

当网站被第一个人访问时就会自动调用Global.asa

文件

但是需要注意的是:global.asa文件必须放在网站的根目录下。程序CountOnLine.asp文件只用了一条语句实现在线人数统计。

Application("whoson")& "人在线")%>

a4c26d1e5885305701be709a3d33442f.png

★.................................................................★

Sub Application_OnStart()

Application.Lock()

Application("whosOn") = 0

Application.UnLock()

End Sub

Sub Session_OnStart()

Application.Lock()

Application("whoson") =

Cint(Application("whoson")) + 1

Application.UnLock()

End Sub

Sub Session_OnEnd()

Application.Lock()

Application("whoson") =

Cint(Application("whoson")) - 1

Application.UnLock()

End Sub

-------------------------------------------------------------------★

★.案例4-4

聊天室研究

利用Application和Session可以做出比较专业的聊天室。这个聊天室对简单聊天室进行了功能上的扩充,由以下5个文件组成。

(1)index.asp:聊天室的登录界面。

(2)do_login.asp:登录处理界面。

(3)chatpage.htm:聊天室的框架文件。

(4)message.asp:聊天室的信息输入界面。

(5)display.asp:聊天信息显示页面。

★------------------------------index.asp----------------------------

请输入你的大名:

value="大盗">

请输入你的密码:

value="n22">

a4c26d1e5885305701be709a3d33442f.png

★.............................do_login.asp........................★

strUserID =

Request("txtUserID")

strUserPWD =

Request("txtUserPWD")

Session("username") = strUserID

Session("no")= strUserPWD

Response.Redirect("chatpage.htm")

%>

a4c26d1e5885305701be709a3d33442f.png

★.............................chatpage.htm........................★

SRC="DISPLAY.ASP">

SRC="MESSAGE.ASP">

★..............................message.asp........................★

mywords = Request("message")

oneSentence = "姓名:" &

Session("username")

oneSentence = oneSentence & "机器号:" &

Session("no")& "说:  " & mywords

Application.Lock()

Application("talk") = Application("talk") &

oneSentence & "
"

Application.UnLock()

%>

ACTION="MESSAGE.ASP">

TYPE="TEXT" SIZE="50">

VALUE="SEND">

a4c26d1e5885305701be709a3d33442f.png

★.............................display.asp.........................★

function scrollWindow()

{

this.scroll(0,65000)

setTimeout('scrollWindow()',200)

}

scrollWindow()

Response.Write(Application("talk"))

%>

a4c26d1e5885305701be709a3d33442f.png

-------------------------------------------------------------------★

★.小结:

本章重点理解五大对象、一个集合和一个文件的概念和使用方法。理解Response对象提供的Write()方法、Redirect()方法和End()方法。如何利用Request获得Form表单中的信息,如何获得超级链接传递的变量。

理解Application对象,如何利用Application对象实现聊天室和计数器。理解Session对象及其自定义属性。掌握使用Server对象获取网站的物理路径,如何向浏览器写入Cookie和如何将Cookie读取出来。理解global.asa文件的特点和功能。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值