本章要点: 掌握HttpRequest对象的应用。 掌握HttpResponse对象的应用。

Slides:



Advertisements
Similar presentations
模块五 动态网页技术 任务五 查询记录 任务一 表单设计制作 任务二 简单动态的 ASP 页面制作任务三 页面与数据库的集成任务四 添加记录 任务六 电商系统融入网站.
Advertisements

1 自然人憑證 結合人事差假管理系統 指導老師:丁德榮 教授 作者:何岳剛、蘇巨鋒、廖偉吏、鄭致瑋、湯媛喬、李封儒 報告人:廖偉吏 彰化師範大學 資訊工程學系 報告日期: 95/11/2.
欢迎各位 Nice to Meet U.
第14章 表单 在制作动态网页时,要实现信息交互,常常用到表单。 常见的表单有搜索表单、用户登录注册表单、调查表 单、留言簿表单等。本章节将和大家一起探讨在表单 的基本概念和各个元素,以及在Dreamweaver CS4中 如何创建表单,并通过实例掌握表单制作的方法。
南亞技術學院行政人員資訊安全訓練教材 資訊安全基本認知
2015年重点税源企业 报表填报流程培训会 海淀地税局 收入核算科.
“营改增”税控开票软件(金税盘版)技术培训 2016年4月
计算机网络高级工 梁绍宇.
彭江波.
103學年度業務報告 時 間: 地 點:中心會議室.
姓名: 钱琬婷 学号: 0501W238 专业: 计算机科学与技术 指导教师: 陈家琪 教授
轻量级HTTP服务器/反向代理服务器nginx
汇报大纲 一、报送系统总体介绍 二、自查及检查评分报送流程 三、自查及检查方法及关键点 四、建议及注意事项.
第 八 章 交互结构(2).
第七章 电子商务系统的运营与维护.
5.6 制作具有动态特效的网页 1. 层和时间轴动画 2. Dreamweaver的Behaviors(行为)概述 华东师范大学计算中心.
全球資訊網(WWW)簡介.
企业网搭建及应用 重庆市永川职业教育中心
Microsoft Application Center Test
Chapter 7 網頁應用程式與狀態管理.
第二期实验室工作人员培训讲座(三) 加强规范化建设 提高仪器设备管理水平 设备处 黄久龙 2017年9月13日 徐州师范大学设备处 黄久龙.
Ch03 VB.NET語法建立ASP.NET 網頁程式設計.
《ASP.NET数据库网站设计教程(C#版)》
《ASP.NET数据库网站设计教程(C#版)》
第四章 網頁表單與資料傳遞.
Asp.net 基礎.
PHP +MySQL快速入門 Lesson 4.
Windows 2003 Server IIS網站的架設
在 Web 应用中,导航是非常重要的。ASP
第一章 Visual Studio、SQL Server介紹與開發環境
【VA虚拟应用管理平台】专题培训 资源管理及个性化 陕西益和信息技术开发有限责任公司 2011年2月.
ASP.NET 網頁製作教本 – 從基本語法學起
第13章 會員管理與個人化程序 13-1 會員管理的基礎 13-2 啟用ASP.NET的會員管理 13-3 登入控制項
第13章 網站的使用者與會員管理 13-1 網站的使用者與會員管理 13-2 ASP.NET的表單基礎驗證
1 创建SqlDataSouce控件 数据源控件(SqlDataSource)
使用ADO.NET访问数据 数据库连接 C#程序设计课程组.
ASP动态网页设计实用教程 主讲教师: 开课单位:.
Ajax網頁的危機與防禦術 王寧疆 MCAD.NET/MCSD.NET/MCT/MVP 資策會教育訓練處.
張智星 台大資工系 多媒體檢索實驗室 第九章 小餅乾(Cookies) 張智星 台大資工系 多媒體檢索實驗室.
第 6 章 Application、Session 物件與Cookie
主 讲 教 师:陆有军 Web技术与应用 第四章 内部对象 主 讲 教 师:陆有军
Windows Server 2008证书服务的安装
《网上报告厅》使用说明 北京爱迪科森教育科技股份有限公司.
新世代計算機概論第三版 第11章 網際網路.
数据智能同步系统 操作指南.
課程名稱:_____________ 指導教授:_____________
U861院校专用版的安装流程 安装IIS中的WWW服务 安装SQL数据库 安装SQL SP4补丁 安装U861院校专用版.
XML Web Service 开发 第1章 XML Web Service 第2章 XML Web Service 体系结构
第11章 Android客户端与服务器交互.
Empower for MircoSoft ISV
本 次 课 教 学 思 路 此次课总的教学思路如下: 1、阐述本次课程的任务介绍以及应该掌握的要相关能力技术。
Web前端开发 第23章:网站发布 阮晓龙 / 河南中医药大学管理科学与工程学科
闪投智能创意操作手册 商务搜索部 闪投项目组
第4章 ASP.NET的HTTP物件、輸出入與Cookie處理
电子商务专业课程 电子商务应用技术 Application of Technology On Electronic Commerce.
基于.NET的需求分析和解决方案设计 第1章 商务解决方案设计 第2章 收集和分析信息 第3章 解决方案的构思 第4章 概念设计的创建
大專院校美食網- 以新北市為例 商務科技管理專題 組 別: 第二組 專題成員: 方采薇 陳宜欣
第 11 章 XML資料的傳遞 –XmlHttpRequest物件
【VA虚拟应用管理平台】专题培训 资源管理及个性化 陕西益和信息技术开发有限责任公司 2011年2月.
1 Session对象的特性 Session 状态对象 Session 对象常用的方法有: Session 对象常用的属性有:
XML Web Service 开发 第1章 XML Web Service 第2章 XML Web Service 体系结构
蕭旭雯 中華民國期刊論文索引系統 蕭旭雯
本章要点: 了解ASP.NET 4.5的基础.NET Framework。
ASP动态网页设计实用教程 主讲教师:贾海陶.
【VA虚拟应用管理平台】专题培训 接入防火墙 陕西益和信息技术开发有限责任公司 2011年2月.
第10讲 Web服务.
講師:梁家豪 動態網頁設計 ASP & 資料庫應用 講師:梁家豪
指導教授:吳有龍教授 學生:黃寶慧 學號: G 日期:2008年12月24日
第1章 WWW和LAMP基本觀念.
制作:马克思主义学院 17级 政治学与行政学专业 王晓丽
Presentation transcript:

本章要点: 掌握HttpRequest对象的应用。 掌握HttpResponse对象的应用。 掌握HttpServerUtility对象的应用,理解不 同方法的页面重定向。 掌握跨页面提交的应用。了解ViewState、 HiddenField,掌握Cookie、Session、 Application、Profile的应用。

目录 6.1 HTTP请求 6.2 HTTP响应 6.3 HttpServerUtility 6.4 跨页面提交 6.5 状态管理 6.1 HTTP请求 6.2 HTTP响应 6.3 HttpServerUtility 6.4 跨页面提交 6.5 状态管理 6.5.1 ViewState 6.5.2 HiddenField控件 6.5.3 Cookie 6.5.4 Session 6.5.5 Application 6.5.6 Profile 6.6 小结

6.1 HTTP请求 ASP.NET 4.5通过Page类的Request属性能很好地控制 请求数据,如访问客户端的浏览器信息、查询字符 串、Cookie等信息。 实际上,Page类的Request属性值是一个HttpRequest 对象,它封装了HTTP请求信息。

HttpRequest对象的数据集合对应表 说明 QueryString 从查询字符串中读取用户提交的数据 Cookies 获得客户端的Cookie数据 ServerVariables 获得服务器端或客户端的环境变量信息 Browser 获得客户端浏览器信息

6.1 HTTP请求(续) 在使用HttpRequest对象时,常通过Page类的 Request属性调用,所以要获取HttpRequest对 象的Browser数据集合的语法格式常写为: Request.Browser。 利用QueryString数据集合获得的查询字符串是 指跟在URL后面的变量及值,它们以“?”与URL 间隔,不同的变量之间以“&”间隔。

实例6-1 利用QueryString在页面间传递数据信息 在本实例中,当单击QueryString1.aspx页面上 链接后,页面被重定向到QueryString2.aspx; 在页面QueryString2.aspx中显示从 QueryString1.aspx传递过来的查询字符串数据 信息。 源程序:QueryString1.aspx 源程序:QueryString2.aspx

6.1 HTTP请求(续) 利用ServerVariables数据集合可以很方便地获 取服务器端或客户端的环境变量信息,如客户 端的IP地址等。 语法格式为:Request.ServerVariables["环境 变量名"]。

常用的环境变量表 环境变量名 说明 LOCAL_ADDR 服务器端的IP地址 PATH_TRANSLATED 当前页面在服务器端的物理路径 REMOTE_ADDR 客户端IP地址 REMOTE_HOST 客户端计算机名 SERVER_NAME 服务器端计算机名 SERVER_PORT 服务器端网站的端口号

6.1 HTTP请求(续) Browser数据集合用于返回用户的浏览器类型、 版本等信息,以便根据不同的浏览器编写不同 的页面。 6.1 HTTP请求(续) Browser数据集合用于返回用户的浏览器类型、 版本等信息,以便根据不同的浏览器编写不同 的页面。 语法格式为:Request.Browser["浏览器特性名 "]。

浏览器特性名对应表 名称 说明 Browser 浏览器类型 Version 浏览器版本号 MajorVersion 浏览器主版本号 MinorVersion 浏览器次版本号 Cookies 逻辑值,true表示支持Cookie JavaScript 逻辑值,true表示支持JavaScript ActiveXControls 逻辑值,true表示支持ActiveX控件

实例6-2 利用ServerVariables和Browser返回服务器端和客户端信息 源程序:Request.aspx 注意:本实例是在VSEW 2012中浏览 Request.aspx后的效果图,因此,服务器端和 客户端的IP地址都为本机地址。其中,“::1” 表示IPv6格式的本机地址。一旦将网站发布到 安装IIS 7.5的Web服务器后,再从其他的客户 端访问页面将看到不同的地址。

6.2 HTTP响应 ASP.NET 4.5通过Page类的Response属性可以很 好地控制输出的内容和方式,如页面重定向、 保存Cookie等。 实际上,Response属性值是一个HttpResponse 对象。

HttpResponse对象的常用属性和方法表 成员 说明 Cookies属性 添加或修改客户端的Cookie AppendToLog()方法 将自定义日志信息添加到IIS日志文件中 End()方法 终止页面的执行 Redirect()方法 页面重定向,可通过URL附加查询字符串实现不同页面之间的数据传递 Write()方法 在页面上输出信息

实例6-3 利用Write()方法输出XHTML文本 利用Write()方法除可以输出提示信息、变量值 外,还可以输出XHTML文本或JavaScript脚本等。 源程序:Write.aspx

程序说明 for循环执行完后向浏览器输出的XHTML文本如 下: <p style="font-size:10px">我喜欢 ASP.NET!</p> <p style="font-size:14px">我喜欢 ASP.NET!</p> <p style="font-size:18px">我喜欢 ASP.NET!</p> 其中,“"”的输出需要转义符\,即在源程序中 必须写成“\"”。

实例6-4 利用Redirect()方法重定向页面 在本实例中,选择“教师”后单击“确定”按 钮,页面将被重定向到教师页面Teacher.aspx。 源程序:Redirect.aspx 源程序:Teacher.aspx

6.3 HttpServerUtility 在ASP.NET 4.5中,Page类的Server属性封装了 服务器端的一些操作,如将XHTML元素标记转换 为字符实体、获取页面的物理路径等。 实际上,Server属性值是一个 HttpServerUtility对象。

HttpServerUtility对象的常用属性和方法 ScriptTimeOut属性:设置页面执行的最长时间, 单位为秒。 Execute()方法:停止执行当前页面,转到并且 执行新页面,执行完毕后返回原页面,继续执 行后续语句。 HtmlEncode()方法:将字符串中的XHTML元素标 记转换为字符实体,如将“<”转换为&lt。 MapPath()方法:获取页面的物理路径。

HttpServerUtility对象的常用属性和方法(续) Transfer()方法:停止执行当前页面,转到并 且执行新页面,执行完毕后不再返回原页面。 UrlEncode()方法:将字符串中某些特殊字符转 换为URL编码,如将“/”转换为“%2f”,空格 转换为“+”。

Response.Redirect()、Server.Execute()和Server.Transfer()的区别 Redirect()方法尽管在服务器端执行,但重定 向实际发生在客户端,可从浏览器地址栏中看 到地址变化;而Execute()和Transfer()方法的 重定向实际发生在服务器端,在浏览器的地址 栏中看不到地址变化。 Redirect()和Transfer()方法执行完新页面后, 并不返回原页面;而Execute()方法执行完新页 面后会返回原页面继续执行。

Response.Redirect()、Server.Execute()和Server.Transfer()的区别(续) Redirect()方法可重定向到同一网站的不同页 面,也可重定向到其它网站的页面;而 Execute()和Transfer()方法只能重定向到同一 网站的不同页面。 利用Redirect()方法在不同页面之间传递数据 时,状态管理采用查询字符串形式;而 Execute()和Transfer()方法的状态管理方式与 Button类型控件的跨页面提交方式相同。

实例6-5 运用HttpServerUtility对象 实例6-5 运用HttpServerUtility对象 Server.HtmlEncode()方法常用于在页面上输出 XHTML元素。 Server.UrlEncode()常用于处理URL地址,如地 址中包含空格等。 在本实例中,单击Student.aspx链接时将丢失 “张”后面的信息。单击 Student.aspx(UrlEncode)链接时,因使用了 Server.UrlEncode()方法不再丢失“张”后面 的信息。 源程序:Server.aspx

6.4 跨页面提交 利用Button类型控件实现跨页面提交是另一种实现 页面重定向的方法。 6.4 跨页面提交 利用Button类型控件实现跨页面提交是另一种实现 页面重定向的方法。 需要将源页面上Button类型控件的PostBackUrl属 性值设置为目标页面路径。而在目标页面上,需要 在页面头部添加@ PreviousPageType指令,并设置 VirtualPath属性值为源页面路径。 在目标页面上访问源页面中数据的方法有两种:一 是利用PreviousPage.FindControl()方法访问源页 面上的控件;二是先在源页面上定义公共属性,再 在目标页面上利用“PreviousPage.属性名”获取 源页面中数据。

跨页面提交与调用Server.Execute()或Server.Transfer()方法的区别 如果是跨页面提交,那么IsCrossPagePostBack 属性值为true;如果是调用Server.Execute() 或Server.Tranfer()方法,那么 IsCrossPagePostBack属性值为false。

实例6-6 运用跨页面提交技术 在Cross1.aspx中输入用户名、密码后单击“确 定”按钮,将通过跨页面提交技术重定向到 Cross2.aspx,并且显示在Cross1.aspx中输入 的数据信息。 源程序:Cross1.aspx 源程序:Cross2.aspx

6.5 状态管理 客户端状态管理:将状态数据保存在客户端计算机 上,当客户端向服务器端发送请求时,状态数据会 随之发送到服务器端。可选择ViewState、 ControlState、HiddenField、Cookie和查询字符 串。 服务器状态管理:将状态数据保存在服务器上。可 选择Session状态、Application状态或数据库形式。 客户端状态不消耗服务器内存资源,但容易泄露数 据信息。而服务器端状态将消耗服务器端内存资源, 但具有较高的安全性。

6.5.1 ViewState 又称为视图状态,用于维护Web窗体自身的状态。 当用户请求ASP.NET 4.5页面时,ASP.NET 4.5 将ViewState封装为一个或几个隐藏的表单域传 递到客户端。当用户再次提交页面时, ViewState也将被提交到服务器端。这样后续的 请求就可以获得上一次请求时的状态。 可在客户端浏览ASP.NET 4.5页面时,选择“查 看”→“源文件”命令进行查看。 EnableViewState属性:值为False可实现禁用 ViewState的目的。

6.5.2 HiddenField控件 又称隐藏域,用于维护Web窗体自身的状态。 不会显示在用户的浏览器中,但可以像设置标 准控件的属性那样设置其属性。 成员主要有Value属性和ValueChanged事件。 注意:要触发ValueChanged事件,需设置 HiddenField控件的EnableViewState属性值为 False。

6.5.3 Cookie 保存在客户端硬盘或内存中的一小段文本信息, 如网站、用户、会话等有关的信息。 与网站关联,而不是与特定的页面关联。 可以在客户端修改Cookie设置和禁用Cookie。 当用户的浏览器关闭了对Cookie的支持,但又 要使用Cookie时,只需在Web.config文件的 <system.web>元素中加入以下语句: <sessionState cookieless="AutoDetect">或 <sessionState cookieless="UseUri">

6.5.3 Cookie(续) 在Windows 7操作系统中,Cookie文本文件存储 于 “%userprofile%\AppData\Roaming\Microsoft \ Windows\Cookies”文件夹。 提供System.Web.HttpCookie类来处理Cookie, 常用的属性是Value和Expires。

建立Cookie 方法一: Response.Cookies["Name"].Value="张三"; 方法二: HttpCookie cookie = new HttpCookie("Name"); cookie.Value = "张三"; cookie.Expires = DateTime.Now.AddDays(1); Response.Cookies.Add(cookie);

获取Cookie Request.Cookies.["Name"].Value

实例6-7 利用Cookie限制页面访问 在本实例中,用户访问Cookie.aspx时,若在 Cookie中已有用户信息则显示欢迎信息,否则 被重定向到CookieLogin.aspx。这意味着当 Cookie中未包含用户信息时,就不能访问 Cookie.aspx,实现了限制页面访问的目的。 源程序:Cookie.aspx 源程序:CookieLogin.aspx

程序说明 测试时先浏览Cookie.aspx,此时因无用户名 Cookie信息,页面被重定向到 CookieLogin.aspx,输入用户名和密码后单击 “确定”按钮将用户名存入Cookie。关闭浏览 器。再次浏览Cookie.aspx可看到欢迎信息。

6.5.4 Session 又称会话状态,常用于存储用户信息、多页面 间的信息传递、购物车等。 产生在服务器端,只能为当前访问的用户服务。 以用户对网站的最后一次访问开始计时,当计 时达到会话设定时间并且期间没有访问操作时, 则会话自动结束。 如果同一个用户在浏览期间关闭浏览器后再访 问同一个页面,服务器会为该用户产生新的 Session。

6.5.4 Session(续) 用一个唯一的Session ID来标识每一个会话。 若客户端支持Cookie,则将Session ID保存到 相应的Cookie中;若不支持,就将Session ID 添加到URL中。 注意:不管Session ID保存在Cookie还是添加 在URL中,都是明文。如果需要保护Session ID, 可考虑采用HTTPS通信。 Session由System.Web.HttpSessionState类实 现。

HttpSessionState常用的属性和方法表 说明 Contents属性 获取对当前会话状态对象的引用 Mode属性 获取当前会话状态的模式 SessionID属性 获取会话的唯一标识 TimeOut属性 获取或设置会话状态持续时间,单位为分钟,默认为20分钟 Abandon()方法 取消当前会话 Remove()方法 删除会话状态集合中的项

Session_Start()和Session_End()方法 包含于Global.asax文件中。 Session_Start()方法中代码在新会话启动时会 自动被执行。 Session_End()方法中代码在会话结束时会自动 被执行。 注意: 只有Web.config 文件中的 sessionState 模式设置为InProc时,才会执行 Session_End()方法代码。如果会话模式设置为 StateServer或SQLServer,则不会执行 Session_End()方法代码。

Session的赋值 方法一: Session["Name"]="张三"; 方法二: Session.Contents["Name"]="张三"; 注意:Session使用的名称不区分大小写,因此 不要用大小写区分不同的Session变量。

Session的存储方式 在Web.config中通过<sessionState>元素的 mode属性来指定。 共有Off、InProc、StateServer、SQLServer和 Custom五个枚举值供选择,分别代表禁用、进 程内、独立的状态服务、SQLServer和自定义数 据存储。 在实际工程项目中,一般选择StateServer,而 对于大型网站常选用SQLServer。

实例6-8 利用Session限制页面访问 本实例功能类似于实例6-7,但适用于客户端已 禁用Cookie的情况。 利用本实例能限制对Session.aspx的访问,即 首先要通过登录认证才能访问该页面。 源程序:Session.aspx 源程序:SessionLogin.aspx

程序说明 当用户直接访问Session.aspx时,会判断 Session["Name"]状态值,若为空,则被重定向 到SessionLogin.aspx,否则显示欢迎信息。 在SessionLogin.aspx中用户登录成功后,将建 立Session["Name"]状态值。此时要测试是否存 在Session["Name"]状态值,应在浏览 SessionLogin.aspx页面的浏览器中直接更改地 址来访问Session.aspx。

6.5.5 Application 又称应用程序状态,应用于所有的用户。 由System.Web.HttpApplicationState类来实现。 要修改Application状态值时,首先要调用 Application.Lock()方法锁定Application状态, 值修改后再调用Application.Unlock()方法解 除锁定。 Application_Start()、Application_End()、 Application_Error()方法包含于Global类。

实例6-9 统计网站在线人数 本实例呈现网站在线人数。 实例6-9 统计网站在线人数 本实例呈现网站在线人数。 考虑三个方面:初始化计数器;当一个用户访 问网站时,计数器增1;当一个用户离开网站时, 计数器减1。 源程序:Global.asax 源程序:Application.aspx

程序说明 可同时利用多个浏览器或多台计算机访问 Application.aspx,进行测试。当然,若通过 多台计算机进行测试,需要先将网站复制到IIS 7.5。 注意:Session_End()方法代码只有到达 TimeOut属性设置的时间时才被执行,所以关闭 浏览器不会立即调用该方法。

6.5.6 Profile 用户个性化配置功能可以很方便地为每个用户 定义、存储和管理配置信息。 会自动识别不同的匿名用户。 默认情况下,配置信息以ASPNETDB.mdf数据库 名存储于网站的App_Data文件夹。 使用“%windir%\Microsoft.NET\Framework\ v4.0.30319”文件夹中的aspnet_regsql.exe命 令行工具可将配置信息保存到其他版本的SQL Server中。

用户个性化配置过程 第一,在Web.config文件中的<profile>元素中 定义配置信息名、数据类型、是否允许匿名用 户存储信息等。 第二,在程序中利用Profile对象访问用户个性 化信息。

实例6-10 利用Profile存取匿名用户的邮政编码信息 在本实例中,当某匿名用户输入邮编,单击 “写入”按钮把邮编保存到ASPNETDB.mdf数据 库的aspnet_Profile表中。单击“显示”按钮 从aspnet_Profile表中获取该匿名用户的邮编 并显示在页面上。 源程序: Web.config 源程序:Profile.aspx

程序说明 由于在Web.config文件中添加了用户个性化配 置信息,所以浏览Profile.aspx时ASP.NET 4.5 会在网站的App_Data文件夹中自动建立默认的 ASPNETDB.mdf数据库。另外,不需要访问数据 库的语句,直接通过Profile对象即可保存或获 取存储于aspnet_Profile表中的用户个性化信 息。 注意:将包含Profile.aspx的网站发布到IIS 7.5后,由于从不同的计算机访问Profile.aspx 将生成不同的匿名用户标识,故不能共享存储 的邮编。

6.6 小结 HttpRequest提供了QueryString、 ServerVariables、Browser、Cookies等数据集合 来访问不同用途的数据。 HttpResponse提供了输出XHTML文本、JavaScript 脚本、Cookie等功能。 为了有效防范SQL脚本注入,常会使用 HttpServerUtility对象的HtmlEncode()方法,该 对象同时提供了UrlEncode()、MapPath()等实用方 法。 页面重定向可采用<a>元素、HyperLink、 Response.Redirect()、Server.Execute()、 Server.Transfer()和Button类型控件的跨页面提 交等形式,在使用时要注意它们的区别。

6.6 小结(续) 状态管理分为客户端和服务器端两种管理形式。 客户端形式使用较多的是Cookie和查询字符串, 服务器端形式包含Session、Application和数 据库等。其中,Session对应单个用户,而 Application对应所有用户。 若要实现个性化网站,需要配置Web.config和 使用Profile对象。