Cookie与Session

Cookie:

向客户端写入Cookie以及获取Cookie中的值

Cookie cookie=new Cookie("key","value");  //第一个参数是键,第二个参数是键(类似Map集合的键值对)
cookie.setMaxAge("int second");           //设置cookie的存活时间
response.addCookie(Cookie cookie);        //将cookie添加到客户端

//从客户端获取cookie
String cookie;
Cookie[] cookies=request.getCookies();
if(int i=0;i<cookies.length;i++)
{
    if(cookies[i].getName().equals("想要得到的Cookie名称"))
    {
         cookie=cookies[i].getValue();
    }
}
//将同一个cookie中的值分开(例如值的格式是:a,b,c……)
String[] array=cookie.split(",");
String a=array[0];
String b=array[1];
   ……

 

Cookie的作用:

1、Cookie可以持久的保存一些和客户相关的信息。

2、Cookie可以帮助服务器端保存多个状态信息,但是又不用服务器端专门分配存储资源,减轻了服务器的负担。 

 

Cookie不安全的原因:

1、可以利用跨站技术将信息发给目标服务器;为了隐藏跨站脚本的URL,可以结合Ajax(异步JavaScript和XML)后台窃取Cookie。

2、通过某些软件,窃取硬盘Cookie。

 

解决Cookie安全问题的方法:

1、Session代替Cookie

2、及时删除Cookie

    a、设置Cookie的失效时间

    b、通过浏览器删除Cookie

3、禁用Cookie

 

关于Session这里只补充两点:

session.removeAttribute("参数名");//移除session中的参数
session.invalidate();             //干掉session

 

问题:从session中获取一个集合,移除集合中的一个元素,不放回session,那么session中是否还有存在这个元素?

        答:不存在,因为集合是一个引用对象,session和集合指的是同一片内存。

posted @ 2016-11-07 17:26  Darren丶阿新  阅读(222)  评论(0编辑  收藏  举报