ASP.NET网站聊天室的设计与实现(第3节)_实用技巧

大家都玩过网站聊天室吧,那知道它是怎么实现的吗?
今天我们就来设计一个网站聊天室,用户输入用户名登陆聊天室,采用框架结构实现。
学习内容:
第一步,聊天室首页与简单计数器设计
1、打开VS2008。在“解决方案‘101'下新建网站,命名为Chatroom.默认首页文件为Default.aspx。
2、为Default.aspx添加窗体控件,切换到“设计”视图,从左侧工具箱标准组中拖出2个Lable控件,1个Textbox控件,一个Button控件,最后给输入昵称的Textbox文本添加必填验证。
在“设计”视图中双击Btn1按钮,在Default.aspx.cs中编写如下事件代码:

public partial class _Default : System.Web.UI.Page
{
 protected void Page_Load(object sender, EventArgs e)
 {
 if (Application["user_online"] == null)
 {
 Application["user_online"] = 0;
 }
 Application["user_online"] = (int)Application["user_online"] + 1;
 Label3.Text = "(现在共有" + Application["user_online"].ToString() + "人在线!)";
}
 protected void Button1_Click(object sender, EventArgs e)
{
 if (Page.IsPostBack)
 {
 Session["User_name"]=this.Txt1.Text;
 Response.Redirect("chat.aspx");

 }
 }
}

第二步,构建登录字符串与发言字符串
1、创建Chat.aspx页面文件,使用如下HTML语言可以编写分框架页面程序,把一个窗口分成两半。左半窗口用来存放输入发言内容的页面文件Inputwin.aspx,右半窗口用来存放显示聊天内容的页面文件Showwin.aspx。
2、构建登录消息字符串。在Chat.aspx.cs的Page_Load事件中编写代码如下:

protected void Page_Load(object sender, EventArgs e)
 {
 string user_name = (string)Session["user_name"];
 string sayStr = "来自" + (string)Request.ServerVariables["REMOTE_ADDR"] + "的";
 sayStr = sayStr + "<b><font color=red>" + user_name + "</font></b>";
 sayStr = sayStr + "于" + DateTime.Now + "大驾光临";

 Application.Lock();
 Application["show"] = sayStr + "<br>" + Application["show"];I=I+1
 Application.UnLock();
 }

3、构建发言内容字符串。创建输入发言内容的页面文件Inputwin.aspx。为页面Inputwin.aspx添加控件,这里使用两个DropDownList下拉列表框控件,分别用来选择发言人的性别和心情,一个单行Textbox控件(对谁说);一个多行Textbox控件(发言内容);一个Button按钮(发言按钮),最后添加验证控件。
在“设计”视图中双击Btn1(发言)按钮,在Inputwin.aspx.cs文件的Btn_click事件中编写代码如下:

protected void Button1_Click(object sender, EventArgs e)
 {
 if (Page.IsPostBack == true) //页面数据回传
 {
 String ssex, emotion, who;
 ssex = DropDownList1.SelectedItem.Value; //获取性别
 emotion = DropDownList2.SelectedItem.Text + "的"; //获取发言时表情
 who = "对" + "<b>" + TextBox2.Text + "</b>"; //获取对谁说
 //构建发言字符串:
 String sayStr = "<font size='3' color='00ff00'><b>" + (string)Session["user_name"];
 sayStr = sayStr + ssex + "</b></font>在" + DateTime.Now + emotion + who + " 说:";
 sayStr = sayStr + TextBox3.Text;
 Application.Lock();
 Application["show"] = sayStr + "<br>" + (string)Application["show"];
 Application.UnLock();
 TextBox3.Text = "";// 将发言框清空
 }
 }

4、创建显示发言字符串和发言内容的页面文件(Showwin.aspx),实现代码如下:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
 <title>无标题页</title>
 <meta http-equiv="refresh" content="4"/>
</head>
<body>
 <form id="form1" runat="server">
 <div>
 </div>
 </form>
</body>
</html>

在Showwin.aspx.cs的Page_Load事件中编写代码如下:

public partial class showwin : System.Web.UI.Page
{
 protected void Page_Load(object sender, EventArgs e)
 {
 Response.Write((string)Application["show"]);
 }
}

5、为离开聊天室页面的Exit.aspx.cs文件编写代码如下:

protected void Page_Load(object sender, EventArgs e)
 {
 string sayStr = "<b>" + (string)Session["user_name"] + "</b>";
 sayStr = sayStr + "于" + DateTime.Now + "离开聊天室了";
 sayStr = "<font color='green'>" + sayStr + "</font>";
 Application.Lock();
 Application["show"] = sayStr + "<br>" + (string)Application["show"];
 Application["user_online"] = (int)Application["user_online"] - 1;
 Application.UnLock();
 Response.Redirect("chatroom.aspx");
}

6、运行聊天室首页Default.aspx。

运行效果图

总结
    设计网站聊天室,听起来就好像是已经进入到了网站制作这个环节,看到自己设计的一个功能很简单的聊天室,有一点点的成就感,虽然这只是万里长城的第一步。通过这次学习理解到了Session与Application的各自作用,学会了如何使页面分成两个窗口,如何找到正确的事件进行编写,总体来说对网页设计有了一些感觉,希望大家也能喜欢,试着设计一个属于自己的网站聊天室吧

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索asp.net
网站聊天室
,以便于您获取更多的相关知识。

时间: 2025-01-28 14:17:20

ASP.NET网站聊天室的设计与实现(第3节)_实用技巧的相关文章

asp.net网站防恶意刷新的Cookies与Session解决方法_实用技巧

本文实例讲述了asp.net网站防恶意刷新的Cookies与Session解决方法,是WEB程序设计中非常实用的技巧.分享给大家供大家参考.具体实现方法如下: Session版实现方法: public double time; public const int freetime = 1;//防刷冰冻时间间隔,当前为1秒 #region 防恶意刷新 if (Session.SessionID == null) { Response.End(); } else if (Session["sionid

验证一个ASP.NET应用程序和页面的生命周期的实现代码_实用技巧

如果我们能更好地掌握这样一个过程,那么对单个ASP.NET Page的生命周期也能更好地了解: 下面介绍如何编写一个简单的ASP.NET 页面和一个简单的HttpModule,对MSDN里提到的ASP.NET的生命周期进行验证 1. 首先使用Visual Studio 2010建立一个空的ASP.NET网站 (ASP.NET 4.0) 2. 添加一个Default.aspx,添加三个ASP.NET控件,分别为TextBox,Button和Validator: 复制代码 代码如下: <form i

管理员登录设计(第7节)_实用技巧

本文实现管理员登录效果,当用户名和密码正确时,弹出登录成功提示,否则弹出用户名或密码错误提示. 今天有以下三大学习任务:学习任务一 了解命名空间的定义   定义   namespace 空间名   {  类  }  引用  using 空间名 学习任务二 实现管理员登陆界面的设计界面布局具体如图所示: 小提示:在插入表格的时候,应注意表格的大小.布局.边框.背景的设置,提前做好准备,可以节省接下来的工作:第二点就是区分image与imagebutton. 学习任务三 实现登录界面的验证步骤1:使

MVC4制作网站教程第四章 部分栏目功能实现代码_实用技巧

序 一.用户 二.用户组 三.栏目 3.1添加栏目 3.2浏览栏目 3.3更新栏目 3.4删除栏目 3.5前台栏目浏览 -- 栏目模型: 模型应有一下字段:栏目名称,父栏目id,栏目类型,内容模型,栏目视图,内容视图,链接地址,栏目排序.暂时先想到这么多,先这这么写着.  栏目名称和父栏目id不用说很简单.  栏目类型有三种:普通栏目-就是一般的栏目:单页栏目--是指栏目就是一个页面,像公司介绍,联系地址等:外部链接-是指栏目点一下就跳转到一个链接.  内容模型--是指栏目为普通栏目时,栏目的内

ASP.NET网站模板的实现(第2节)_实用技巧

我们的主要学习任务是掌握站点地图文件和站点导航控件的使用以及熟练掌握创建母版页和生成内容页的方法,开始学习吧 学习内容: 第一步,网站的面包屑导航 1.创建ASP.NET应用程序,运行Visual Studio2008,在菜单栏中选择"文件"→"新建"→"项目"命令,进行操作. 2.在"解决方案资源管理器"面板中,右击"解决方案'0931'",在弹出的快捷菜单中选择"添加"→"

ASP.NET MVC5网站开发用户修改资料和密码(六)_实用技巧

在上一篇文章网站开发(五)中实现了用户的注销和登录,其实代码里落了点东西,就是用户登录要更新最后一次登录时间和登录IP,这次补上.今天做修改资料和修改密码,TryUpdateModel是新用到的东西. 现完善昨天的登录代码: 一.用户导航菜单这个就是侧栏的导航,以后所有控制器中action名都为Menu.目标效果如下: 先UserController添加Menu action.直接返回分布视图.右键添加视图 <div class="panel panel-primary">

Ajax+asp.net智能匹配检索(含图含完整代码)_实用技巧

如图: 本技术的核心是通过ASP.NET Ajax Control Toolkit中的AutoCompleteExtender控件实现. AutoCompleteExtender控件实现自动输入建议的功能,通过调用WebService或本页面对应的方法名来获取提示数据,供用户达到自动选择的功能. 实现过程: 1.首先建立数据大家随便啊,然后建立个简单的表. 2.新建1个Ajax网站,名字自己随便起哈,在建一个主页面Default.aspx. 3.在Default.aspx中添加1个ScriptM

ASP.NET实现数据的添加(第10节)_实用技巧

这节以新闻网站为例实现新闻的添加,并把附件和图片上传至服务器. 学习内容 步骤一 添加新项,创建Web窗体并将其命名为"newsadd.aspx"步骤二 布局页面,创建6行2列的表格 步骤三  数据源控件定义数据的方法,在newschuli.cs页面中编写代码如下: public static void addnews(newsclass news1) { using (SqlConnection cn = dbconn.GetConnection()) { cn.Open(); Sq

Asp.Net MVC3.0如何项目部署到Win7 64位系统_实用技巧

之前一直是通过Visual Studio直接F5来运行自己编写的项目或者小程序,很少通过部署发布到IIS上面,于是自己便在自己的笔记本上进行测试,结果还真是发现了不少问题,于是自己重新通过虚机程序进行全裸的新一次部署实践.部署进程第一步:现在Win7 64位操作系统上安装IIS,通过控制面板位置即可开启安装.如下图所示: 勾选后点击确定进行安装即可.第二步:IIS安装成功后,因为我的程序是通过VS2010开发的,而且是Asp.Net MVC3.0的程序,而且我的Win7 64位虚机也是新安装的,