知识讲点:
- Request
- Response
- Server
- Session
- Cookie
- Application
- <%%>及<%=%>表达式
- Web应用程序根目录运算符:~
1、Request 封装了客户端请求信息。有以下常见属性
属性名 | 值类型 | 说明 |
ApplicationPath | string | 获取请求的资源在网站上的根路径 |
ContentEncoding | Encoding | 设置请求对象的编码 |
cookies | HttpCookieCollection | 客户端发送到服务器的Cookie集合 |
QueryString | NameValueCollection | 当前请求的查询字符串集合 |
UrlReferrer | Uri | 获取用户由哪个url跳转到当前页面 |
2、Response 常见属性如下:
属性名 | 值类型 | 说明 |
Charset | string | 表示输出流所使用的字符集 |
ContentEncoding | Encoding | 设置输出流的编码 |
ContentLength | int | 输出流的字节大小 |
ContentType | string | 输出流的HTTP MIME类型 |
Cookies | HttpCookieCollection | 服务器发送到客户端的Cookie集合 |
Output | TextWriter | 服务器响应对象的字符输出流 |
RedirectLocation | string | 将当前请求重定向 |
Response常用方法
方法名 | 返回值类型 | 说明 |
AppendCookie | void | 向响应对象的Cookie集合中增加一个Cookie |
clear | void | 清空缓冲区中的所有内容 |
close | void | 关闭当前服务器到客户端的链接 |
End | void | 终止响应,并且将缓冲区中的输出发送到客户端 |
Redirect | void | 重定向当前请求 |
3、Server对象
server对象是用于获取服务器的相关信息的对象,它是HttpServerUtility类的实例。它的常用方法如下:
方法名 | 返回值类型 | 说明 |
Execute | void | 执行指定的资源,并且在执行完之后再执行本页的代码 |
HtmlDecode | string | 对特殊字符串进行解码 |
HtmlEncode | string | 对特殊字符串进行编码 |
MapPath | string | 获取指定相对路径在服务器上的物理路径 |
Transfer | void | 停止执行当前程序,执行指定的资源 |
UrlDecode | string | 对路径字符串进行解码 |
UrlEncode | string | 对路径字符串进行编码 |
4、Session对象
Session对象用来保存与特定用户相关的信息,它是HttpSessionState类的实例。Session中的数据保存在服务器端,在客户端需要的时候创建Session,在客户端不需要的时候销毁Session,使它不再占用服务器内存。
它具有以下特点:
- Session中的数据保存在服务器端
- Session中可以保存任意类型的数据
- Session默认的生命周期是20分钏,可以手动设置更长或更短的时间。
设置session: Session["UserName"]="aaa";
获取session: string s=(string)Session["UserName"]
5、Cookie对象
Cookie对象也是用来保存与特定用户相关的信息。它是HttpCookie类的实例。和Session不同的是Cookie保存在客户端,每次客户端发送请求的时候都会把Cookie一起发送到服务器端,服务器每次响应客户端请求的时候会重新把Cookie发送到客户端保存。
Cookie具有以下特点:
保存在客户端
只能保存字符串类型的数据,如果需要在Cookie中保存其它类型的数据,需要将其转换成字符串类型后保存。
Cookie 也有默认生命周期,也可以手动设置。最大可设置成50年之后过期
例:
<script language="c#" runat="server">
protected void Page_Load(object sender, EventArgs e)
{
HttpCookie cookie=Request.Cookies["name"];//获取客户端Cookie
if (cookie == null)//如果不存在该名称的Cookie
{
cookie = new HttpCookie("name", "zhoufoxcn");
cookie.Expires = DateTime.Now.AddDays(10);//设置cookie保存10天
Response.Cookies.Add(cookie);//将cookie发送到客户端保存
}
else
{
Response.Write("cookie中保存的数据是:" + cookie.Value);
cookie.Expires = DateTime.Now.AddYears(-1);//设置cookie一年前过期
Response.Cookies.Add(cookie);//将cookie发送到客户端,这样就能删除掉cookie
}
}
</script>
6、Application对象
Application是HttpApplicationState类的实例,Application也存在服务器端,都可以存放任意类型的数据。
不同的Application中的数据可以由网站中所有的用户来设置或者获取。并且Application中存放的数据没有时间限制,除非我们手动删除或者服务器重新启动,否则存放的数据都会丢失。
7、<%%>用来编写程序的代码部分。其中可以声明变量和方法
<%
string name=Request.Form["UserName"].Trim();
stringUserName;
if(Request.Cookies["Username"]!=null)
{
userName=Request.cookies["UserName"].value;
}
%>
8、 <%=%> 表达式
例如:
<%int i=6;%>
<%=i%>
9、Web应用程序根目录运算符
- 绝对路径:<img src=www.netskycn.com/images/book.jpg>
- 相对路径:
相对于当前目录下表示形式
<img src="images/book.jpg">
相对于网站根目录表示形式
<img src="/images/book.jpg">
以当前网页路径对等的路径形式
<img src="../images/book.jpg">
只能用于服务器控件上或者服务器代码里的表示形式
<asp:Image ID="Image1" runat="server" imageUrl="~/images/book.jpg">.