我是初学者,有错误再所难免,如果存在错误,希望知道的帮我指出,有些地方还是有些不理解,希望知道的能帮我解答一下。
Asp.net中的几个对象
1. Request:可以访问关于请求Web页面的个人或进程的信息
2. Response:提供一种方法,以准确控制如何将响应发送回发出请求的人那里
3. Server:提供一系列有用的与Web相关的实用程序。
4. Application:为经常使用的信息提供了一个有用的Web站点存储位置
5. Session:可以为每个用户的会话存储信息。
Request
Request可以访问关于请求Web页面的个人或进程的信息。Request对象可以从个人的Web浏览器向我们有效的传递消息。
比较有用的两个属性为:
Cookies:通过这个属性可以查看访问者以前在本站的cookies
QueryString:返回任何使用GET传输到页面的参数。
Response
Response提供一种方法,以准确控制如何将响应发送回发出请求的人那里。Response对象可以访问即将发送回请求Web浏览器的http响应。
常用属性:
1. Redirect:它将用户重定向到另一个页面
2. Write:将字符串写入html流。
Server
Server提供一系列有用的与Web相关的实用程序。
常用属性:
MapPath:此属性带有一个虚拟路径的参数
比如MapPath(“/webapp/myfile.aspx”),返回该文件在物理磁盘的准确位置
状态处理:
包括Application,Session,Cookies
主要要注意的有状态的作用域,状态存储位置,状态如何改变等。
Application
Application为经常使用的信息提供了一个有用的Web站点存储位置
Application中的信息可以被网站的所有页面访问。
Application的初始配置:
在应用程序启动时配置初始状态,在Global.asax中配置
protected void Application_Start(Object sender, EventArgs e)
{
Application["UserCount"] = 0;
}
使用Lock和Unlock避免两个页面同时修改状态
Application.Lock();
Application["UserCount"] = (int)Application["UserCount"]+1;
Application.UnLock();
Application几点说明:
1. 它用于经常使用的数据,如果只是偶尔使用,可以把信息存储在磁盘的文件中,大部分情况下,web.config文件可以完成这个任务。
2. Application对象是一个集合对象,它除了包含文本信息外,也可以存储对象。
3. 如果站点开始就有很大的通信量,则使用Web.config文件,不要用Application状态
Session
它可以为每个用户的会话存储信息。默认的超时时间为20分钟,用户关闭网页后自动结束。
常用属性:
Abandon():此方法结束当前的会话,清楚会话中的所有信息。
Clear():清除会话中所有信息,不结束会话。
IsNewSession:如果在用户访问当前页面时创建了绘画,则此属性返回true,在使用会话前需要使用某些数据初始化会话时,该属性很有用。
TimeOut:此属性在会话终于之前以分钟为单位获取和设置闲置时间。默认时间为20分钟
if (Session["test"]==null)
{
Session["test"] = 1;
}
else
{
Session["test"] = (int)Session["test"]+1;
}
Session说明:
1. 存储在Web服务器端,
2. 实际信息与每一位访问者相关
3. 是对象集合,可以存储对象
4. 不要在会话中存储不常时间的东西,不要在会话中存储大量东西
Cookies
存储与每一位用户相关的小段信息,通常也与网站相关。存储在用户的硬盘上,通常期限比Session的期限大。
Cookies的生存期设置
DateTime dt = DateTime.Now;
TimeSpan timeSpan = new TimeSpan(30,0,0,0); //30天
if (Request.Cookies["test"]!=null)
{
Request.Cookies["test"].Expires = dt.Add(timeSpan);
}
cookies例子
if (Request.Cookies["test"]==null)
{
int i = 1;
HttpCookie c = new HttpCookie("test");
c.Value = "1";
Request.Cookies.Add(c);
}
else
{
int k = Convert.ToInt32(Request.Cookies["test"].Value)+1;
Request.Cookies["test"].Value = k.ToString();
}