实验题目:设计型实验报告_聊天室设计
实验目的:(1)通过本实验进一步理解ASP.NET状态管理和跨页数据传递的概念及常用技术
(2)理解内置对象特点和使用方法
(3)理解保存用户临时数据的基本原理
实验内容与步骤:
实验内容:
编写一个简单的聊天室程序,在登陆页面,用户可以在输入姓名进行登陆。每个用户可以选择自己的昵称并且可以看到彼此发送的信息。主页面分两个窗口,上面窗口显示聊天内容,下面窗口显示输入聊天信息的表单,实现了基本的聊天功能。同时可以选择聊天的背景和字体的颜色。
实验步骤:
(1) 新建一个ASP.NET Web应用程序,添加需要的文件。
(2) 在Default.asp文件设计窗口添加控件设置对应控件的属性并编辑控件对应代码。
(3)在main.aspx和send.aspx文件中添加代码。
实验记录:
1、新建一个ASP.NET网站,切换到设计视图,添加一个用于布局的HTML表格,适当调整表格的行列数,在表格中输入必要的文字,添加控件TextBox1和TextBox2,以及控件LinkButton1,设置各对象的属性值,TextBox1的属性ID值为TextUserName,TextBox2的属性ID值为TextPassword,TextMode属性值为Password,LinkButton1属性ID值为LinkLogin,Text值为“进入我的聊天室”。设计界面如图所示:
2、添加登入页面chat.htm 、聊天室主界面 main.aspx、 全局文件Global.asax、聊天室下屏send.aspx,在解决方案栏的显示如图所示:
3、在Default.aspx文件中的设计页面,双击对应的控件,转到控件代码编写页面,对控件代码进行编写,编写代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
struct ChatUser
{
public string UserName;
public string Password;
public string NickName;
}
ChatUser[] UserInfo =new ChatUser[6];
protected void Page_Load(object sender, EventArgs e)
{
this.Title = "请登录";
TextUserName.Focus();
}
protected void LinkLogin_Click(object sender, EventArgs e)
{
if (TextUserName.Text == "" || TextPassword.Text == "")
{
Response.Write("<script language=javascript>alert('请输入完整的登录信息!');</script>");
return;
}
UserInfo[0].UserName = "gaoxueyan"; UserInfo[0].Password = "123456"; UserInfo[0].NickName = "幻雪恋";
UserInfo[1].UserName = "wanghuifang"; UserInfo[1].Password = "234567"; UserInfo[1].NickName = "小王";
UserInfo[2].UserName = "liyifen"; UserInfo[2].Password = "345678"; UserInfo[2].NickName = "小李";
for (int i = 0; i < 3; i++)
{
if (TextUserName.Text == UserInfo[i].UserName && TextPassword.Text == UserInfo[i].Password)
{
Session["Nick"] = UserInfo[i].NickName;
Response.Redirect("chat.htm");
}
}
Response.Write("<script language=javascript>alert('用户名或密码错!');</script>");
}
}
4、在main.aspx设计视图页面添加一个Label1控件,设置其属性ID值为ChatMsg,Text值为Label。
main.aspx.cs页面代码添加如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class main : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Session["nick"] == null)
{
Response.End();
}
ChatMsg.Text = Application["Chat"].ToString();
Response.AddHeader("Refresh", "9"); //设置页面每9秒刷新一次
}
}
5、Send.aspx设计视图界面如图所示:
设置各控件属性,Label的属性ID值为U_NickName,Text值为Label。TextBox的属性ID值为SendMsg,TextMode属性值为MultiLine。Button的属性ID值为Submit,Text属性值为“提交”。双击控件,转到控件代码编写页面,对控件代码进行编写,编写代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class send : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Session["Nick"] == null)
{
Response.End();
}
U_NickName.Text="发言人:" + Session["Nick"].ToString();
if (!IsPostBack)
{
Application["Chat"] = Application["Chat"] + "<b>" + Session["Nick"].ToString() + " 进入幻雪恋的聊天室</b><br>";
}
}
protected void Submit_Click(object sender, EventArgs e)
{
string UserChat;
UserChat = "<font color=blue>" + Session["Nick"].ToString() + "</font>说:";
UserChat = UserChat + SendMsg.Text;
UserChat = UserChat + "(<i>" + DateTime.Now.ToString() + "</i>)";
UserChat = UserChat + "<br>";
Application.Lock();
Application["Chat"] = Application["Chat"] + UserChat;
Application.UnLock();
SendMsg.Text = "";
}
}
6、运行程序,在登陆界面按照之前(步骤3)设置的用户名和密码进行登录,如图所示:
5、 单击“进入我的聊天室”在下方的对话窗口输入所要说的文字,按“提交”即可在聊天页面出现所输入的内容,重复步骤(4),可显示多人会话内容,结果如图所示:
分析与体会:
通过本次试验让我对ASP.NET状态管理和跨页数据传递的概念及常用技术、内置对象特点和使用方法、保存用户临时数据的基本原理有了进一步理解。对Application、Session对象的使用有了更深一步的了解。也让我明白了其实在学习过程中,我们就应该多多动手,把理论运用于实践,做到理论与实践相结合,只有这样,我们才能更加深刻的理解和巩固所学知识。千万不能眼高手低,另外,动手实践检验我们学习效果的一个重要办法。让我知道动手实践的过程也是一个收获快乐成果的过程。
第二篇:JAVAWEB设计一个简易聊天室实验报告
20##-2012学年第二学期
电信学院计算机系
实验报告
课程名称JAVA WEB应用程序设计
实验名称基于JSP的网络聊天室
班 级 XXXXXX
学 号 XXXXXXXXXXX
姓 名 XXXXXXXXXX