动态网站交互设计课件_第1页
动态网站交互设计课件_第2页
动态网站交互设计课件_第3页
动态网站交互设计课件_第4页
动态网站交互设计课件_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

动态网页设计教程——美工与技术徐延章编著第11章动态网站交互设计

——ASP.NET基本对象第11章动态网站交互设计

——ASP.NET基本对象ASP.NET的工作原理是客户端向服务器端发送请求信息,服务器接收请求后,解析用户请求的页面并发送给客户端。在这一过程中,服务器需要读取客户端在Web请求期间发送的HTTP值,服务器也需要将相应的信息发送回客户端。因此,仅仅使用控件就不能解决这些问题,这时便需要使用ASP.NET提供的基本对象。ASP.NET提供的基本对象主要有Request对象、Response对象、Session对象、Application对象和Server对象。动态网页设计教程——美工与技术机械工业出版社CompanyLogo第11章动态网站交互设计

——ASP.NET基本对象动态网页设计教程——美工与技术机械工业出版社11.1用Response对象实现页面跳转111.2用Request对象获取用户请求211.3用Session对象记录用户个人信息311.4用Application对象为所有用户共享信息411.5用Server对象对信息编码511.6用Page对象实现页面加载22CompanyLogo11.1.1Response对象概述Response对象封装了来自ASP.NET操作的HTTP响应信息,可用于将HTTP响应信息发送到客户端。动态网页设计教程——美工与技术机械工业出版社Response对象名称说明属性Buffer指示是否缓冲输出,并在完成处理整个响应之后将其发送Cache获取网页的缓存策略(过期时间、保密性、变化子句)ContentType获取或设置输出流的HTTPMIME类型,如“image/jpeg”、“text/html”。默认值为“text/html”Cookies获取响应Cookie集合Expires获取或设置在浏览器上缓存的页过期之前的分钟数。如果用户在页面过期之前返回该页,则显示缓存版本IsClientConnected指示客户端是否仍连接在服务器上Output启用到输出HTTP响应流的文本输出OutputStream启用到输出HTTP内容主体的二进制输出方法Clear清除缓冲区流中的所有内容输出Flush向客户端发送当前所有缓冲的输出Redirect将客户端重定向到新的URLEnd当前所有缓冲的输出发送到客户端,停止该页的执行Write将信息写入HTTP响应输出流CompanyLogo11.1.2向网页输出信息首先新建网站myaspnet-3,双击默认的网页Default.aspx空白部分。编写Page_Load事件代码如下:protectedvoidPage_Load(objectsender,EventArgse){Response.Write("欢迎访问本站");//向网页输出信息}动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.1.2向网页输出信息调试该页面,显示如图所示。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.1.3页面跳转双击跳转网页按钮,进入代码视图,修改Button1_Click事件代码如下。protectedvoidButton1_Click(objectsender,EventArgse){Response.Redirect("Default.aspx");//跳转}动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.1.3页面跳转调试该网页,单击跳转网页按钮,网页转到Default.aspx网页显示欢迎信息,如图所示。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.2用Request对象获取用户请求Request对象的作用是与客户端交互,通过Request对象能够获得客户端发送给服务器的信息,提供对当前页请求的访问,包括客户端的请求的信息、查询字符串以及IP地址等。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.2.2获取客户端IP地址新建网页requestip.aspx,在网页设计视图中放置一个Label控件。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.2.2获取客户端IP地址双击网页空白处,进入网页代码视图,编写Page_Load事件代码如下:protectedvoidPage_Load(objectsender,EventArgse){Stringstruserip=Request.UserHostAddress.ToString();//获取客户端IP地址Stringstrip=struserip.Substring(0,7);//获取IP地址前7位if(strip=="192.168")//判断IP是否局域网IPLabel1.Text="您的IP地址是:"+struserip+",您是内部网络用户";elseLabel1.Text="您的IP地址是:"+struserip+",你不是合法用户";}动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.2.2获取客户端IP地址调试程序,界面显示如图所示。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.2.3获取客户端请求双击“提交”按钮,设计提交信息的代码如下:protectedvoidButton1_Click(objectsender,EventArgse){Stringstrusername=TextBox1.Text;//获取用户输入的信息//用?name=将目标网页与用户输入信息连接//request2.aspx为目标网页,这里还没有建立,后面进行设计Stringstrurl="request2.aspx?name="+strusername;Response.Redirect(strurl);//转向目标网页}动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.2.3获取客户端请求新建网页request2.aspx,拖动一个Label控件到页面中,如图所示。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.2.3获取客户端请求双击request2.aspx网页,进入代码网页,在Page_Load事件中进行设计代码如下:

protectedvoidPage_Load(objectsender,EventArgse){if(Request.QueryString["name"]==null)//判断是否有查询字符串Label1.Text="您没有向网页提交信息,请返回该页";//显示错误信息elseLabel1.Text="欢迎您,"+Request.QueryString["name"].ToString();//显示查询字符串}动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.3用Session对象记录用户个人信息Session对象是一个集合,其作用是在服务器端存储特定信息,Session对象只针对单一网站使用者,不同的客户端无法互相访问。当浏览者关闭浏览器或超过设定的Session对象的有效时间时,Session对象就会失效,因此要注意Session对象的生命周期的设置。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.3.1Session对象概述Session对象用于在服务器端为用户存储信息,支持跨页面提取信息,可以认为是为每个客户端设置的全局变量,Session对象存储的信息是局部的,是针对某个特定用户的。Session对象保存的信息持续到用户会话结束,在用户会话期间,如果用户从一个页面跳转到另一个页面,Session对象中的信息不会丢失,可以取出来使用。动态网页设计教程——美工与技术机械工业出版社Session对象名称说明属性SessionID获取会话的唯一标识符Timeout获取和设置Session的生命周期,默认值为“20分钟”方法Add向会话状态集合添加一个新项Remove删除会话状态集合中的项RemoveAt删除会话状态集合中指定索引处的项CompanyLogo11.3.2记录用户信息新建一个文件session.aspx,在设计视图中拖入两个TextBox文本框控件(用户名和密码),一个Button按钮控件,修改密码文本框属性TextMode为password,修改Button控件属性Text为登录,设计用户登录界面。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.3.2记录用户信息新建文件session2.aspx,在设计视图中拖入一个Label控件,用于显示用户登录后的信息。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.3.2记录用户信息双击页面空白处,进入代码视图,编写Page_Load代码程序:protectedvoidPage_Load(objectsender,EventArgse){if(Session["username"]==null)//判断session是否存在Label1.Text="请您从session.aspx网页登录";//显示错误信息else{Stringstrusername=Session["username"].ToString();//获取session对象username的值Label1.Text="欢迎"+strusername+"访问本站";//显示欢迎信息}}动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.3.3配置Session对象的生命周期设置生命周期为30分钟的Session对象,并且使用工作进程自身保存会话状态,可以打开“Web.config”文件,在<system.web>后面添加下面的代码:<sessionStatemode="InProc"timeout="30"></sessionState>动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.4用Application对象为所有用户共享信息Application对象与Session对象的作用十分相似,都是在服务器端保存会话信息的对象,但与Session对象的不同之处在于Application对象是一个共有对象,所有用户都可以对某个特定的Application对象的值进行修改,即Session对象是用户专用,而Application对象是用户共享。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.4.1Application对象概述Appliction对象供所有用户存取信息,即成为所有用户的公共变量。动态网页设计教程——美工与技术机械工业出版社Application对象名

称说

明方法Add向HttpApplicationState集合中添加新的对象Remove从HttpApplicationState集合中移除对象Lock锁定对HttpApplicationState变量的访问,使访问同步UnLock取消锁定事件Start应用程序启动时触发(在Session_Start事件之前)End应用程序结束时触发(在Session_End事件之后)CompanyLogo11.4.2Global.asax文件的使用下面设计一个能统计在线人数的web程序。当用户打开网页或离开页面时人数能够更新。在解决方案资源管理器中,单击右键,选择添加新项,选择全局应用程序类Global.asax。设计指导:Global.asax是网站的全局配置文件,可以用来设置网站的全局变量,是一个可选的文件,并不像Web.config文件一样在创建站点时自动生成,需要手动添加。该文件中自动建立了Application和Session对象的Start和End事件。我们可以完善其中的代码,以实现计数初始值,计数增加和计数减少的功能。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.4.3在线人数统计Application对象的Start事件代码编写如下:voidApplication_Start(objectsender,EventArgse){//在应用程序启动时运行的代码Application["numonline"]=0;//设置程序启动时初始人数:0}动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.4.3在线人数统计Session对象的Start事件代码编写如下:

voidSession_Start(objectsender,EventArgse){//在新会话启动时运行的代码//锁定Application对象,防止同一时刻被多人同时修改Application.Lock();//获取Application中存储的人数,进行数值转换后加1intintnum=Int32.Parse(Application["numonline"].ToString())+1;

Application["numonline"]=intnum;//重新存储人数信息Application.UnLock();//解除锁定,使别人能够修改}动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.4.3在线人数统计Session对象的End事件代码编写如下:voidSession_End(objectsender,EventArgse){//在会话结束时运行的代码。//注意:只有在Web.config文件中的sessionstate模式设置为//InProc时,才会引发Session_End事件。如果会话模式//设置为StateServer或SQLServer,则不会引发该事件。//锁定Application对象,防止同一时刻被多人同时修改Application.Lock();//获取Application中存储的人数,进行数值转换后减1intintnum=Int32.Parse(Application["numonline"].ToString())-1;Application["numonline"]=intnum;//重新存储人数信息Application.UnLock();//解除锁定,使别人能够修改}动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.4.3在线人数统计新建application.aspx文件,在设计视图中放置一个Label控件用以显示在线人数。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.4.3在线人数统计双击页面空白部分,进入代码视图,编写Page_Load事件代码如下:protectedvoidPage_Load(objectsender,EventArgse){//获取Application数据Label1.Text="当前在线人数:"+Application["numonline"].ToString();Response.AddHeader("Refresh","30");//设置页面30秒刷新一次}动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.4.3在线人数统计调试程序,运行界面如图所示。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.5用Server对象对信息编码Server对象的作用是访问有关服务器的属性和方法,用于访问服务器上的资源,常用于对信息进行编码和解码、获取服务器文件物理路径等。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.5.1Server对象概述Server对象提供了用于访问服务器的属性和方法,处理Web请求。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.5.2对信息编码与解码有些情况下我们希望将输出信息中包含HTML标记的符号直接显示出来,如<Br>,而事与愿违,显示的结果是换行,因此,需要对信息进行编码处理,从而使其正确地显示在页面中。另外,用户可能通过留言本、论坛等输入HTML代码,进行跨站点的脚本攻击和显示恶意内容。可以通过Server对象的HtmlEncode方法和HtmlDecode方法来对在浏览器中显示的字符串进行编码来解决上述问题;使用UrlEncode和UrlDecode方法对URL字符串进行编码和解码。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.5.2对信息编码与解码新建server.aspx文件,在设计视图中放置两个TextBox控件,修改TextMode属性为MultiLine,调整其大小,拖动一个Label控件用以显示编码解码的信息,四个Button控件,分别为Html编码、Html解码、Url编码、Url解码。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.5.2对信息编码与解码双击按钮“Html编码”,进入代码视图,编写代码如下:

protectedvoidButton1_Click(objectsender,EventArgse){//将TextBox1中的内容进行Html编码显示在TextBox2中,查看编码情况TextBox2.Text=Server.HtmlEncode(TextBox1.Text);//将TextBox1中的内容进行Html编码显示在Label1中,测试网页文本显示效果Label1.Text=Server.HtmlEncode(TextBox1.Text);}动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.5.2对信息编码与解码双击按钮“Htm解码”,进入代码视图,编写代码如下:

protectedvoidButton2_Click(objectsender,EventArgse){//将TextBox2中的内容进行Html解码显示在TextBox1中,查看解码情况TextBox1.Text=Server.HtmlDecode(TextBox2.Text);//将TextBox2中的内容进行Html解码显示在Label1中,测试网页文本解码显示效果Label1.Text=Server.HtmlDecode(TextBox2.Text);}动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.5.2对信息编码与解码双击按钮“Url编码”,进入代码视图,编写代码如下:

protectedvoidButton3_Click(objectsender,EventArgse){//将TextBox1中的内容进行Url编码显示在TextBox2中,查看编码情况TextBox2.Text=Server.UrlEncode(TextBox1.Text);//将TextBox1中的内容进行Url编码显示在Label1中,测试网页文本显示效果Label1.Text=Server.UrlEncode(TextBox1.Text);}动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.5.2对信息编码与解码双击按钮“Url解码”,进入代码视图,编写代码如下:

protectedvoidButton4_Click(objectsender,EventArgse){//将TextBox2中的内容进行Url解码显示在TextBox1中,查看解码情况TextBox1.Text=Server.UrlDecode(TextBox2.Text);//将TextBox2中的内容进行Url解码显示在Label1中,测试网页文本解码显示效果Label1.Text=Server.UrlDecode(TextBox2.Text);}动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.5.2对信息编码与解码调试程序,在左侧文本框TextBox1中输入一段表示Html按钮的代码如下:<inputtype="submit"name="Button1"value="Html编码"id="Button1"/>动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.5.2对信息编码与解码单击按钮“Html编码”,显示如图所示的错误信息界面。从客户端(TextBox1=inputtype=submit...)中检测到有潜在危险的Request.Form值。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.5.2对信息编码与解码网页显示说明:请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击。通过在Page指令或配置节中设置validateRequest=false可以禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所有输入。选择网页Html代码视图,在页面声明语句中添加“validateRequest="false"”,完整语句如下:<%@PageLanguage="C#"validateRequest="false"AutoEventWireup="true"CodeFile="server.aspx.cs"Inherits="server"%>动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.5.2对信息编码与解码重新调试,输入表示Html的编码,单击按钮“Html编码”,显示结果如图所示。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.5.2对信息编码与解码删除左侧文本框的内容,单击按钮“Html解码”,界面如图所示,我们发现在网页中出现了两个“Html编码”按钮,出现的第一个“Html编码”按钮便是由代码解码而形成的。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.5.2对信息编码与解码删除左侧文本框的内容,输入“张三”,单击按钮“Url编码”,界面如图所示,删除左侧文本框内容,单击按钮“Url解码”,界面如图所示。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.5.3获取服务器路径为了访问存放在服务器上的某一文件或文件夹,需要将文件或文件夹的虚拟路径转换成服务器端对应的物理路径,MapPath方法可用来将虚拟路径转变为物理路径。例如,连接数据库或者上传文件到服务器时,就需要使用物理路径。在解决方案管理器中右键单击网站,添加文件夹“server”,新建网页server2.aspx,放置三个Label控件。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.5.3获取服务器路径双击页面空白处,进入代码视图,编写代码如下:protectedvoidPage_Load(objectsender,EventArgse){Label1.Text="当前站点根路径为:"+Server.MapPath("~/");Label2.Text="服务器上虚拟目录server的物理路径为:"+Server.MapPath("./server/");Label3.Text="当前页面的物理路径为:"+Server.MapPath(Request.);}动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.5.3获取服务器路径调试程序代码如图所示。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.6用Page对象实现页面加载Page对象提供了对当前页面的操作,可以认为是当前页面的一个实例,通过Page对象可以判断页面加载的情况,是首次加载还是页面回发重载。动态网页设计教程——美工与技术机械工业出版社CompanyLogo11.6.1Page对象概述Page对象用于操作整个页面,常用的属性和事件如下:动态网页设计教程——美工与技术机械工业出版社Page对象名称说

明属

温馨提示

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

评论

0/150

提交评论