《ASP.NET动态网站开发案例教程第2版》课件-第4章页面跳转与状态管理_第1页
《ASP.NET动态网站开发案例教程第2版》课件-第4章页面跳转与状态管理_第2页
《ASP.NET动态网站开发案例教程第2版》课件-第4章页面跳转与状态管理_第3页
《ASP.NET动态网站开发案例教程第2版》课件-第4章页面跳转与状态管理_第4页
《ASP.NET动态网站开发案例教程第2版》课件-第4章页面跳转与状态管理_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章页面跳转与状态管理ASP.NET(C#)动态网站开发案例教程(第2版)知识点页面执行过程页面跳转跨页面传值ASP.NET状态管理ASP.NET缓存技术4.1页面执行过程

在浏览器打开WebForm网页时,ASP.NET会先编译WebForm网页,分析网页及其代码,然后以动态的方式产生新的类(Class),再编译新的类。WebForm网页编译后所创建的类是从Page类派生而来,因此,WebForm网页可使用Page类的属性、方法与事件。

4.1.1Page对象

Page对象常用属性(1)Application:为当前Web请求获取HttpApplicationState对象。(2)Cache:获取与网页所在之应用程序相关联的Cache对象。(3)ErrorPage:设置当网页发生未处理的异常情况时,要将用户定向到哪个错误信息网页。(4)IsPostBack:False表示是第一次加载该网页,True表示是因为返回数据而被重新加载。(5)IsValid:判断网页上的验证控件是否全部验证成功,返回True表示全部验证成功,返回False表示至少有一个验证控件验证失败。(6)Request:获取请求网页的HttpRequest对象,主要是用来获取浏览器端的有关信息。(7)Response:获取与Page关联的HttpResponse对象。该对象将HTTP响应数据发送到浏览器端。(8)Server:获取Server对象,它是HttpServerUtility类的实例。(9)Session:获取ASP.NET提供的当前Session对象。4.1.1Page对象4.1页面执行过程

4.1页面执行过程

Page对象常用方法(1)FindControl:在页面容器中搜索指定的服务器控件。(2)MapPath:检索虚拟路径(绝对的或相对的)或应用程序相关的路径映射到的物理路径。(3)SetFocus:将浏览器焦点设置为具有指定标识符的控件。(4)Validate:指示该页上包含的所有验证控件验证指派给它们的信息。4.1.1Page对象Page对象常用事件(1)Error:当引发未经处理的异常时发生。(2)Init:当网页初始化时会触发此事件,在ASP.net网页被请求时,Init是网页执行第一个触发的事件。(3)Load:当网页被载入时会触发此事件。(4)Uload:当服务器控件从内存中卸载时发生。4.1.1Page对象4.1页面执行过程

4.1页面执行过程

WEBForm网页执行的流程Page对象的Load事件服务器控件的事件Page对象的Unload事件Page对象的Init事件图4-1WebForm网页执行的流程4.1.2WebForm网页执行的流程

4.1页面执行过程通常Init事件是用来设置网页或控件的初始值,当用户返回窗体数据时,由于网页已经初始化过,所以不会再触发Init事件,即,同一个网页只会触发一次Init事件。

【例4-1】Page对象的Init事件示例,执行结果如图4-2所示。

Page对象的Init事件图4-2Page对象的Init事件4.1.2WebForm网页执行的流程

4.1页面执行过程

Page对象的Load事件图4-3Page对象的Load事件

【例4-3】Page对象的Load事件改进示例。

改进方法:利用Page对象的IsPostBack属性,来判断网页是在何种情况下加载,返回True表示是因为客户端返回数据而被重新加载,返回False表示是第一次载入该网页。

【例4-2】Page对象的Load事件示例,执行结果如图4-3所示。4.1.2WebForm网页执行的流程

4.2页面跳转页面跳转共有四种方式,即:超链接、服务器传输(Server.Transfer)、浏览器重定向(Response.Redirect)、跨页面发送(CrossPosting)。【例4-4】用超链接、服务器传输、重定位、跨页面四种方式实现页面跳转,如图4-4~4-5所示(注意页面跳转地址的写法)。图4-4跳转起始页面图4-5跳转目标页面4.2页面跳转用超链接控件HyperLink实现页面跳转的方法已在前面章节中介绍过,页面跳转方法为:将HyperLink控件的NavigareUrl属性设置为跳转页面地址即可。例如:NavigareUrl=”~/JumpTarget.aspx”4.2.1超链接控件实现页面跳转4.2页面跳转所谓跨页面发送是使用按钮控件的PostBackUrl属性实现页面跳转,因此,该跳转方法只需在页面上添加一个按钮,并将其PostBackUrl属性设置为跳转页面地址即可。例如:设置按钮的属性为:PostBackUrl=“~/Register.aspx”即可从当前页面跳转到目标页Register.aspx。4.2.2跨页面发送实现页面跳转4.2页面跳转Response是ASP.NET的内置对象,用于页面跳转、向客户端输出信息等操作。

Response对象4.2.3浏览器重定向实现页面跳转4.2页面跳转(1)BufferOutput:获取或设置一个值,该值指示是否缓冲输出。(2)Cache:获取Web页的缓存策略。(3)Charset:获取或设置输出流的HTTP字符集。(4)Cookies:获取响应Cookie集合。(5)Expires:用语指定浏览器上缓冲存储的有多效期。(6)IsClientConnected:获取一个值,通过该值指示浏览器端是否仍连接在服务器上。(7)Output:启用到输出HTTP响应流的文本输出。(8)Status:设置返回到浏览器端的Status栏。

Response对象常用属性4.2.3浏览器重定向实现页面跳转4.2页面跳转(1)Write()向浏览器端发送字符串信息。

如:Response.Write("正在学习页面跳转程序设计!");(2)Clear()清除缓存。(3)Flush()强制输出缓存的所有数据。(4)Redirect()网页转向地址。

Response.Redirect(“/“);

Response.Redirect("Main.aspx");

若要将值传送到目标页,则需要使用变量,如:

Response.Redirect(“Main.aspx?&name=Zhangsan”);

1.Response对象的方法4.2.3浏览器重定向实现页面跳转4.2页面跳转图4-6Response输出信息【例4-5】编写输出当前时间的按钮事件驱动程序,运行界面如图4-6所示。4.2.3浏览器重定向实现页面跳转4.2页面跳转服务器对象Server是ASP.NET的内置对象,用于页面跳转、获取服务器名称等操作。4.2.4服务器传输实现页面跳转服务器对象Server服务器对象的属性(1)MachineName:获取服务器名称。(2)ScriptTimeout:获取或设置请求超时时间,默认值为90s。4.2页面跳转(1)Transfer(“页面地址”):实现页面跳转。如:Server.Transfer("JumpTarget.aspx");(2)MapPath:返回与Web服务器上指定虚拟路径相对应的物理文件路径。(3)HtmlDecode:对HTML字符串进行解码。(4)HtmlEncode:对字符串进行HTML编码。如:stringstr=Server.HtmlEncode(“<B>HTML内容</B>”);Str=Server.HtmlDecode(str);(5)Execute:使用另一页执行当前请求。这个方法主要是用在页面设计上面,而且他必须是跳转同一站点下的页面。这个方法是需要将一个页面的输出结果插入到另一个页面的时候使用,大部分是在表格中,将某一个页面类似于嵌套的方式存在于另一页面。4.2.4服务器传输实现页面跳转服务器对象的方法4.2页面跳转图4-7服务器对象的使用示例【例4-6】编写显示服务器名,对HTML字符串进行编码与解码的事件驱动程序,如图4-7所示。4.2.4服务器传输实现页面跳转4.2页面跳转1.当需要把用户跳转到另一台服务器上的页面的时候,使用Redirect方法。2.当需要把用户跳转到非aspx页面时候,如html,使用Redirect方法。3.需要把查询字符串作为URL一部分的时候保留传给服务器的时候,因为其他方法不能做到2次postback,把数据先带回服务器,使用Redirect。4.需要aspx页面间的转换,使用Transfer。5.当需要把aspx页面的输出结果插入到另一个aspx页面的时候使用Execute方法。4.2.5ASP.NET页面跳转小结4.3跨页面传值

使用Querystring实现跨页面传值使用Cookie对象实现跨页面传值使用Session对象实现跨页面传值使用Application对象实现跨页面传值

在网站程序设计中,除了实现页面跳转外,还必须实现跨页面传值,为此ASP.NET使用以下四种方法实现跨页面传值:

4.3.1使用Querystring实现跨页面传值使用Querystring实现跨页面传值示例图4-9QueryString信息发送页面图4-10QueryString信息接收页面【例4-7】使用QueryString实现信息从起始页到目标页的传送,如图4-9~图4-10所示。4.3跨页面传值

4.3.1使用Querystring实现跨页面传值(1)发送:用Response对象的Redirect方法发送数据。发送语句格式如下:Redirect(Url[?&var1=value1&var2=value2…])其中:Url为跳转目标页面地址变量var1、var2将值value1、value2传送给目标页面。如:Response.Redirect(“JumpTarget.aspx?&name=zhou”);(2)接收:用Request对象的QueryString属性接收数据。接收语句格式如下:<变量>=Request.QueryString[“var”];跨页面传送的方法4.3跨页面传值

4.3.1使用Querystring实现跨页面传值

Request对象1.Request对象Request对象是由System.Web.HttpRequest类实现的,用来获取浏览器端信息。2.Request对象的属性(1)QueryString:获取

HTTP查询字符串变量集合。如用Response对象发送数据:

Response.Redirect("QueryStringMain.aspx?&name="+txt_Name.Text+");

用Request对象接收数据:txt_Name.Text=Request.QueryString["name"];(2)Cookies:获取浏览器端发送的Cookie信息。(3)Browser:获取有关正在请求的浏览器端的浏览器功能的信。首先就要判断浏览器端浏览器的特性,Request对象的Browser属性就可以方便地获取浏览器端浏览器的特性,如类型、版本、是否支持背景音乐等。4.3跨页面传值

4.3.1使用Querystring实现跨页面传值

Request对象(4)Path:获取当前请求的虚拟路径通过使用Path的方法可以获取当前请求的虚拟路径,示例代码如:Label1.Text=Request.Path.ToString();//获取请求路径(5)UserHostAddress:获取远程浏览器端的

IP主机地址通过使用UserHostAddress方法,可以获取远程浏览器端IP主机的地址,示例代码如下:Label1.Text=Request.UserHostAddress;(6)Form:获取表单变量的集合(7)ServerVariables:获取服务器与浏览器端系统信息。3.Request对象的方法(1)BinaryRead:执行对当前输入流进行指定字节数的二进制读取。(2)MapPath:为当前请求将请求的

URL中的虚拟路径映射到服务器上的物理路径。4.3跨页面传值

4.3.1使用Querystring实现跨页面传值【例4-8】使用表单传送数据示例,如图4-11所示。图4-11使用表单传送数据示例4.3跨页面传值

【例4-9】通过环境变量获取服务器与客户端信息示例,如图4-12所示。4.3.1使用Querystring实现跨页面传值4.3跨页面传值

4.3.2使用Cookie对象实现跨页面传值【例4-10】使用Cookie对象实现Cookie信息从起始页到目标页的传送。如图4-13~图4-14所示.

1使用Cookie实现跨页面传值示例图4-13Cookie信息发送页面图4-14Cookie信息接收页面4.3跨页面传值

(1)发送HttpCookie<Cookie对象>=newHttpCookie(“var”);Cookie对象.[“var1”]=<value1>;Response.Cookies.Add(“Cookie对象”);Response.Redirect(Url);其中:Url为跳转目标页面地址,变量var1将值value1传送给目标页面。(2)接收HttpCookie<Cookie对象>=Request.Cookies[“var”];<变量>=Cookie对象.[“var1”];跨页面传送的方法4.3.2使用Cookie对象实现跨页面传值4.3跨页面传值

4.3.3使用Session对象实现跨页面传值【例4-11】使用Session对象实现信息从起始页到目标页的传送。如图4-15~图4-16所示。使用Session实现跨页面传值示例图4-15Session信息发送页面图4-16Session信息接收页面4.3跨页面传值

4.3.3使用Session对象实现跨页面传值(1)发送的方法Session[“var”]=<value>;Response.Redirect(Url);其中:Url为跳转目标页面地址,变量var将值value传送给目标页面。(2)接收的方法<变量>=Session[“var”];跨页面传送的方法4.3跨页面传值

4.3.4使用Application对象实现跨页面传值【例4-12】使用Application对象实现信息从起始页到目标页的传送。如图4-17~图4-18所示。使用Application实现跨页面传值示例4.3跨页面传值

(1)发送Application[“var”]=<value>;Response.Redirect(Url);其中:Url为跳转目标页面地址,变量var将值value传送给目标页面。(2)接收<变量>=Application[“var”];跨页面传送的方法4.3.4使用Application对象实现跨页面传值4.3跨页面传值

4.4ASP.NET状态管理(1)伴随用户请求页面在Web服务器与浏览器之间传送文本信息。(2)用于保存访问者的信息,如用户访问网站的次数等。4.4.1浏览器端的状态管理Cookie对象Cookie是System.Web命名空间中HttpCookie类定义的对象。Cookie对象的作用

ViewState

是状态管理中常用的一种对象,可以用来保存页和控件的值。视图状态是ASP.NET页框架默认情况下用于保存往返过程之间的页面信息以及控件值的方法。ViewState包含的状态与控件发送给浏览器端时所包含的状态相同。当浏览器把窗体发送给服务器时,ViewState包含了初始值,但所发送的控件包含新值。如果初始值和新值有区别,就调用相应的时间处理程序。Viewstate对象4.4ASP.NET状态管理(1)作为Response与Request对象的属性,完成数据的发送与接收任务。发送:Response.Cookie[“var”].Value=<value>;接收:<变量>=Requst.Cookie[“var”].Value;如例4-10中用Cookie完成数据的跨页面传值操作。(2)定义Cookie对象,完成数据传送操作因为Cookie是System.Web命名空间中HttpCookie类定义的对象,所以可以用HttpCookie类定义Cookie对象,定义格式如下:HttpCookie<Cookie对象>=newHttpCookie(“var”);4.4.1浏览器端的状态管理Cookie对象的使用方法4.4ASP.NET状态管理(1)Value:获取或设置单个Cookie值。(2)Expires:指定Cookie的过期日期。(3)Name:设置或获取Cookie名称。(4)Domain:指定Cookie中信息发送的域。(5)Path:指定Cookie仅只发送到对该路径的请求中。(6)Secure:指定Cookie是否安全。(7)Values:获取在单个Cookie对象中包含的键值对的集合。4.4.1浏览器端的状态管理Cookie对象的属性4.4ASP.NET状态管理(1)Add:增加一个Cookie变量。(2)Clear:删除Cookie集合中所有变量。(3)Get:通过变量名获取Cookie的变量值。(4)GetKey:以索引值获取Cookie变量名称。(5)Remove:通过Cookie变量来删除Cookie变量。4.4.1浏览器端的状态管理Cookie对象的方法【例4-13】Cookie对象使用示例,定义cookie对象,并用cookie对象完成跨页面传值操作。运行网站程序,效果如图4-10与图4-11所示。4.4ASP.NET状态管理Session对象用于存储、管理用户发送与接收的会话信息。当用户在应用程序的页面之间跳转时,存储在Session对象中的变量将不会丢失,而且在整个用户会话中一直存在下去,直到服务器中止该会话为止。4.4.2服务器端的状态管理Session对象的作用(1)Count:获取会话状态下Session对象的个数。(2)TimeOut:Session对象的生存周期。(3)SessionID:用于标识会话的惟一编号。Session对象的属性4.4ASP.NET状态管理(1)Abandon:取消当前会话。(2)Add:向当前会话状态集合添加一个新项。(3)Clear:清空当前会话状态集合中所有键与值。(4)CopyTo:将当前会话状态值集合复制到一维数组中去。(5)Remove:删除会话状态集合中的项。(6)RemoveAll:删除所有会话状态值。(7)RemoveAt:删除指定索引处的项。4.4.2服务器端的状态管理Session对象的方法4.4存储页面信息4.4.2服务器端的状态管理【例4-14】在网站ex4_1的网页SessionTarget.aspx中,添加一个Label(ID:lbl_Count),在接收按钮事件驱动程序中添加一行代码如下:

protectedvoidbtn_Access_Click(objectsender,EventArgse){txt_Name.Text=Session["name"].ToString();txt_Age.Text=Session["age"].ToString();txt_Sex.Text=Session["sex"].ToString();lbl_Count.Text="当前会话对象个数为:"+Session.Count.ToString();}4.4ASP.NET状态管理4.4.2服务器端的状态管理运行SessionTarget.aspx后,显示“前会话对象个数为:3”的信息,如图4-19所示。4.4ASP.NET状态管理Session、Application对象所定义的变量均为网站中各页面共享全局变量。对于不同用户所使用的同名Session变量(如,Seesion[“user_name”]),Session对象将为用户分配不同的变量存储空间,保存不同用户各自变量值,并用SessionID进行惟一标识。用户Session变量的生命周期从用户登录网站开始到用户退出网站为止。对于用户使用的同名Application变量(如,Application[“user_name”]),Application对象将为不同用户分配同一变量存储空间,保存所有用户变量值,其生命周期从网站服务器启动开始到网站服务器关闭为止。4.4.2服务器端的状态管理

Application对象的作用4.4ASP.NET状态管理4.4.2服务器端的状态管理Application对象存储信息的语法Application[“变量”]=<表达式>存储Session、Application对象中的全局变量信息可以通过赋值语句传送到各页面中的控件,如:Label.Text=Session[“变量”]TextBox.Text=Application[“变量”]也可以通过Response.Write语句从屏幕上输出。Response.Write(Application[“变量”]);Response.Write(Session[“变量”]);4.4ASP.NET状态管理4.4.2服务器端的状态管理

使用Application对象的方法Application.Lock();Applicaton[“user_name”]=user_name;Application.UnLock();Application对象是ASP.NET的内置对象,用于存储同一个应用程序中所有用户之间的共享信息。4.4ASP.NET状态管理4.4.2服务器端的状态管理

Application[“var1”]=“user1信息”+“user2信息”+“usern信息”Application[“var2”]=“user1信息”+“user2信息”+“usern信息”服务器内存中的Session对象Var1 user1信息

Var2 User2信息

… … varn usern信息

PageiSession[“var1”]=“user1信息”;User1登录User2登录Usern登录Pagek<变量>=Session[“var1”]Pagen<变量>=Session[“varn”]PagejSession[“var2”]=“user2信息”;PagejSession[“var2”]=“user2信息”;图4-20Session与Application对比4.4ASP.NET状态管理4.4.2服务器端的状态管理

【例4-15】使用ASP.NET对象设计校友录聊天室,设计要求:(1)编写聊天室登录网页程序,如图4-21所示;(2)编写聊天室主页面程序,如图4-22所示。4.4ASP.NET状态管理4.4.2服务器端的状态管理

4.5ASP.NET缓存技术缓存是指系统或应用程序将频繁使用的数据保存到内存中,当系统或应用程序再次使用时,能够快速的获取数据。它的弊端在于显示的内容可能不是最新,最精确的。大量的网站页面是采用动态的方式,根据用户提交的不同请求创建生成页面。正如我们所知的,动态页面有助于根据用户要求来提供定制的动态内容。动态页面也利于获取在数据库中每时每刻更新的资料。缺点是为每个用户请求生成同一页面增加了系统开销。为克服此问题,一些网站用页面生成引擎对所有页面生成html静态页面。但这样生成的页面对所有用户的请求内容都是相同。ASP.NET提供了缓存技术有助于我们最大程度地解决这个问题。它能缓存输出的页面,保存在存储器当中,缓存用户请求的内容。缓存的特点可以根据不方式来定制的。ASP.Net缓存主要分为两大类:页面输出缓存和应用程序缓存。

4.5ASP.NET缓存技术4.5.1页面输出缓存

1.缓存整个页面为缓存一个页面输出的内容,我们要在面面顶部指定一个@OutputCache命令。语法如下所示:<%@OutputCacheDuration=5VaryByParam="None"%>这条指令有两个属性。他们是:Duration属性设置被缓存输出的内容有效期是多少秒。在时间超过指定的有效期后,过期的缓存内容会删除,并会在下次用户请求中重新调用页面生成缓存内容。再次的缓存内容过10秒后此过程又会重复。VaryByParam属性是必须的,并且指明查询字串参数不同使缓存产生变化。在上面的代码片断中,我们指定VaryByParam属性是“None”,这意味着不论传递的查询字串参数如何不同所返回的页面内容是相同的。一些动态页面要根据不同的浏览来生成不同的内容。在这种情况下就要规定缓存输出内容要因不同浏览器而不同。@OutputCache命令要改为:<%@OutputCacheDuration=5VaryByParam="id"VaryByCustom="browser"%>该指令不仅让缓存输出内容因浏览器不同而不同,而且也会因浏览器版本不同而不同。

4.5ASP.NET缓存技术4.5.1页面输出缓存

2.缓存局部页面有时我们可能只是想缓存一个页面的一部分。例如,我们可能用这样的页面,对所有浏览用户都有同样的内容,这个页面有一个标题。这个标题可能是某个文本/图象组成,并且每天数据都可能改变。在这种情况下,我们就会只想缓存这个标题一天的有效期。解决方法是把标题内容放入一个用户控件当中,然后指定这个用户控件应该被缓存。这个技术被称为局部缓存。为了指定应该被缓存的用户控件,我们利用@OutputCache指令,就象整个页面缓存的用法一样。【例4-12】对一个网页设置时间为10秒的完整网页缓存。

4.5ASP.NET缓存技术4.5.2应用程序缓存

Cache对象1.Cache对象对高速缓存,需要使用System.Web.Caching命名控件和Cache类。对于每个应用程序域均创建该类的一个实例,并且只要对应的应用程序域保持活动,该实例便保持有效。2.Cache对象的属性(1)Count:获取存储在缓存中的项数。(2)Item:获取或设置指定键处的缓存项。3.Cache对象的方法(1)Add:将指定项添加到Cache对象。(2)Get:从Cache对象检索指定项。(3)Remove:从应用程序的Cache对象移除指定项。(4)Insert:向Cache对象插入项。使用此方法的某一版本改写具有相同key参数的现有Cache项。

4.5ASP.NET缓存技术4.5.2应用程序缓存

【例4-13】读取文本文件的内容,通过对Cache的设置,读取,删除了解程序缓存的应用。界面如图4-17所示图4-17应用程序缓存示例工作任务7获取用户输入信息和浏览器端环境信息1.项目描述本工作任务用于创建环境变量获取服务器页面页面。本任务用利用Request对象的ServerVariables属性可以方便地取得服务器端或浏览器端的环境变量信息,如浏览器端的IP地址等,效果如图4-18所示。2.相关知识本项目的实施,需要了解页面、文本框、标签控件,常用属性、方法与事件;熟练使用ASP.NET常用对象。3.项目设计(1)利用Request对象的ServerVariables属性可以方便地取得服务器端或浏览器端的环境变量信息。(2)在相应文本框中输出结果。图4-18环境变量获取服务器页面工作任务7获取用户输入信息和浏览器端环境信息4.项目实施(1)打开解决方案ex4_1与网站ex4_1。(2)在网页RequestServer.aspx的表格Table控件中添加9行,按图4-18要求在表格中添加8个TextBox、10个Label。(3)编写页面加载事件驱动程序。protectedvoidPage_Load(objectsender,EventArgse){TextBox1.Text=Request.ServerVariables["Local_Addr"];TextBox2.Text=Request.ServerVariables["Remote_Addr"];TextBox3.Text=Request.ServerVariables["HTTP_Host"];TextBox4.Text=Request.ServerVariables["Request_method"];TextBox4-Text=Request.ServerVariables["Logon_User"];TextBox6.Text=Request.ServerVariables["Server_Name"];TextBox7.Text=Request.ServerVariables["Server_Port"];TextBox8.Text=Request.ServerVariables["Server_Protocol"];}5.项目测试运行网站程序,如图4-18所示。工作任务8记录用户访问网站的时间和次数1.项目描述本工作任务综合应用所学ASP.NET对象,输出访问者的信息。如图4-19所示提交网页Login.aspx,中输入用户名,在显示页面Main.aspx中显示用户的名称,网站记数器效果,用户端的IP地址以及用户所示用机器的操作系统等内容,如图4-20所示。图4-19提交页面Login.aspx图4-20显示页面Main.aspx工作任务8记录用户访问网站的时间和次数2.相关知识本项目的实施,需要了解页面、文本框、标签控件,常用属性、方法与事件;熟练使用ASP.NET常用对象。3.项目设计(1)设计网页Login.aspx页面。(2)将用户名传递给Main.aspx页面。(3)显示页面Main.aspx中显示用户的名称,网站记数器效果,用户端的IP地址以及用户所示用机器的操作系统等内容。4.项目实施(1)打开解决方案ex4_1与网站ex4_1。(2)添加网页Login.aspx。(3)编写按钮的事件驱动程序。protectedvoidbutclick(objectsender,EventArgse){Stringuname=username.Text.Trim();HttpCookiecookie1=newHttpCookie("test1");cookie1["username"]=uname;Response.Cookies.Add(cookie1);Server.Transfer("main.aspx");}工作任务8记录用户访问网站的时间和次数(4)添加网页Main.aspx。(5)编写页面加载事件驱动程序。protectedvoidPage_Load(objectsender,EventArgse){Application.Lock();Application["count"]=Convert.ToInt32(Application["count"])+1;Application.UnLock();//获得cookieHttpCookiecookie1=Request.Cookies["test1"];//确定是否存在用户输入的cookieif(cookie1==null){Response.Write("没有发现指定的cookie<br><hr>");}else{Label1.Text="欢迎,<fontcolor=blue>"+cookie1.Values["username"]+"</font>登陆我们的网站.";工作任务8记录用户访问网站的时间和次数Label2.Text="你是第<fontcolor=blue>"+Application["count"]+"</font>个光临本站的人<br>你的IP地址是:<fontcolor=blue>"+Request.UserHostAddress+"</font><br>你使用的操作系统是:<fontcolor=blue>"+Request.Browser.Platform+"</font>";}}5.项目测试运行网站程序,如图4-19所示。工作任务9设计校友录聊天室1.项目描述本工作任务综合应用所学ASP.NET对象,设计校友录聊天室,编写聊天室登录网页程序,如图4-21所示,编写聊天室主页面程序,如图4-22所示。图4-21聊天室登录页面Login.aspx工作任务9设计校友录聊天室图4-22聊天室主页面Chart.aspx2.相关知识本项目的实施,需要了解HTML框架页面、文本框、标签、按钮等控件常用属性、方法与事件;熟练使用ASP.NET常用对象。3.项目设计(1)设计登录页面。(2)编写驱动程序将用户名传递给Chart.aspx页面。工作任务9设计校友录聊天室(3)设计网页主页面Chart.aspx框架页面,包括top.aspx、end.aspx、Speak.aspx、SpeakShow.aspx等页面。(4)设计网页Speak.aspx页面,并编写驱动程序。(5)设计网页SpeakShow.aspx页面,并编写驱动程序。4.项目实施(1)创建空白解决方案ex4_2与网站ex4_2。(2)在网站ex4_2中添加用户登录页面Login.aspx。(3)按图4-21要求,在用户登录页面Login.aspx上添加相应控件。(4)编写登录页面Login.aspx按钮事件程序。protectedvoidbtn_Submit_Click(objectsender,EventArgse){if(Page.IsPostBack){Session["User_Name"]=this.txt_Name.Text;Response.Redirect("Chart.aspx");}}工作任务9设计校友录聊天室(5)在网站ex4_4中,添加聊天室主页面Chart.aspx。在聊天室页面Chart.aspx中,添加框架集与top、say、message和end等四个框架;在框架top中显示top.aspx页面,框架say中显示发言页面Speak.aspx,在框架message中显示聊天内容页面SpeakShow.aspx,框架end中显示页面end.aspx。Chart.aspx代码如下:<head><title>无标题页</title></head><framesetrows="200,600,80"><framename="top"src="top.aspx"/><framesetcols="500,400"><framename="say"src="Speak.aspx"/><framename="message"src="SpeakShow.aspx"/></frameset><framename="end"src="end.aspx"/></frameset></html>(6)在网站ex4_4中,添加top.aspx页面,如图4-23所示。工作任务9设计校友录聊天室图4-23top页面(7)在网站ex4_4中,添加end.aspx页面,如图4-2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论