ASP.NET 记录 HttpRequest HttpResponse HttpServerUtility

纯属个人记录,会有错误

HttpRequest

Browser是获取客户端浏览器的信息
Cookies是获取客户端的Cookies
QueryString是获取客户端提交的数据
ServerVariables是获取服务器端或客户端的环境变量信息

Browser

语法格式:

Request.Browser[“浏览器特性名”]

常见的特性名

名称 说明
ActiveXControls 逻辑值,true表示支持ActivateX控件,反之不支持
Browser 浏览器类型
Cookies 是否支持cookies,true支持,反之不支持
JavaScript 是否支持JavaScript,true支持,反之不支持
MajorVersion 浏览器主版本号
MinorVersion 浏览器次版本号
Version 版本号

QueryString

这东西常用于页面间传递数据信息
一般是再NavigateUrl中属性中写目标文件?传递的信息

           <asp:HyperLink runat="server" NavigateUrl="~/target.aspx?name=123&age=12">
               cehsi
           </asp:HyperLink>

target.aspx页面的Page_Load函数

Response.Write(Request.QueryString["name"]+Request.QueryString["age"]);

效果就是点击了哪个cehsi超链接后跳转到target页面并显示12312

ServerVariables 数据集合

语法格式:

Request.ServerVariables[“环境变量名”]

环境变量名表

变量名 描述
Local_ADDR 服务器的IP地址
PATH_TRANSLATED 当前页面的服务器端的物理路径
REMOTE_ADDR 客户端IP地址
REMOTE_HOST 客户端计算机名
SERVER_NAME 服务器端计算机名
SERVER_PORT 服务器端网站的端口号

注:PATH_TRANSLATED这个我不是很清楚,望知道大佬在评论区评论下

HTTP响应

HttpResponse

注:Page类的Response属性值是HttpResponse类的一个实例对象,
常用的属性与方法

成员 描述 例子
Cookies 添加或者修改客户端的Cookie
AppendToLog()方法 自定日志信息添加到IIS日志文件中
Eed() 终止页面的执行
Redirect() 页面重定向 Response.Redirect(“~/target.aspx?name=123”);
Write() 页面上输出信息

添加:Response.Cookies[“Name”].Value=“abc”;或
HttpCookie cookie = new HttpCookie(“Name”);
cookie.Value=“张三”;
cookie.Expires=DateTime.Now.AddDays(1);//设置过期时间
Response.Cookies.Add(cookie);

HttpServerUtility

Server.Execute(),下面都是以Server.属性和方法一栏中的内容
常用的属性和方法

属性和方法 描述
ScriptTimeOut 设置页面执行的最长时间,单位秒
Execute() 停止执行当前页面,转到新页面,执行完毕后返回原页面,执行后续语句
HtmlEncode() 将字符串中的XHTML元素标记转换为字符实体
MapMath() 获取页面的物理路径,假如网址是http://www.demo.com/1.html,程序在c:/code中,那么就是c:/code/1.html
Transfer() 不同于Execute的地方是转到新页面后不会返回原页面
UrlEncode() 将字符串中的某些特殊字符转换为URL编码
Response.Write("
"
);//解释成一条水平线 Response.Write(HttpUtility.HtmlEncode("
"
));//显示就是
Response.Write(Server.UrlEncode("a b"));//显示a b

跨页面提交

button进行跨页面提交

在源页面的button中设置PostBackUrl为目标路径
在目标页面上也就是.aspx结尾的文件的页面头部添@ PreviousPageType指令,设置VirtualPath属性值为源页面路径

在目标页面中的头部添加下面代码

<%@ PreviousPageType VirtualPath="test.aspx" %>

如何在目标页面访问原页面中的数据

  1. 利用PreviousPage.FindControl(“控件ID名”)再强转成对应的类型,通过获取属性值的防止来获取数据
  2. 在原页面中定义公共属性,在目的页面中通过PreviousPage.属性名来获取数据

判断是否是跨页面提交

Server.Execute()与Server.Transfer()都可以实现跨页面的效果(我没有验证,)
区分是跨页面提交还是通过调用上述两个函数的操作是在目标页面的.cs文件中判断PreviousPage.IsCrossPageBack属性值是否为true,若为true就是跨页面提交,反之不是

杂七杂八的

禁用ViewState

  1. 全局禁用 : 在<%@ Language=“C#”% >中添加EnableViewState=“false”
  2. 局部禁用:在要禁用的控件的EnableViewState属性改成false

Session

Session[“key”]=value;
注意只有Web.config文件中的sessionState=InProc时才会执行Session_End()方法,Session_End()就是时间到了TimeOut的值的时候要结束Session的时候会调用Session_End(),TimeOut是获取设置会话状态持续时间,单位是分钟,默认为20分钟

Application

这东西相当于一个全局变量,修改时先要调用Applicaiton.Lock(),结束后要调用Application.UnLock();

总结
ASP.NET 记录 HttpRequest HttpResponse HttpServerUtility_第1张图片

你可能感兴趣的:(学习)