使用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" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<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把锁打开;
用火狐打开预览的效果图:
本文转自shenzhoulong  51CTO博客,原文链接:http://blog.51cto.com/shenzhoulong/313780,如需转载请自行联系原作者

Aplication对象 简单聊天室(16)相关推荐

  1. java web利用mvc结构实现简单聊天室功能

    简单聊天室采用各种内部对象不适用数据库实现. 一个聊天室要实现的基本功能是:         1.用户登录进入聊天室, 2.用户发言 3.用户可以看见别人发言 刚才算是简单的需求分析了,现在就应该是进 ...

  2. SpringBoot +WebSocket实现简单聊天室功能实例

    SpringBoot +WebSocket实现简单聊天室功能实例) 一.代码来源 二.依赖下载 三.数据库准备(sql) 数据库建表并插入sql 四.resources文件配置 application ...

  3. java web聊天室原理_java web利用mvc结构实现简单聊天室功能

    简单聊天室采用各种内部对象不适用数据库实现. 一个聊天室要实现的基本功能是: 1.用户登录进入聊天室, 2.用户发言 3.用户可以看见别人发言 刚才算是简单的需求分析了,现在就应该是进行mvc结构的设 ...

  4. java 简单聊天室_java实现简单聊天室单人版

    本文实例为大家分享了java实现简单聊天室的具体代码,供大家参考,具体内容如下 先整理下思路: 1.创建一个通信服务端,传入端口号和相关的流后等待客户端连接,并初始化图形界面. 2.创建一个JFram ...

  5. node.js入门 - 2.创建一个简单聊天室

    这篇文章将通过开发一个简单聊天室的方式,介绍node.js的net模块. 一.第一版,只向客户端发送信息   我们先实现一个简单的版本,代码如下: var net=require('net'); va ...

  6. Asp.Net SignalR - 简单聊天室实现

    简单聊天室 使用持久链接类我们就可以做一些即时通讯的应用了,我使用Group做了一个简单的聊天室,先上图技术细节下面再讲 可以加入聊天室.创建聊天室.发送消息,下面就说说我是如何通过Group做出来的 ...

  7. java jsp聊天系统_java web实现简单聊天室

    目标 servlet.jsp实现简单聊天室,用户通过浏览器登录后进入聊天室,可发送消息进行群聊,点击聊天信息框中的用户名可实现拍一拍功能. 基础知识 数据的存取 setAttribute / getA ...

  8. swoole 项目实战——实现简单聊天室

    前言:了解了概念之后就应该练练手啦,不然就是语言的巨人,行动的矮子啦 代码仓库 实战 swoole[聊天室] 在线体验 准备工作 需要先看初识 swoole[上],了解基本的服务端 WebSocket ...

  9. 基于C/S模式的简单聊天室

    基于C/S模式的简单聊天室 要求: 使用Socket实现网上聊天室,要求基于TCP或UDP协议,用户可以通过客户端连接到服务器端并进行聊天,聊天时可以启动多个客户端:服务器启动后,接收客户端发来的用户 ...

最新文章

  1. Python内置方法
  2. 瑞幸咖啡百万大咖活动 记人生第一次豪赌,净赔了200元钱。
  3. datename mysql_SQL日期时间函数总结(MSSQL)
  4. 全球及中国冠状动脉内支架行业运行现状与十四五发展状况分析报告2022版
  5. JavaScript学习笔记07【6个经典案例——电灯开关、轮播图、自动跳转首页、动态表格、表格全选、表单验证】
  6. Go gomaxprocs 调高引起调度性能损耗
  7. 想作为程序员工作 需要什么_您不想作为程序员玩的游戏
  8. Java限流之 —— Nginx限流
  9. 1inch将升级至1.1版本并开启新的流动性挖矿计划
  10. Go的50坑:新Golang开发者要注意的陷阱、技巧和常见错误[1]
  11. 2017百度之星资格赛:1002. 度度熊的王国战略
  12. C#技术分享【PDF转换成图片——11种方案】
  13. Pycharm安装jieba库
  14. IDA报错Unexpected fatal error while intitailizing Python runtime
  15. 只有真正程序猿才能看懂的段子!!
  16. 在虚拟机上使用macvlan命令建虚拟网卡
  17. 树莓派raspi-config配置工具
  18. jpg格式图片打不开怎么办
  19. 2022-2028全球仿生面罩行业调研及趋势分析报告
  20. 数据库SQL语句练习45道 习题归纳

热门文章

  1. 自动控制的基本概念和符号表示
  2. 普通高中计算机装备标准,福建省普通高中图书馆装备标准.doc
  3. Unity的机器学习工具包ML-Agents
  4. Azure虚拟机Windows Server2016创建域控制器
  5. 电子合同的履行_电子合同如何履行
  6. excel函数技巧:如何快速汇总销售合计项
  7. 最新查询跟踪快递物流,分析派件时效的方法
  8. 明远智睿5G工业网关远程联动,打造一支“精锐部队”
  9. 【小白必胜-服务器】全网最简单Linux建站环境新手安装步骤
  10. Maven、gradle、Ant、Eclipse IDE