Application对象 简单的聊天室

使用Application对象可以使得多个用户在访问同一个asp.net应用程序时,能够共享信息,在多个用户同时访问asp.net时,都会产生一个Application对象。通常可以把共享的数据变量存储在Application对象的集合中,这些变量可以在站点应用程序所有的页面上被所有的客户端访问,这样就是所有的客户端公用一个Application对象,网站服务器被开启时,Application就会被创建,利用共享这一特性,我们可以创建简单的聊天室以及网站计数器。

Application对象常用的方法:

方法
 说明
Add 向Application添加新的对象
Clear 移除Application中所有的对象
Remove 按名称移除Application集合中对象
Lock 禁止其他用户修Application对象记录的变量值
Unlock 允许其他用户修Application对象记录的变量值

Application最常见的应用就是聊天室,下面创建一个简单的聊天室演示Application的应用。

html代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Application._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""><html xmlns="" ><head runat="server">    <title>聊天室</title>    <meta  http-equiv="refresh" content="5;url=Default.aspx"/></head><body>    <form id="form1" runat="server" method="post">    <div style="text-align:center">简单的聊天室</div>    <hr style="color:Red"/>    聊天内容:<br />    <%Response.Write(Application["chat"]); %><!通过response对象的write方法将application对象中存储的聊天信息进行输出>    <hr style="color:Blue"/>    小敏对    <asp:DropDownList ID="friend" runat="server" Width="90px">    <asp:ListItem Value="小李">小李</asp:ListItem>    <asp:ListItem Value="小军">小军</asp:ListItem>    <asp:ListItem Value="小丽">小丽</asp:ListItem>    </asp:DropDownList>说:    <asp:TextBox ID="content" runat="server" Height="127px" Width="263px"></asp:TextBox>    <asp:Button ID="Button1" runat="server" Text="提交" οnclick="Button1_Click1" />    </form></body></html>html代码中<meta  http-equiv="refresh" content="5;url=Default.aspx"/>意思是网页每五秒刷新一次,并跳转到Default.aspx页面

c#后台代码:

using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;namespace Application{    public partial class _Default : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {               }               protected void Button1_Click1(object sender, EventArgs e)        {                       string name = "小敏";            string char_str = name + "对" + Request["friend"] + "说:" + Request["content"] + "<br/>";            Application.Lock();//先用Lock将application锁住,进行修改;            Application["chat"] = Application["chat"] + char_str;            Application.UnLock();//然后再把application对象锁打开;            this.content.Controls.Clear();//点击“提交”按钮提交信息后自动清除用户输入内容;        }    }}当用户点击“提交”按钮时,会触发一个事件,该事件会把用户输入的信息保存到Application对象中,有因为Application对象是一个保存共享信息的对象,所以每个用户想修改信息时,就会出现混乱,导致数据不一致,为了防止此问题的发生,这里利用了lock和unlock方法,相拥lock把Application锁住,再进行修改,最后使用unlock把锁打开;

实验:内置对象使用 一、实验目的 1、掌握各个内置对象的含义; 2、理解并熟练应用session、application对象。 二、实验内容 1、设计聊天室,在聊天室中,需要通过JSP内置对象application来实时保存特定数量的当前聊天信息。 聊天室的设计包括:用户进行登录,选择聊天室,进行聊天,退出聊天室。 在聊天室中,用户只需输入一个用户名就可以进入聊天室,但是如果当前有人在使用该用户名,那么就必须换一个唯一的用户名。 具体要求:  用户登录成功后,程序会要求用户选择聊天室。可以不设置用户自行建立聊天室的功能,而且在聊天中途不能从一个聊天室切换到另一个聊天室。  进入聊天室后,用户可以从用户信息窗口看到该聊天室中所有用户的用户名,也可以在聊天窗口中看到随时更新的聊天信息。用户可以给所有人或某一个聊天用户发送公共的聊天信息,这个聊天内容大家都可以看到。用户也可以给某个用户发送私人的聊天信息,这种信息属于私聊信息,只有发送者和接收者可以看到。此外,聊天窗口还会出现一些系统公告,比如某某上站、某某离开等消息,另外用户还可以自己定义聊天信息和聊天用户信息刷新的时间间隔。  在用户单击“退出”按钮后,页面关闭,同时application和session中保存的信息都将丢失。 三、实验方法 1、用户登录信息使用request对象getParameter()方法得到用户登陆的一些信息; 2、公聊信息可以使用application对象,私聊信息使用session对象。 3、聊天的信息要不断刷新页面,使用户实时看到聊天信息。 4、用户退出时,有两种情况需要考虑:一是用户点击“退出”按钮,二是关闭浏览器,强制退出窗口,可查阅windows感知浏览器关闭的事件的相应方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值