,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();

}