Cookie,Session和Application

Cookie: ①存在于客户端(可被阻止)
         ②只能是文本文档
         ③如果设置了期限值,则写入客户端的文件;
           如果没有,它只对本窗口或其子窗口有效,其它窗口不能访问该Cookie
        ④在Servlet/JSP中设置的Cookie可以被同路径下或其子路径的Servlet/JSP访问,父路径不可以
             ○注:这里的路径是指URL,而不是Web文件的目录
Session: ①存在于服务器端
             ②每个Session对应一个窗口,用SessionID标识,这个Session为该窗口及其子窗口共享
             ③有两种实现方式:a.使用Cookie(在Cookie可用时)b.URL重写(在Cookie被禁用时)
             ④没有访问路径的问题。同一个WebApplication下的Servlet/JSP设置的Session可以被互相访问
                  前提是:同一个浏览器窗口或其子窗口
Application:与一个Web应用程序相对应,该应用程序下所有的Servlet/JSP共用该Application中的信息(ServletContext

 

 

Cookie存储的信息是放到客户端的,用户在访问服务器端页面时,必然在客户端和服务器端之间频繁交换信息,影响了程序的性能。而Session由于存储在服务器内存中,因此不存在这个问题。不过,Session存储的信息是临时的,用户一旦关闭浏览器,状态即失去。而Cookie则相反。COOKIE 是本地文件,是 40 大盗在阿里巴巴家做的记号,或者是送牛奶的人在你家门口钉的箱子。 



Application状态为应用程序提供了一个全局的状态。所有客户都可以使用该状态。从设计的角度来说,我们通常用Application来存储一些标准的数据。同时,我们在使用它时要注意避免性能的降低,存储的数据尽可能提供给客户只读的功能。 APPLICATION 是公共浴池。在这里能看见所有人,包括 ppmm 哦:)。 


Session和客户端的Cookie是有关的,当客户关掉Cookie时,Session就失效了,SESSION 是服务器端内存,是你洗澡时浴池发给你的钥匙。自己专用,可以开自己的好多箱子。 

 

最根本的应该是这样!:1、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。 
    
2、session中保存的是对象,cookie中保存的是字符串。 
    
3、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,
那么同一个网站中不同路径下的cookie互相是访问不到的。 
    
4、session需要借助cookie才能正常工作。如果客户端完全禁止cookie,session将失效。 但是如果服务器端启用了url编码,也就是用 
URLEncoder.encode()把所有的url编码了,则会在url后面出现如下类似的东西 
index.jsp:jsessionid=fdsaffjdlks;jaf;lkdjsf 

服务器通过这个进行session的判断 


5 session在用户会话结束后就会关闭了,但cookie因为保存在客户端,可以长期保存 

 

cookie:记录在客户端

1.服务器可以向客户端写内容

2.只能是文本内容

3.客户端可以阻止写入

4.只能拿自己webapp写入的东西

5.两种:属于窗口/子一个窗口,属于文本;设置生存周期:存入文件;未设置,内存。

6.一个servlet/jsp设置的cookies能够被同一路径下或子路径下的servlet/jsp读到(路径=URL!=真实路径)

session(会话跟踪):记录在服务器端

1.一个窗口对应一个session,一个sessionID号

2.两种实现方式:cookie和URL重写

3.如果支持cookie,创建session时,session保存在cookie中;若不支持,重写URL传session,response.encodeURL()(1.转码,2.url后跟sessionID)

4.session不像cookie存在路径访问问题,同一application下的servlet/jsp可以共享一个session,前提是在同一个窗口

 


Application:用于保存整个WebApplication的生命周期内都可以访问的数据

1.在API表现为ServletContext

2.通过HttpServlet的getServletContext()拿到

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值