380 likes | 499 Views
基于 .NET 的 Web 程序设计. 学习内容. 响应用户操作 请求用户浏览器相关信息 访问服务器资源 系统被点击数的设计 系统会话 实现免登录系统的个性化设置. 销售管理信息系统的交互操作与页面处理. 4.1 响应用户操作 -Response. 将 http 信息封装后 , 从 ASP.NET 的服务器端发送到响应的用户客户端的浏览器上 , 其类名为 httpResponse 属性和方法 Write() 向客户端发送字符串信息 Redirect() 网页转向地址 End() 终止当前页的运行 BufferOutPut 属性 是否使用缓存
E N D
学习内容 响应用户操作 请求用户浏览器相关信息 访问服务器资源 系统被点击数的设计 系统会话 实现免登录系统的个性化设置 销售管理信息系统的交互操作与页面处理
4.1 响应用户操作-Response • 将http信息封装后,从ASP.NET的服务器端发送到响应的用户客户端的浏览器上,其类名为httpResponse • 属性和方法 • Write() 向客户端发送字符串信息 • Redirect() 网页转向地址 • End() 终止当前页的运行 • BufferOutPut属性 是否使用缓存 • Clear() 清除缓存 • Flush() 强制输出缓存的所有数据 • WriteFile()读取一个文件,并且写入客户端输出流(打开文件,并且输出到客户端)。
向用户输出信息 - Write()方法 Response.Write("<Script language='Javascript'>alert('会员顾客的身份证号码不存在。');</Script>");
BufferOutPut属性 • 功能 - 是否使用缓存 • 例程’页面处理应用缓存Response.BufferOutput = True • Clear方法 • 功能 - 清除缓存 • Flush方法 • 功能 - 强制输出缓存的所有数据
BufferOutPut、Clear、Flush综合应用 • 请分析如下程序 • Response.BufferOutput = TrueResponse.Write("专业列表")Response.Write("<ul>")Response.Write("<li>计算机网络")Response.Write("<li>软件技术")Response.Write("</ul>")Response.Clear()Response.Write("<script language=javascript>alert('Welcome to learn asp.net')</script>")Response.Flush()
Response.BufferOutput=True Response.BufferOutput=False 缓存设置为True的运行结果 缓存设置为False的运行结果
End方法 • 功能 -终止当前页的运行 • 分析如下例程 Response.BufferOutput = TrueResponse.Write("专业列表")Response.Write("<ul>")Response.Write("<li>计算机网络")Response.Write("<li>软件技术")Response.Write("</ul>")Response.End()Response.Write("<script language=javascript>alert('Welcome to learn asp.net')</script>")
Redirect方法 • 功能 - 定向链接当需要连结到其他网页的时候可以使用Response.Redirect方法重新定向. //删除身份认证票,注销销售系统的登录状态 System.Web.Security.FormsAuthentication.SignOut(); //系统界面跳转至首页 Response.Redirect("default.aspx");
WriteFile方法 • 功能 - 向浏览器输出文件 • 例程Response.WriteFile(string FileName)其中FileName指代需输出的文件的文件名 //向页面输出修饰菜单外观的css样式文件 Response.WriteFile(“menustyle.css");
4.2 请求用户浏览器相关信息 - Request • Request对象的主要功能是让服务器取得当客户端请求Web服务时提交的相关数据(如表单、URL等)。
注意:请求(Request)与响应(Response)的区别 服务器域名 www.google.com 这是 HTTP 请求 URL,资源的名称 响应 这是 HTTP 响应 服务器
Request.Form属性 • 功能读取<Form>至</Form>之间的表单数据. • 注意:表单的提交方式须设置为“Post”。 • 用途举例读取用户密码登录的表单数据。
Request.QueryString属性 • 功能 - 可以读取URL地址参数 • 注意:提交方式要设置为“Get”。
简化Request操作 • 问题Request.Form用于表单提交方式为Post的情况,而Request.QueryString用于表单提交方式为Get的情况,如果用错,则获取不到数据。 • 解决利用Request(“元素名”)来简化操作。
方法 Execute 方法和 Transfer 方法 HTML 编码方法 MapPath 方法 URLEncode 方法 Server对象提供处理 Web 请求的方法 4.3访问服务器资源 - Server Server对象提供了与服务器相关的实用功能
HTMLEncode与HTMLDecode方法 • 为了确保所有浏览器均能在 URL 字符串中正确地传送文本,需要使用 HTML 编码。HTMLEncode 方法正是起这个作用的 • 例如,如果输入文本包含 “<”和“>”字符,此方法会将这些字符转换为其对等的 HTML 字符,即分别为 < 和 >,以便浏览器将这些字符正确地显示为“<”和“>” • HTMLDecode方法与HTMLEncode刚好相反,对已编码的字符串进行解码。
URLEncode与URLDecode方法 • 在 HTML 编码中,将文本编码成相应的 HTML 是为了在浏览器中正确地显示 • 如果是要求可靠的 HTTP 传输通过 URL 将编码文本从 Web 服务器传送到客户端,该怎么办? • 可使用 URLEncode 方法实现此目的。它将文本编码以便于通过 HTTP 进行可靠的传输
实例- 利用Server对象进行URL编码与解码dim Str as stringStr=“<b>URL字符串<br>编码解码演示</b>“Response.Write(”原始字符串:” & Str & “<br>”)Str = Server.URLEncode(Str)Response.Write(“编码后的结果:” & Str & “<br>”)Str=Server.URLDecode(Str)Response.Write(“解码后的结果:” & Str & “<br>”)
MapPath(string path) Web 服务器上的指定虚拟路径对于的物理路径 • MapPath方法 • Web 应用程序位于 IIS 根目录下的虚拟目录中 • 因此,我们请求网页时,引用称为“虚拟路径”的虚拟目录路径。但是经常需要得到 Web 服务器上的 Web 资源的实际物理路径 • 用 MapPath 方法,我们可从其虚拟路径得到 Web 资源(如 .aspx 页面)的物理路径
语句Server.MapPath(“HTTP路径”) • 实例 –获取数据库文件存储路径string FilePath;FilePath = Server.MapPath(“/data.mdb”)
关于Application对象 • 客户端第一次从某个特定的.NET Web应用程序虚拟目录中请求任何 URL 资源时创建Application对象。对于Web服务器上的每个.NETWeb应用程序都要创建一个Application对象。
Application对象的用途 • 通常用于存储为所有客户端共享的全局数据如:利用Application对象存储站点访问计数器
使用Application对象存储信息Application(“键名”) = 值 或Application(“键名”,值) • 获取Application对象信息变量名 = Application(“键名”)或:变量名 = Application.Item(“键名”)或:变量名 = Application.Get(“键名”)
更新Application对象的值Application.Set(“键名”, 值) • 删除一个键Application.Remove(“键名”, 值) • 删除所有键Application.RemoveAll()或Application.Clear()
Lock 和 Unlock 方法 Lock() UnLock() Lock()用于防止其他用户更改 Application对象的属性 Unlock()方法用于释放对应用程序变量的锁定 Lock() 可用作 Application.Lock() UnLock() 可用作 Application.UnLock()
使用Application事件 • Application_StartWeb应用程序启动时触发本事件 • Application_BeginRequestWeb程序被客户端请求时触发本事件 • Application_AuthenticateRequest出现身份认证事件时触发本事件 • Application_Error出现错误时触发本事件 • Application_EndWeb服务结束时触发本事件
4.5 系统会话 - Session • 什么是Session • Session对象包含特定于当前用户的信息 • 在当前用户会话期间可以记录和监视特定该用户的信息 • 当会话过期或终止时,服务器即清除Session对象 • Session可用于存储在当前用户的整个会话过程中都可以访问的值 • Session对象当中存储的数据仅供当前用户访问,各用户的Session数据互不干扰。而Application对象存储的数据可在所有会话用户中共享。
使用Session对象存储信息Session(“键名”) = 值 或Session(“键名”,值) • 获取Session对象信息 变量名 = Session(“键名”)或:变量名 = Session.Item(“键名”)或:变量名 = Session.Get(“键名”)
Session对象的生命周期 • 超时结束当前会话若浏览器在设定的期限内对网页提出请求或者刷新页面,那么就强制关闭该用户的Session对象。 • 主动结束当前会话通过调用Session.Abandon()方法可主动结束当前会话。
4.6实现免登录系统的个性化设置 - Cookie • 什么是Cookie • Cookie是Web服务器存储在客户端磁盘上面的一段文本信息。 • Cookie主要应用于存储客户的配置信息(如根据用户个性化要求定制网站频道,通过存储登录帐户信息实现免登录)
案例 可将销售管理信息系统的帐户信息存储到Cookies当中,实现免输入登录ID、登录密码进行系统登录的个性化设置
案例 在客户端系统中维护客户的个人信息 Cookie … … … 会话 Cookie 持久性 Cookie
创建和读取会话 Cookie 创建 Cookie 新建 Cookie 读取 Cookie HttpCookie objHttpCookie = new HttpCookie(“UserName”, “张三"); Response.Cookies.Add(objHttpCookie); Response.Write(Request.Cookies(“UserName").Value); 将新 Cookie 添加到 Response 对象的 Cookie 集合中 Value 属性将 Cookie 的值作为字符串返回
创建和读取持久性 Cookie 创建 Cookie 读取 Cookie 新建 Cookie HttpCookie objHttpCookie = new HttpCookie(“UserName”,“张三"); objHttpCookie.Expires = DateTime.Now.AddMinutes(2); Response.Cookies.Add(objHttpCookie); Response.Write(Request.Cookies(“UserName").Value); 用 Cookie的 Expires属性将 Cookie 的过期期限设置为两分钟