首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

【收拾】Session和Cookie的区别,关系和应用

2012-07-25 
【整理】Session和Cookie的区别,关系和应用String cookieName “userID”Cookie cookies[] request.getCo

【整理】Session和Cookie的区别,关系和应用
String cookieName = “userID”;Cookie cookies[] = request.getCookies();if (cookies!=null){ for(int i=0;i<cookies.length;i++) { Cookie cookie = cookies[i]; if (cookieName.equals(cookie.getName())) doSomethingWith(cookie.getValue()); }}
3.5 如何使用cookie检测初访者
    A.调用HttpServletRequest.getCookies()获取Cookie数组
    B.在循环中检索指定名字的cookie是否存在以及对应的值是否正确
    C.如果是则退出循环并设置区别标识
    D.根据区别标识判断用户是否为初访者从而进行不同的操作

3.6 使用cookie检测初访者的常见错误
不能仅仅因为cookie数组中不存在在特定的数据项就认为用户是个初访者。如果cookie数组为null,客户可能是一个初访者,也可能是由于用户将cookie删除或禁用造成的结果。
但是,如果数组非null,也不过是显示客户曾经到过你的网站或域,并不能说明他们曾经访问过你的servlet。其它servlet、JSP页面以及非Java Web应用都可以设置cookie,依据路径的设置,其中的任何cookie都有可能返回给用户的浏览器。
正确的做法是判断cookie数组是否为空且是否存在指定的Cookie对象且值正确。

3.7 使用cookie属性的注意问题
属性是从服务器发送到浏览器的报头的一部分;但它们不属于由浏览器返回给服务器的报头。 
  因此除了名称和值之外,cookie属性只适用于从服务器输出到客户端的cookie;服务器端来自于浏览器的cookie并没有设置这些属性。 
  因而不要期望通过request.getCookies得到的cookie中可以使用这个属性。这意味着,你不能仅仅通过设置cookie的最大时效,发出它,在随后的输入数组中查找适当的cookie,读取它的值,修改它并将它存回Cookie,从而实现不断改变的cookie值。

3.8 如何使用cookie记录各个用户的访问计数
    1) 获取cookie数组中专门用于统计用户访问次数的cookie的值
    2) 将值转换成int型
    3) 将值加1并用原来的名称重新创建一个Cookie对象
    4) 重新设置最大时效
    5) 将新的cookie输出

3.9 会话跟踪的基本步骤
    1) 访问与当前请求相关的会话对象
    2) 查找与会话相关的信息
    3) 存储会话信息
    4) 废弃会话数据

3.10 getSession()/getSession(true)、getSession(false)的区别
getSession()/getSession(true):当session存在时返回该session,否则新建一个session并返回该对象。
getSession(false):当session存在时返回该session,否则不会新建session,返回null。

热点排行