JavaWeb开发之Cookie会话技术
Cookie会话技术是将数据存储在客户端浏览器的会话技术,远程web服务器通过Cookie对象向客户端浏览器写入数据,存储到客户端浏览器上;Cookie会话技术的常见作用是用于存储少量不敏感的数据和在用户不登录的情况下,完成对客户端浏览器的身份识别;
Cookie常见操作:
一、远程Web服务器向客户端浏览器写Cookie步骤:
1、创建Cookie对象:Cookie cookie = new Cookie(String cookieName,String cookieValue);
2、远程服务器向客户端浏览器发送Cookie:response.addCookie(Cookie名称);
注意点:
1、tomcat 8之前cookie不能存中文,tomcat 8之后可以存中文,但特殊字符还是不支持
2、浏览器第一次访问远程服务器时,请求头当中没有cookie,响应头当中会看到set-cookie,当再一次访问时请求头当中就能够看到cookie信息
3、Cookie设置后,后续访问Web服务器的任何资源,一般情况下都会把cookie信息携带过去
二、Cookie存储时间设置:
1、打开客户端浏览器访问远程服务器,直到关闭客户端浏览器为一次会话;默认情况下Cookie存储在客户端浏览器的内存中,Cookie的默认存储时间是客户端浏览器关闭,结束会话,Cookie信息销毁
2、设置Cookie在客户端浏览器的存储时间:cookie.setMaxAge(int seconds);
注意点:
1、其中int seconds是cookie的设置时间,设置的时间为秒
2、int seconds取值分三种,正数代表指定存储时间为多少秒,时间到了自动失效;负数代表的是一次会话,会话结束,cookie信息销毁;0代表删除已经设置过的cookie信息;
3、如果设置了cookie存储时间,Cookie信息会被存储到客户端浏览器对应的电脑磁盘文件上,过期会自动删除
三、Cookie的携带路径设置:
1、访问某一个web资源时要不要带cookie信息可以进行设置,如果每个web资源都携带cookie信息,会影响传输速度
2、如果不设置Cookie的携带路径,默认情况下创建cookie的web资源相同的路径下都携带cookie信息,例如http://localhost:8080/cookiePro/cookie/CookieServlet;其中cookie信息在CookieServlet中创建,那么默认情况下只要在http://localhost:8080/cookiePro/cookie/这个路径下都会携带cookie信息;
3、设置携带路径:cookie.setPath(String path);
示例:假如访问路径为http://localhost:8080/cookiePro/cookie/CookieServlet;其中cookie信息在CookieServlet中创建;
第一种路径设置:cookie.setPath(“/CookiePro/cookieServlet”);只有访问cookieServlet才携带cookie信息
第二种路径设置:cookie.setPath(“/CookiePro”);访问指定的CookiePro工程时都会携带cookie信息
第三种路径设置:cookie.setPath(“/”);访问web服务器下部署的所有工程时都会携带cookie信息
四、删除Cookie信息:
1、删除客户端浏览器已经存储的cookie信息,使用同名同路径的持久化时间为0的cookie进行覆盖即可,cookie.setMaxAge(0);
五、远程服务器从客户端浏览器获取cookie的方式:
1、通过Request对象的getCookies()方法,获取的是所有的cookie,要进行遍历找出自己需要的

Cookie的特点:
1、Cookie存储数据在客户端浏览器
2、客户端浏览器对于单个Cookie大小限制在4KB,同一域名下总cookie数量限制20个左右
Cookie小案例:记录用户上一次的登录时间


浙公网安备 33010602011771号