session和cookie知识点总结
cookie小结:
1、cookie是在服务端创建
2、cooki是保存在浏览器这一端
3、cookie的生命周期可以通过 cookie.setMaxAge(2000);
(如果不设置生命周期,cookie的生命周期当浏览器关闭时就消亡)
4、cooki可以被多个浏览器共享(这是与session的区别)
5、一个web应用可以保存多个cookie。但保存在同一个cookie文本在客户端浏览器下。
6、cookie存放时候是以明文方式存放,因此安全性较低,可以通过加密后存放。
{
cookie的细节:
1、一个浏览器最多放入300个cookie,一个web站点最多20个cookie,而且一个cookie大小限制4k
2cookie的生命周期:
setMaxAge(正数) 设置生命周期
setMaxAge(0) 删除该cookie
setMaxAge(负数) cookie的生命周期是会话级别
}
//先得到cookie
Cookie cookies[]=request.getCookies();
for(Cookie cookie:cookies){
if (cookie.getName().equals("id");{
System.out.println('id");
// 删除
cookie.setMaxAge(0);
response.addCookie(cookie);//一定要加上这一句,否则不能删除
}
}
如果cookie中存放中文
String val=java.net.URLEncoder.eencode("测是","utf-8");
Cookie Cbookie=new Cookie("name",val);
取出
String val=java.net.URLDecoder.decode(cookie.getValue(),"utf-8");
out.println("name="+val);
cookie的生命周期则是指的是累计时间。
seession总结:
1、session是存放在服务器的内存中。
2、一个用户的浏览器。,独享一个session域对象
3、session中属性默认的生命周期是30分,可以通过web.xml来修改
{
设置session的生命周期tomcat/conf/web.xml
1、<session-config>
<session-timeout>30</session-timeeout>
</session-config>
2、session.setMaxInactiveinterval(60) 发呆60秒后session失效
session和 cookie的生命周期小结:
session的生命周期是指发呆时间,如果我们设置session是10s
,是指,在10s内,在方法问第9s时,则重新计时
如果重启tomcat,或者reload web应用,或者关机则session会失效。
session中可以存放多个属性
session中可以存放对象
如果session. setAttribute("name",val),如果名字重复,则会替换该属性。
面试:
(应用关掉后,上次购买的商品还在--这涉及到session的销毁时间)
时间周期的存在。
}
session:
为什么服务器能够为不同的浏览器提供不同的session?
因为每个浏览器取访问web站点的时候,如果发出的http请求没有带JSESSIONID头就会自动给你创建一个并返回
session和cookie的区别:
存放位置:
1、cookie存放在客户端的临时文件里。,创建与服务端,保存在浏览器,可以有多个浏览器共享
2、session存在服务器的内存中,一个session域对象为一个用户浏览器服务。
2、安全性:
1、cookie是以文明方式存放在客户端,安全若,可以通过md5再存放、
2、session是存放在服务器端的内存中,所以安全性好。
3、网络传输量
1、cookie会传递信息给服务端
2、session的属性值不会给客户端
4、生命周期:
cookie的生命周期是指累计时间
session的生命周期是指间隔时间
5、在以下情况下session也会失效:
1、关闭tomcat
2、reload web应用
3、时间到了
4、invalidate也会让session失效。
6、使用原则:
session会占用服务器的内存
7:从范围来看
session为单用户独享
cookie为多个用户浏览器共享
保存信息的方法有两种:
1、保存在文件里面,
2、保存在数据库里面
网站计数器(servletContext)