(ASP.net)利用Application对象制作简单聊天室
1.共四个页面,Default.aspx默认主页,Default2.aspx聊天室 default3.aspx显示用户列表,default4.aspx显示聊天内容,添加一个Global.asax全局程序集文件,初始化 Application对象值
2.在global.asax中
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
//建立用户列表
string user = "";//用户列表
Application["user"] = user;
Application["userNum"] = 0;
string chats = "";//聊天记录
Application["chats"] = chats;
Application["current"] = 0;//聊天记录数
}
void Application_End(object sender, EventArgs e)
{
// 在应用程序关闭时运行的代码
Application["user"] = "";
Application["chats"] = "";
}
3.DEFAULT.ASPX中
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
int p_judge = 0;
p_judge = Convert.ToInt32(Request["value"]);
if (!IsPostBack)
{
if (p_judge == 1)
Response.Write("<script>alert('该用户已经存在')</script>");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Application.Lock();
int p_num;//在线人数
string p_name;//登录用户
string p_names;//已在线用户
string[] p_users;//用户在线数组
p_num = int.Parse(Application["userNum"].ToString());
if (TextBox1.Text == "")
{
Response.Write("<script>alert('用户名不能为空')</script>");
TextBox1.Focus();
}
else
{
p_name = TextBox1.Text.Trim();
p_names = Application["user"].ToString();
p_users = p_names.Split(',');
for (int i = 0; i <= p_num - 1; i++)
{
if (p_name == p_users[i].Trim())
{
int p_judge = 1;
Response.Redirect("Default.aspx?value="+p_judge);
}
}
if (p_num == 0)
Application["user"] = p_name.ToString();
else
Application["user"] = Application["user"] + "," + p_name.ToString();
p_num += 1;
Application["userNum"] = p_num;
Session["userName"] = TextBox1.Text.Trim();
Application.UnLock();
Response.Redirect("Default2.aspx");
}
}
4.default2.aspx 采用 frame 的SRC 属性来显示default3 default4
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = Session["userName"].ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
int p_current = int.Parse(Application["current"].ToString());
Application.Lock();
if (p_current == 0 || p_current > 20)
{
p_current = 0;
Application["chats"] = Session["userName"].ToString() + "说:" + TextBox1.Text.Trim() + "(" + DateTime.Now.ToString() + ")";
}
else
{
Application["chats"] = Application["chats"].ToString() + "," + Session["userName"].ToString() + "说:" + TextBox1.Text.Trim() + "(" + DateTime.Now.ToString() + ")";
}
p_current += 1;
Application["current"] = p_current;
Application.UnLock();
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Write("<script>window.close()</script>");
}
5.default3.aspx
protected void Page_Load(object sender, EventArgs e)
{
ArrayList ItemList = new ArrayList();
Application.Lock();
string p_names;
string[] p_user;
int p_num = int.Parse(Application["userNum"].ToString());
p_names = Application["user"].ToString();
p_user = p_names.Split(',');
for (int i = (p_num - 1); i >= 0; i--)
{
ItemList.Add(p_user[i].ToString());
}
ListBox1.DataSource = ItemList;
ListBox1.DataBind();
Application.UnLock();
}
6.defaut4.aspx
protected void Page_Load(object sender, EventArgs e)
{
int p_current = int.Parse(Application["current"].ToString());
Application.Lock();
string p_chats = Application["chats"].ToString();
string[] p_chat = p_chats.Split(',');
for (int i = p_chat.Length - 1; i >= 0; i--)
{
if (p_current == 0)
{
TextBox1.Text = p_chat[i].ToString();
}
else
{
TextBox1.Text = TextBox1.Text + "/n" + p_chat[i].ToString();
}
}
Application.UnLock();
}
(ASP.net)利用Application对象制作简单聊天室的更多相关文章
- java web利用mvc结构实现简单聊天室功能
简单聊天室采用各种内部对象不适用数据库实现. 一个聊天室要实现的基本功能是: 1.用户登录进入聊天室, 2.用户发言 3.用户可以看见别人发言 刚才算是简单的需求分析了,现在就应该是进 ...
- Java利用TCP编程实现简单聊天室
前言: 本文是我在学习尚学堂JAVA300集第二季网络编程部分仿照视频内容实现而成 具体可以去尚学堂官网观看视频学习 一.实现思路 实现聊天室的最核心部分就是JAVA的TCP网络编程. TCP 传输控 ...
- Java continue break 制作简单聊天室程序,屏蔽不文明语言,显示每句话聊天时间 for(;;) SimpleDateFormat("yyyy-MM-dd hh:mm:ss") equalsIgnoreCase
package com.swift; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanne ...
- ASP.NET 使用application和session对象写的简单聊天室程序
ASP.Net中有两个重要的对象,一个是application对象,一个是session对象. Application:记录应用程序参数的对象,该对象用于共享应用程序级信息. Session:记录浏览 ...
- ASP.NET中application对象的用法(面试题)
ASP.NET中application对象的用法 本文导读:Application对象是HttpApplicationState类的一个实例,Application状态是整个应用程序全局的.Appli ...
- ASP.NET中application对象
ASP.NET中application对象的使用. Application对象的应用 1.使用Application对象保存信息 (1).使用Application对象保存信息 Applicat ...
- Android 利用Application对象存取公共数据
本文章来给大家介绍Android 利用Application对象存取公共数据. Android系统在运行每一个程序应用的时候,都会创建一个Application对象,用于存储与整个应用相关的公共变量. ...
- Asp.Net SignalR - 简单聊天室实现
简单聊天室 使用持久链接类我们就可以做一些即时通讯的应用了,我使用Group做了一个简单的聊天室,先上图技术细节下面再讲 可以加入聊天室.创建聊天室.发送消息,下面就说说我是如何通过Group做出来的 ...
- ASP.NET SingalR + MongoDB 实现简单聊天室(一):搭建基本框架
ASP.NET SingalR不多介绍.让我介绍不如看官网,我这里就是直接上源代码,当然代码还是写的比较简单的,考虑的也少,希望各位技友多多提意见. 先简单介绍聊天室功能: 用户加入聊天室,自动给用户 ...
随机推荐
- linux下ssh使用rsa验证登陆MACOX
由于项目的需求,我这边ubuntu下常常需要SSH访问另外一台MACOS. 每次输入密码有点烦,就想到RSA公钥和密钥验证的方法. 像所有教程上讲的一样,本机执行 gong@hzsx:~$ ssh-k ...
- Camtasia Studio的安装步骤
总的来说: 1.安装 2.安装之后,进行汉化. 破解方法: 1):输入注册码安装 用户名:6-Y 注册码:GCABC-CPCCE-BPMMB-XAJXP-S8F6R 2):软件汉化 安装完成后使用汉化 ...
- 使用Markdown编辑器写博客
使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图 ...
- Java管道流PipedStream
管道读取流和管道写入流可以像管道一样对接上,管道读取流就可以读取管道写入流写入的数据.需要注意的是需要加入多线程技术,因为单线程,先执行read,会发生死锁,因为read方法是阻塞式的,没有数据的re ...
- Android问题-selection contains a component,button7,introduced in an ancestor and cannot be deleted.
问题现象: 在开发Android时增加的控件想删除,可是删除时提示“Android问题-selection contains a component,button7,introduced in an ...
- [Objective-c 基础 - 2.8] category分类/类别/类目
A.给某个类扩充方法(不改变原来的类) 例如,给类Person加上名为Simon的category,加上一个-study方法 使用()注明 Person+Simon.h @interface Pers ...
- 转载 DevOps的基本原则与介绍
转载原地址: http://www.cnblogs.com/wintersun/p/3339047.html DevOps的基本原则与介绍 DevOps这个术语是developer与operatio ...
- UIDynamic(一)
UIDynamic(一) 前言 最近看了一下UIDynamic,UIDynamic是13年WWDC出的技术.其实本人一直热衷于比较有趣的动画,特别是带物理力学的动画,感觉物理力学就是动画的灵魂,一直想 ...
- WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色
本文转载:http://www.cnblogs.com/umplatform/archive/2012/08/29/2660240.html 在B/S开发中,对TreeView控件要改变当前选中节点的 ...
- android小笔记
1.启动其他应用程序 Intent launchIntent = getPackageManager().getLaunchIntentForPackage(currentAppInfo.getPac ...