ViewState、Session和Cookie(自学笔记)
一.ViewState
使用ViewState的前提条件:1.页面上存放一个 runat="server" 的表单,那么生成html代码的时候就会自动添加一个名字叫 __VIEWSTATE的隐藏域到html代码中。
当页面的这个runat="server"的表单被提交的时候,这个隐藏域 也会被提交到服务器。
2.通俗的说,页面对象的ViewState属性,只有在当前页面表单提交操作的时候才有用。VIEWSTATE适用于同一个页面在不关闭的情况下
多次与服务器进行POST表单交互

二、Cookie : 在浏览器端长久保存数据的一种机制。(浏览器缓存Cookie,浏览器硬盘Cookie) 本质上,就是在浏览器端的一个txt文件。
1.使用场景:最近浏览商品;2周内免登陆;
2.如何删除Cookie,创建一个相同键的Cookie对象,设置失效时间为负数(其实就是创建一个已经失效的Cookie),发给浏览器,浏览器会用这个失效的Cookie把原来 的Cookie给覆盖掉,那么就达到了删除Cookie的目的。
3.//注意:设置了cookie的发送目录,也就是说:只有当用户访问 web/admin路径的时候,浏览器才回将这个cookie发送给服务器 cookie.Path = "/Web/admin/"; 4.Cookie是不论浏览器请求服务器什么类型的资源,都会被发到服务器去的。(哪怕是请求图片,css文件,js文件都会发送cookie)
Cookie机制 : 主要是指服务器和浏览器间 互相传递 Cookie数据的一种 流程。
1.服务器到浏览器:
1.1服务器通过响应报文的 Set-Cookie 方式向浏览器发送 Cookie 键值对和失效时间和path等数据
1.2浏览器接收到服务器的Set-Cookie命令之后,会自动的根据内容 在浏览器端创建Cookie文件。
1.3浏览器会根据Cookie的失效时间,自动清除过期的Cookie文件。
2.浏览器到服务器
2.1当浏览器请求一个域名的时候,会自动在浏览器端读取 该域名下的Cookie文件,并将里面的键值对 装入 请求报文,发送给服务器。
2.2当服务器接收到浏览器的请求报文里的Cookie命令后,会自动将里面的键值对 封装到 Request.Cookies集合中,供程序员使用。
注意: 如果不设置失效时间,则浏览器会将此cookie保存到浏览器缓存中;如果设置,就存硬盘里。

三、Session
1.配置整个网站的Session失效时间 <system.web> <sessionState timeout="20"></sessionState> </system.web>
2.当浏览器禁用了 Cookie后,那么服务器就可以选择将 SessionId存入地址栏的url中来传递。
3.注意:一般处理程序中,如果要使用 Session的话,必须实现 IRequiresSessionState 接口 。这种情况下的接口叫 【标识接口】,它不是为了规范子类的行为,也就无所谓在接口里定义方法。它的存在,就是为类加上一个【标识】而已,当程序创建类的对象的时候可以检查是否有此【标识】。

浙公网安备 33010602011771号