Application、QueryString、session、cookie、ViewState、Server.Transfer等
Application:
WebForm1.aspx: protected void Button1_Click(object sender, EventArgs e) { ; Response.Redirect("WebForm2.aspx"); // 页面跳转。等价于 HttpContext.Current.Response.Redirect("WebForm2.aspx"); } /////////////////////////////////////////// WebForm2.aspx: protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { if (Application["t"] != null) { this.Literal1.Text = this.Application["t"].ToString(); int count = (int)this.Application["t"]; count++; // 加解锁:作用防止大量用户同时访问造成的数据不准确。 this.Application.Lock(); // application加锁 this.Application["t"] = count; this.Application.UnLock(); // 释放锁 } } }
1.容易丢失。例如:代码做了修改重新编译启动。
2.可以多用户同时使用该数据。
Session:
WebForm1.aspx: protected void Button1_Click(object sender, EventArgs e) { // 设置session this.Session["user"] = "namejr"; Response.Redirect("WebForm2.aspx"); } protected void Button2_Click(object sender, EventArgs e) { Response.Redirect("WebForm2.aspx"); } /////////////////////////////////////////// WebForm2.aspx: protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { if (this.Session["user"] != null) { this.Literal1.Text = this.Session["user"].ToString(); } else { this.Literal1.Text = "未登录"; } } }
session的信息是存储在服务器的,但是为了服务器区别出是哪一个用户,会在用户本地产生一个cookie,为了防止用户禁用cookie,可以再web.config做如下设置:
<system.web> <!-- 开启debug --> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> <!-- 防止用户禁用本地cookie --> <sessionState cookieless="UseUri"></sessionState> </system.web>
Cookie:
string a = this.Request.Cookies["a"].Value; // 获取cookie的值 ) }); // 添加cookie。等同于HttpContext.Current.Response.AppendCookie(new HttpCookie() { Name = "c", Value = "C", Expires = DateTime.Now.AddDays(1) });
ViewState:
使用ViewState的数据保留在每个单独的页面,不能够跨页面进行实现
;
Server.Transfer 和 Response.Redirect:
// Response.Redirect protected void Button1_Click(object sender, EventArgs e) { // 使用Response.Redirect相当于在客户端进行页面的跳转,具体看导航栏便可知道 Response.Redirect("WebForm2.aspx"); } // Server.Transfer protected void Button2_Click(object sender, EventArgs e) { // Server.Transfer相当于在服务器完成页面的指向,导航栏现实的仍然是WebForm1.aspx Server.Transfer("WebForm2.aspx"); }
Application、QueryString、session、cookie、ViewState、Server.Transfer等的更多相关文章
- Asp.net 服务器Application,Session,Cookie,ViewState和Cache区别
2.8 Context 的使用Context 对象包含与当前页面相关的信息,提供对整个上下文的访问,包括请求.响应.以及上文中的Session 和Application 等信息.可以使用此对象在网页之 ...
- Application,Session,Cookie,ViewState和Cache区别
在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等.下面分别介绍它们的用法和区别. 方法 信息量大小 作用域和保 ...
- Web缓存Cache、Application、Session与ViewState
在ASP.NET中,有很多种保存信息的对象.例如:APPlication,Session,Cookie,ViewState和Cache等,那么它们有什么区别呢?每一种对象应用的环境是什么? 方法 信息 ...
- ASP.NET:Application,Session,Cookie,ViewState和Cache之间的区别(转)
在ASP.NET中,有很多种保存信息的对象.例如:Application,Session,Cookie,ViewState和Cache等,那么它们有什么区别呢?每一种对象应用的环境是什么? 为了更清楚 ...
- [区别]APPlication,Session,Cookie,ViewState和Cache
原文发布时间为:2009-08-01 -- 来源于本人的百度文章 [由搬家工具导入] 在ASP.NET中,有很多种保存信息的对象.例如:APPlication,Session,Cookie,ViewS ...
- (转)Application, Session, Cookie, Viewstate, Cache对象用法和区别
================================================================================ 1.Applicati ...
- .NET Application,Session,Cookie,ViewState,Cache对象用法
作用域 保存地址 生命周期Application 应用程序 服务器内存 IIS启动Session 整个站点 服务器内存 Session到时 默认20分钟Cashe 应用程序 服务器内存 应用程序的周期 ...
- APPlication,Session,Cookie,ViewState和Cache之间的区别
1.Application:用于保存所有用户共用的数据信息. 在Asp.Net中类似的配置数据最好保存在Web.config文件中.如果使用Application对象,一个需要考虑的问题是任何写操作都 ...
- Application,Session,Cookie,ViewState,Cache对象用法、作用域的区别
1.Application:用于保存所有用户共用的数据信息.在Asp.Net中类似的配置数据最好保存在Web.config文件中.如果使用Application对象,一个需要考虑的问题是任何写操作都要 ...
- asp.net Server.Transfer
页面跳转传参. 如果不是通用的跳转可以通过,在原始页面定义对象保存数据 跳转的目标页面可以: SourcePage page=(SourcePage)Context.Handler; //获取源页面的 ...
随机推荐
- vim打开txt文件看到^@字符
'\0'是不可见字符,使用vim编辑器查看的文本文件中如果包含'\0'字符,vim会自动将'\0'字符转换为^@字符. 看下面的代码: #include <stdio.h> #includ ...
- JavaScript的局部变量和全局变量小知识
(了解一下,避免初学者犯错,但下面定义全局变量的做法并不推荐,只是让你们知道这是怎么一回事) 如果在函数中使用var定义一个变量,那么这个变量在函数退出后就会被销毁,例如: function test ...
- verilog reg 初值问题
虽然没有写初值 但是硬件电路肯定有逻辑电平的如果是用fpga实现的 缺省值为全0 也可以在信号声明时指定初始值如果是asic实现 初始值是随机的(但也是某个电平) 声明时指定初值会被忽略 rtl仿真时 ...
- day 23 对象的名称空间 类,对象属性和方法 封装 接口提供
一.对象的特有名称空间 # 对象独有的名称空间:在产生对象时就赋初值 '''class ted: def func(): 当func里不存在参数时,调用时不需要给值 print('hah')ted.f ...
- python安装后环境变量的设置
win7系统中单击右击计算机->属性->高级系统设置->环境变量 在path目录下用分号分开做分割添加环境变量. 如果同时添加python2.x.x版本和python3.x.x版本两 ...
- 实践作业4 Web测试(小组作业分配)
经过小组内的讨论之后,我们小组的工作分配如下: 张赛军.闫昊:阶段一,软件评测: 林俊旭:阶段二,用户调研: 张嘉焰:阶段三,得出结论: 许林龙:阶段四,分析: 王奎:阶段五,每日记录,并汇总整理小组 ...
- C语言进阶1-#define和const
宏的命名规范:一般以项目前缀开头,key结尾. #开头表编译. 宏的用法:1.定义常用字符串. 2.定义一段代码. const与宏的区别:1.编译时刻:宏-预编译 const-command+b ...
- day14 生成器迭代器
迭代器(iterator) 可迭代对象: 可以使用迭代器取出数据的对象 判断一个对象是否是可迭代对象,就看这个对象有没有实现__iter__方法 所有的容器类型(包括字符串)都是可迭代的 迭代器的使用 ...
- django 模型操作
# 添加 Fruit.objects.create(name='Apple') # 更新 UserProfile.objects.filter(user=admin).update(**{'onlin ...
- EMMET 的HTM自动生成
{ // Custom snippets definitions, as per https://github.com/emmetio/emmet/blob/master/snippets.json ...