您现在的位置是:首页 >技术教程 >ASP.NET 记录 HttpRequest HttpResponse HttpServerUtility网站首页技术教程
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("<hr/>");//解释成一条水平线
Response.Write(HttpUtility.HtmlEncode("<hr/>"));//显示就是<hr/>
Response.Write(Server.UrlEncode("a b"));//显示a b
跨页面提交
button进行跨页面提交
在源页面的button中设置PostBackUrl为目标路径
在目标页面上也就是.aspx结尾的文件的页面头部添@ PreviousPageType指令,设置VirtualPath属性值为源页面路径
在目标页面中的头部添加下面代码
<%@ PreviousPageType VirtualPath="test.aspx" %>
如何在目标页面访问原页面中的数据
- 利用PreviousPage.FindControl(“控件ID名”)再强转成对应的类型,通过获取属性值的防止来获取数据
- 在原页面中定义公共属性,在目的页面中通过PreviousPage.属性名来获取数据
判断是否是跨页面提交
Server.Execute()与Server.Transfer()都可以实现跨页面的效果(我没有验证,)
区分是跨页面提交还是通过调用上述两个函数的操作是在目标页面的.cs文件中判断PreviousPage.IsCrossPageBack属性值是否为true,若为true就是跨页面提交,反之不是
杂七杂八的
禁用ViewState
- 全局禁用 : 在<%@ Language=“C#”% >中添加EnableViewState=“false”
- 局部禁用:在要禁用的控件的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();
总结