Cookie是一个小的文本数据,由服务端产生创建,以键值对key-value的形式保存,数据信息是以明文文本的形式保存在客户端的计算机中, 小段的文本信息。该信息记录用户身份,如用户名等
浏览器第一次请求服务器时,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端会把Cookie保存起来。用户关闭浏览器时该cookie被删除。之后客户端浏览器访问服务器时会自动从计算机上的文件夹下读取所有cookie,如果有多个cookie,则是以数组的形式保存所有cookie,送到服务端后需要循环遍历来获取其中的一个cookie。最大的特点是自动随着请求带在request header的cookie字段里传给服务器端。
Cookie就是一个小的文本数据,由服务器端生成创建,cookie数据以键值对key-value保存
Cookie cookieUsername=new Cookie("username","张三"); Cookie.setMaxAge(60*60*24*7);//7天服务器端把该cookie返回到客户端浏览器,客户端把数据保存到计算机的某个文件夹下面。
response.addCookie(cookieUsername);
服务器端从客户端获取某个key为username的Cookie的方法
Cookie[] cookies=request.getCookies(); for(int i=0;i if(cookies[i].getName().equals("username")){ String username=cookies[i].getValue(); break; } }Cookie使用场景:
- 保存登录状态,可以设置Cookie的失效时间为7天,这样以后可以在以后的7天内无需重新输入用户名和密码来登录。
- 保存购物车数据,这样可以减轻数据库的压力,不用每一次用户查看购物车都是从数据库中获取。http://t.csdn.cn/yW4XP
- 保存用户的个性化设计,服务器根据Cookie的值来决定显示给客户端什么样的界面。
一、session(HttpSession)
session的原理、作用、操作方法:
session保存在服务器上,客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。每个用户访问服务器都会建立一个session,每个session有一个唯一的标识id。对于同一个用户,不管在哪一个页面和servlet中,用户使用的都是同一个session。
session的使用是离不开cookie的,当客户端是第一次访问服务器端,服务器端会生成一个sessionid,并把该sessionid保存到cookie里面返回到客户端浏览器里面保存起来,之后的客户端请求服务器端这个带有sessionid的cookie就会传到服务器来检查是否是第一个访问的条件。在第一次调用 request.getSession() 方法时,服务器会检查是否已经有对应的session,如果没有就在内存 中创建一个session并返回。
用户关闭浏览器时session并不会被马上回收,而是当过一段时间后一直没有用户访问这个session对象时才会被回收销毁,表示用户的一次会话结束。
首先获取session
HttpSession session=request.getSession();
服务器端创建一个session,以下是存放一个简单的字符串,还可以存放集合,对象等类型。
session.setAttribute("username","张三");
服务器端获取session中的数据
String username=session.getAttribute("username");
删除某一个session
session.removeAttribute("username");
session使用场景:
- 保存登录信息,如保存用户的账号,便于其他页面做操作时知道该用户的账号
- 保存购物车的数据信息。