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和集合指的是同一片内存。