什么叫做会话 ?
用户从打开一个浏览器开始,浏览器网站,到关闭浏览器的整个过程叫做一次会话!
每个用户与服务器进行交互的过程中,各自会有一些数据,程序要想办法保存每个用户的数据。
例如:用户点击超链接通过一个servlet购买了一个商品,程序应该保存用户购买的商品,需要使用会话!
Cookie是客户端技术
程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。
Cookie相对于session来说不是特别安全,而且Cookie还有大小和个数的限制!
一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个WEB站点提供的Cookie。
Java 中的Cookie
//构造方法: Cookie(String name,String value); //方法: String getName(); 用于获得Cookie的名称 String getValue(); 用于获得Cookie的值 void setPath(String path); 设置cookie的有效路径 没有设置会给一默认的路径:用途-访问该路径下的资源时会带着cookie过来 String getPath(); void setMaxAge(int mAge); 用于设置cookie的有效时间 int getMaxAge(); void setDomain(String domain);用于设置cookie的有效域名:用途-访问该域名下的资源时会带着cookie过来 setDomain(".baidu.com");
String getDomain();
Cookie的分类
会话级别的Cookie:浏览器关闭cookie就销毁,此cookie存储在浏览器的内存中
持久的cookie:此cookie会写到本地的文件中,关闭浏览器不会销毁
此cookie可以在同一个浏览器的不同窗口之间共享 ,前提需要设置有效时间 setMaxAge(int age); 删除cookie setMaxAge(0);
//创建一个cookie //Cookie cookie = new Cookie(String name,String value); //存带有中文的cookie(取出的时候不要忘记解码)
//cookie不支持中文,需要编码 在页面用js取时用decodeURI(); Cookie cookie = new Cookie("remember", URLEncoder.encode( username, "utf-8")); cookie.setMaxAge(24 * 60 * 60); cookie.setPath("/"); response.addCookie(cookie); //删除某个cookie (只要覆盖一个把存活时间改成0或者-1) Cookie cookie = new Cookie("remember", URLEncoder.encode( username, "utf-8")); cookie.setMaxAge(0); cookie.setPath("/"); response.addCookie(cookie); /*注意:cookie.setMaxAge(0);参数也可以是-1,都可以删除cookie,区别.写0时立即删除,-1代表关闭浏览器之后才能删除*/