使用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把锁打开;

Application对象 简单的聊天室相关推荐

  1. ICE专题:实现简单的聊天室(一)

    目标:实现一个简单的聊天室.本文实现的聊天室仅出于演示ICE的多播功能,即由一个Client发送的消息,广播至注册的其他Client上.以后的系列文章,将逐步完善这个例子,使其成为一个现实意义上可用的 ...

  2. Netty - 一个简单的聊天室小项目

     经过一段时间对Netty的学习,我们对Netty各版本以及像ProtocolBuffers等技术应用都有了不少相关的了解, 我们就用这段时间学到的只是做一个简单的聊天室的小项目来练习自己学到的技术. ...

  3. java udp简单聊天程序_Java基于UDP协议实现简单的聊天室程序

    最近比较闲,一直在抽空回顾一些java方面的技术应用. 今天没什么事做,基于udp协议,写了一个非常简单的聊天室程序. 现在的工作,很少用到socket,也算是对java网络编程方面的一个简单回忆. ...

  4. 用ServletContext做一个简单的聊天室

    这里主要是ServletContext的一个特性:ServletContext是一个公共的空间,可以被所有的客户访问.由此可见ServletContext比cookie和session的作用范围要大[ ...

  5. 局域网服务器发送消息,Java实现简单局域网聊天室

    本文实例为大家分享了Java实现简单局域网聊天室的具体代码,供大家参考,具体内容如下 Java 的Socket编程: 1.TCP协议是面向连接的.可靠的.有序的.以字节流的方式发送数据,通过三次握手方 ...

  6. java udp 聊天室_Java基于UDP协议实现简单的聊天室程序

    最近比较闲,一直在抽空回顾一些Java方面的技术应用. 今天没什么事做,基于UDP协议,写了一个非常简单的聊天室程序. 现在的工作,很少用到socket,也算是对Java网络编程方面的一个简单回忆. ...

  7. python聊天室详细教程_python简单实现聊天室功能(代码教程)

    聊天室程序需求: 我们要实现的是简单的聊天室的例子,就是允许多个人同时一起聊天,每个人发送的消息所有人都能接收到,类似于 QQ 群的功能,而不是点对点的 QQ 好友之间的聊天.如下图: 这里我们首先要 ...

  8. java 简单的聊天室_Java简单聊天室

    实现Java简单的聊天室 所用主要知识:多线程+网络编程 效果如下图 /** * * @author Administrator * *简单的多人聊天系统--重点:同时性,异步性 *1.客户端:发送消 ...

  9. SpringBoot入门建站全系列(二十七)WebSocket做简单的聊天室

    SpringBoot入门建站全系列(二十七)WebSocket做简单的聊天室 一.概述 WebSocket 是一种网络通信协议.RFC6455 定义了它的通信标准. WebSocket 是 HTML5 ...

最新文章

  1. USACO SEC.1.2 No.4 Palindromic Squares
  2. LCD1602液晶显示模块的单片机驱动深入详解之硬件篇
  3. SSIS 执行变量中的脚步输出列顺序与SQL查询列顺序不同
  4. Junit4中Test Suite的用法
  5. 18岁华裔准博士生,“杀死了”量子计算大进展
  6. OpenGL纹理贴图流程
  7. 深度学习花书-2.10 PCA数学推导
  8. (六)洞悉linux下的Netfilteriptables:如何理解连接跟踪机制?(2)
  9. Flex结合java实现一个登录功能
  10. unity3d进行脚本资源打包加载
  11. 天正电气插入图块非常小与比例不符合
  12. python的学习笔记案例1--汇率兑换3.0
  13. From Fidelity to Perceptual Quality: A Semi-Supervised Approach for Low-Light Image Enhancement
  14. uni-app实现app内嵌微信文章
  15. 如何让div透明,内容不透明
  16. Oracle 利用储存过程插入循环插入大量数据方法
  17. 对微机用户来说 为了防止计算机意外故障,对于微机用户来说,为了防止计算机意外故障而丢失重要数据,对重要数据应定期进行备份。下列移动存储器中,最不常用的一种是...
  18. 【供应链架构day9】美团配送系统架构的演进之路:从MVP到规模化
  19. 写在2018年岁末之际
  20. Node.js 学习笔记day007

热门文章

  1. java 去掉 t_java中的“\t”
  2. ElasticSearch API文档查看
  3. 2020年中国服务机器人行业研究报告
  4. 面试官是如何发掘有潜力的产品经理的?
  5. java嵌套循环语句_Java学习笔记(七) 循环语句
  6. java异常处理机制_Java的异常处理机制
  7. 刘良华(1969-),男,宁波市智慧城市规划标准发展研究院研究室副主任.
  8. 作者:朱凤华,男,博士,现任中国科学院自动化研究所副研究员,中国科学院云计算中心自动化所东莞研究院副院长。...
  9. 【需求工程】需求应用域理解
  10. 【Java】探究自增运算符++的原理