Session:在不同的浏览器之间传值,像银行之类的网站为了安全把用户名密码保存在session里面。
每一台电脑访问服务器,都会是独立的一套session,key值都一样,但是内容都是不一样的
以上所有内容,都跟cookies一样
不一样:
1、Session的保存位置是保存在服务器上
2、Session没有持久的,它的保存周期就是20分钟
重点:Session不要滥用,也不要不用,滥用可能会造成服务器内容溢出,不用会造成资源浪费,session使用的是服务器的内存,因为内存中的数据提取及交互是最快的,使用得当可以提高浏览速度。
赋值:Session["key"] = 值;
取值:string a = Session["key"];
清除: Session["key"]=null;
Application:
全局对象
Application["key"] 是所有的用户获取这个key里面的值都是一样的
没有保存周期,它会一直保存着,例如:版本号一类的可以存在这里面
赋值:Application["key"]=值;
取值:Application.Get("key");
ViewState:(作为了解)
理解成为病例
类似于中间过程,由于网页的不固定性,点击按钮会刷新,控件赋得值借助iewstate保存,把刷新前的值保存成专门代码。刷新后再赋值给控件
Repeater的Command操作:
1、ItemCommand事件 - 在Repeater中所有能触发事件的控件,都会来触发这一个事件
2、CommandName - 判断点击的是什么按钮,e.CommandName
3、CommandArgument - 触发事件所传递过来的主键值数据,放在这里面
界面值绑定时要用 单引号 !
commandname对按钮进行分类
commandargument将选中的数据,传值
4、ItemCreated - 项模板中将HTML代码生成完毕时执行一遍此事件
5、ItemDataBound - 项模板将数据绑定后执行一遍此事件
补充:
viewstate与session的对比
(1) session值是保存在服务器内存上,那么,可以肯定,大量的使用session将导致服务器负担加重. 而viewstate由于只是将数据存入到页面隐藏控件里,不再占用服务器资源,因此, 我们可以将一些需要服务器"记住"的变量和对象保存到viewstate里面. 而sesson则只应该应用在需要跨页面且与每个访问用户相关的变量和对象存储上.
(2) session在默认情况下20分钟就过期,而viewstate则永远不会过期.
但viewstate并不是能存储所有的.net类型数据,它仅仅支持String、Integer、Boolean、Array、ArrayList、Hashtable 以及自定义的一些类型.
任何事物都有两面性, 使用viewstate会增加页面html的输出量,占用更都的带宽,这一点是需要我们慎重考虑的. 另外, 由于所有的viewstate都是存储在一个隐藏域里面,用户可以很容易的通过查看源码来看到这个经过base64编码的值.然后再经过转换就可以获取你存储其中的对象和变量值
内置对象的作用:为了跨页面传值和状态保持
Request:接收请求
Response:响应请求
Cookies:(保存客户端的硬盘上)状态保持 保持7天或者持久
Session:(保存服务端的内存上)状态保持 只能保持20分钟
Application:一般表示版本号
ViewState:记录上一个页面的所有内容
QueryString:跨页面传值
Repeater的Command操作:
1、ItemCommand事件 - 在Repeater中所有能触发事件的控件,都会来触发这一个事件
2、CommandName - 判断点击的是什么按钮,e.CommandName
3、CommandArgument - 触发事件所传递过来的主键值数据,放在这里面
界面值绑定时要用 单引号 !!!!!! e.。。。
4、ItemCreated - 项模板中将HTML代码生成完毕时执行一遍此事件
5、ItemDataBound - 项模板将数据绑定后执行一遍此事件