能理解HttpRequest对象,会熟练使用HttpRequest对象。
能理解HttpResponse对象,会熟练运用HttpResponse对象。
能理解HttpServerUtility对象和不同方法的页面重定向,会熟练运用HttpServerUtility对象。
能理解跨页面提交,能知道ViewState、HiddenField得到功能,会熟练运用Cookie、
session、application。
对ASP.NET页面而言,需要根据用户的请求来生成响应。ASP.NET通过Page类的Request属
性能很好地控制请求数据,如访问客户端的浏览器信息、查询字符串、cookie等信息。
HttpRequest类的数据集合:
①Browser:获得客户端浏览器信息
②cookies:获得客户端的Cookie数据
③QueryString:从查询字符串中读取用户提交的数据
④ServerVariables:获得服务器端或客户端的环境变量信息
1.QueryString数据集合:
获得查询字符串是指跟在URL后面的变量及值,它们以 ? 与URL间隔,不同的变量之间
以“&”间隔。
2.ServevrVariables数据集合:
可以很方便的获取服务器端或客户端的环境变量信息,如客户端的IP地址等。
常用的环境变量有:
环境变量名 | 说明 |
---|---|
LOCAL_ADDR | 服务器端的IP地址 |
PATH_TRANSLATED | 当前页面在服务器端的物理路径 |
REMOTE_ADDR | 客户端IP地址 |
REMOTE_HOST | 客户端计算机名 |
SERVER_NAME | 服务器端计算机名 |
SERVER_PORT | 服务器端网站的端口号 |
3.Browser数据集合:
用户返回用户的浏览器类型、版本等信息,以便根据不同的浏览器编写不同的页面。
浏览器特性名如下:
名称 | 说明 |
---|---|
ActiveXControls | 逻辑值,true表示支持ActiveX控件 |
Browser | 浏览器类型 |
Cookies | 逻辑值,true表示支持cookie |
JavaScript | 逻辑值,true表示支持JavaScript |
MajorVersion | 浏览器主版本号 |
MinorVersion | 浏览器次版本号 |
Version | 浏览器版本号 |
通过Page类的Response属性可以很好地控制输出的内容和方式,如页面重定向、保存cookie
等。
成员 | 说明 |
---|---|
Cookies属性 | 添加或修改客户端的Cookie |
AppendToLog ( )方法 | 将自定义日志信息添加到IIS日志文件中 |
End方法 | 终止页面的执行 |
Redirect方法 | 页面重定向,可通过URL附加查询字符串实现不同页面之间的数据传递 |
Write方法 | 在页面上输出信息 |
在ASP.NET中,Page类的Server属性封装了服务器端的一些操作,如将XHTML元素标记转换
为字符实体,获取页面的物理路径等。
属性和方法 | 说明 |
---|---|
ScriptTimeOut属性 | 设置页面执行的最长时间,单位为秒 |
Execute方法 | 停止执行当前页面,转到并且执行新页面,执行完毕后返回原页面,继续执行后续语句 |
HtmlEncode方法 | 将字符串中的XHTML元素标记转换为字符实体 |
MapPath方法 | 获取页面的物理路径 |
Transfer方法 | 停止执行当前页面,转到并且执行新页面,执行完毕后不再返回原页面 |
UrlEncode方法 | 将字符串中某些特殊字符转换为URL编码。 |
在实现跨页面提交时,需要将源页面上Button类型控件的PostBackUrl属性值设置为目标页面
路径。而在目标页面上,需要在页面头部添加@ PreviousPageType指令,并设置VirtualPath
属性值为源页面中的数据。
在目标页面上访问源页面中数据的方法有两种:一是利用PreviousPage.FindControl方法访问
源页面上的控件;二是现在源页面上定义公共属性,再在目标页面上利用“PreviousPage.属性
名”获取源页面中数据。
在实现页面重定向和跨页面提交时,已涉及一些数据需要从一个页面传递到另一个页面,这
些实际上就是状态管理的一部分。
状态管理分为两种:
客户端:
客户端状态管理是将状态数据保存在客户端计算机上,当客户端向服务器端发送请
求时,状态数据会随之发送到服务器。
服务器端:
服务器端状态管理是将状态数据保存在服务器上。
6.5.1 ViewState:
又称为视图状态,用于维护Web窗体自身的状态。
6.5.2 HiddenField控件:
HiddenField又称隐藏域,用于维护Web窗体自身的状态。作为隐藏域,它不会显示在用
户浏览器中,但可以像设置标准控件的属性那样设置其属性。
6.5.3 Cookie:
是保存在客户端硬盘或内存中的一小段文本信息,如网站、用户、会话等有关的信息。
Cookie与网站关联,而不是与特定的页面关联。
可以在客户端修改Cookie设置和禁用Cookie。
注意:在Windows10中,不同浏览器的Cookies文件存放于不同的路径下。
6.5.4 session:
session又称为会话状态,在工程项目中应用广泛,典型的应用有存储用户信息、多页面
间的信息传递、购物车等。session产生在服务器端,只能为当前访问的用户服务。以用
户对网站的最后一次访问开始计时,当计时达到会话设定时间并且期间没有访问操作时,
则会话自动结束。如果同一个用户在浏览期间关闭浏览器后再访问同一个页面,服务器会
为该用户产生新的session。
在服务器端,用一个唯一的Session ID来标识每一个会话。
注意:
不管Session ID保存在Cookie还是添加在URL中,都是明文,如果需要保护
Session ID,可考虑采用HTTPS通信。
6.5.5 Application
又称为应用程序状态,与应用于单个用户的Session状态不同,它应用于所有的用户。所以,可以将Application状态理解成公用的全局变量,网站中的每个访问者均可访问该变量。