Web应用的特点是服务方不保持状态,如果不采用某种方法,当一次Web请求完成后,服务方的对应状态就会消失。也就是说每刷新一次页面或者相应一个事件,在服务方都要重新生成一个实例。响应完成后,这个实例也随之消失了。
在.net中,有2中方式来保存状态,包括客户端和服务端。
一 客户端
- ViewState属性
将服务端控件的viewState属性设置为true.
- 自定义隐藏域
在HTML上定义一个隐藏的form元素,并将状态值保存在这个元素中。这个不占用服务器资源但是如果存储较大 的值的化,在发送页面的时候可能速度会很慢。
- Cookie
存储少量需要经常更改的信息,这些信息与请求一起发送到服务器。缺陷也是很多的 如安全性 大小限制,持久性低。
- QeuryString
附加到页的URL末尾的信息,可以用其通过URL将数据提交回页或另一个页上。但是有长度限制,有255个字符的限制。
二 服务器端
- 应用程序状态
- 会话状态
- 数据库