您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > Java > 实验五http请求响应状态管理
实验名称实验五HTTP请求、响应及状态管理实验目的1.掌握HttpRequest对象的应用。2.掌握HttpResponse对象的应用。3.掌握跨页面提交的应用。4.掌握Cookie、Session、Application、Profile应用实验设备安装有WindowsXp/Win7操作系统的计算机;VisualStudio2008,IIS,Dreamweaver软件实验原理基于ASP.net3.5的页面,需要根据用户的请求生成响应。ASP.net通过Page类的属性Request控制请求数据;通过Response属性(即HttpResponse对象)控制输出的内容和方式;在跨页面提交数据时使用客户端和服务器端两种方式进行状态管理。一、实验预习1.了解了如何使用HttpRequest对象和HttpResponse对象。2.了解如何跨页面提交。3.预习了Cookie、Session、Application、Profile的使用方法。二、实验内容(原理、方法、框图)设计并实现一个简易聊天室三、实验过程(步骤、实现代码)1.设计并实现一个简易的聊天室(1)新建网站新建一个网站,添加Web窗体ChatLogin.aspx、Web窗体ChatDisplay.aspx、Web窗体SendMessage.aspx、HTML页Chat.htm和全局应用程序类Global.asax。其中ChatLogin.aspx用于聊天室用户登录;ChatDisplay.aspx用于显示聊天信息;SendMessage.aspx用于发送聊天信息;Chat.htm用于设置框架页;Global.asax用于存储Application_Start事件代码。(2)设计ChatLogin.aspx如图5-1所示,在设计视图添加一个用于布局的表格,向表格输入说明信息,添加2个TextBox控件、2个RequiredFieldValidator控件和1个Button控件,适当调整各控件的大小和位置。ChatLogin.aspx中各控件的属性设置如表5-1所示。图5-1设计界面(1)表5-1各控件的属性设置表控件属性名属性值说明TextBoxIDtxtName“用户名”文本框的编程名称RequiredFieldValidatorIDrfvName“必须输入验证”控件的编程名称ControlToValidatetxtName验证“用户名”文本框Text*验证无效时提示的错误信息TextBoxIDtxtPassword“密码”文本框的编程名称TextModePassword设置“密码”文本框为密码模式RequiredFieldValidatorIDrfvPassword“必须输入验证”控件的编程名称ControlToValidatetxtPassword验证“密码”文本框Text*验证无效时提示的错误信息ButtonIDbtnLogin“登录”按钮的编程名称Text登录“登录”按钮上显示的文本(3)编写ChatLogin.aspx事件代码在所有事件代码外声明一个存放用户名和密码的数组,代码如下://user数组存放用户名和密码。实际工程数据应从数据库中获取。string[,]user={{张三,111111},{王五,111111},{李四,111111}};Web窗体首次载入时执行的代码如下://焦点定位在“用户名”文本框txtName.Focus();按钮btnLogin被单击时执行的事件代码如下:protectedvoidbtnLogin_Click(objectsender,EventArgse){//在数组user中循环查找能匹配的用户名和密码for(inti=0;i=2;i++){if(txtName.Text==user[i,0]&&txtPassword.Text==user[i,1])//匹配成功{//将用户名存入Session变量userSession[user]=user[i,0];//重定向到聊天页Response.Redirect(Chat.htm);}}//在数组user中找不到匹配的用户,输出“用户名或密码错误!”提示信息Response.Write(scripttype='text/javascript'alert('用户名或密码错误!');/script);}(4)设计ChatDisplay.aspx在设计视图添加一个Label控件,设置属性ID值为“lblMsg”。切换到“源”视图,在head标签之间输入下面的代码,用于控制ChatDisplay.aspx,每过4s后自动刷新一次。metahttp-equiv=”Refresh”content=”4”/(5)编写ChatDisplay.aspx事件代码Web窗体首次载入时执行的代码如下:protectedvoidPage_Load(objectsender,EventArgse){lblMsg.Text=Application[message].ToString();}(6)设计SendMessage.aspx如图5-2所示,在设计视图添加1个Label控件、1个TextBox控件和1个Button控件。适当调整各控件的大小和位置。图5-2设计界面(2)SendMessage.aspx中各控件的属性设置如表5-2所示。表5-2各控件的属性设置表控件属性名属性值说明LabelIDlblame显示发言人信息的Label控件编程名称TextBoxIDtxtMessage“聊天消息”文本框的编程名称TextModeMultiLine设置“聊天消息”文本框为多行模式ButtonIDbtnSend“发送”按钮的编程名称Text发送“发送”按钮上显示的文本(7)编写SendMessage.aspx事件代码Web窗体首次载入时执行的代码如下:protectedvoidPage_Load(objectsender,EventArgse){lblName.Text=发言人:+Session[user];if(!IsPostBack){Application[message]+=Session[user]+进入聊天室br/;}}按钮btnSend被单击时执行的事件代码如下:protectedvoidbtnSend_Click(objectsender,EventArgse){Application.Lock();Application[message]+=Session[user]+说:+txtMessage.Text+(+DateTime.Now.ToString()+)br/;Application.UnLock();txtMessage.Text=;}(8)编写Chat.htm可在FrontPage或Dreamweaver中建立一个“上下框架”网页,再将HTML源代码复制出来。也可以在VisualStudio2008中建立一个HTML页,再输入代码如下:!DOCTYPEhtmlPUBLIC-//W3C//DTDXHTML1.0Frameset//EN=Content-Typecontent=text/html;charset=gb2312title我的聊天室/title/headframesetrows=20%,25%framename=topsrc=ChatDisplay.aspxframename=bottomsrc=SendMessage.aspxnoframesbodyp此网页使用了框架,但您的浏览器不支持框架。/p/body/noframes/frameset/html(9)编写Global.asax事件代码网站启动时被触发的事件代码如下:voidApplication_Start(objectsender,EventArgse){Application[message]=;}(10)从浏览ChatLogin.aspx开始对聊天室网站进行测试四、讨论问题及回答通过本次实验,知道了状态管理的重要性,页面之间在传递信息的保存信息的时候,都要涉及到状态管理。就我所知,状态管理可以分为客户端和服务端两种管理形式。如果配置好web.config和使用好Profile对象就可以实现个性化网站了。
本文标题:实验五http请求响应状态管理
链接地址:https://www.777doc.com/doc-4926036 .html