我为Dotnet狂

------学而不思则罔,思而不学则殆

 

cookie与session的区别

一、cookie 与 session 的区别

cookie 把信息保留在客户端,把用户信息保留在用户本地不必总访问服务器。当发出页面请求时,把cookie里的信息从客户端发到服务器。一次有效,不能跨窗口。

session 的信息保存在服务器端,通过消耗服务器内存来保存信息。
      是用户全局变量,对该用户的所有操作过程都有效。为每个用户分配一个sessionId,用来唯一的标识客户,用session.Abandon只会注销当前客户。
      只要页面不关闭就一直存在,可以跨窗口存在。session主要用于在页面见传递变量。

总结:Cookies适合做保存用户的个人设置、爱好等,Session适合做客户的身份验证。

二、application、session、request、page

它们的作用范围由大到小。

page只在当前页面有效。

request在一次请求的全过程中有效。包括用户请求访问的当前web组件,以及,和当前web组建共享同一请求的其他web组件(比如jsp页面中include的,forward标记包含的)。存放在HttpServletRequest对象中。

      一次请求的全过程:指从服务器端代码(如jsp、Servlet)接受请求并响应开始,至响应完毕(无结果或将结果完全送回客户端并断开连接)的期间。

session是用户全局变量,在整个会话期间都有效。只要页面不关闭就一直有效(或者直到用户一直未活动导致会话过期,或调用HttpSession的invalidate()方法)。存放在HttpSession对象中。

application是程序全局变量,对每个用户每个页面都有效。存放在ServletContext对象中。


总结:当数据只需要在下一个forward有用时,用request就够了;
            若数据不只是在下一个forward有用时,就用session。
            上下文,环境信息之类的,用application。

posted on 2007-03-21 17:29  3stones  阅读(1782)  评论(1编辑  收藏  举报

导航