COOKIE
Cookie,Session
1.1 会话
会话:用户打开一个浏览器,点击了很多的超链接,访问多个web资源,关闭浏览器,这个给过程称之为会话。有状态会话:一个网站你怎么证明你来过?
客户端 服务端
1,服务端给客户端一个新建,客户端下次访问服务端带上信件就信了;cookie
2,服务器登记你来过了,下次你来的时候我来匹配你;session
1.2 保存会话的两种技术
cookie
*客户端技术(响应,请求)
session
*服务器技术,利用这个技术,可以保存用户的会话信息,我们可以把信息和数据放在session中!
1.3 Cookie
1,从请求中拿到cookie信息
2,服务器响应给客户端cookie
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//服务器,告诉你,你来的时间,把这个时间封装成一个信件,你下次来,我就知道你来了。
req.setCharacterEncoding("gbk");
resp.setCharacterEncoding("gbk");
PrintWriter out = resp.getWriter();
//cookie 服务器端从客户端获取
Cookie[] cookies = req.getCookies();//这里返回数组,说明cookie可能存在多个===获得cookie
//判断cookie是否存在
if(cookies!=null){
//如果存在怎么办
out.write("你上一次访问的时间是:");
for (int i = 0;i < cookies.length;i++){
Cookie cookie = cookies[i];
//获取cookie的名字
if (cookie.getName().equals("lastlogintime")){
//cookie.getName()获取cookie中的key值
long lastlogintime = Long.parseLong(cookie.getValue());//字符串变换成一个时间戳
//cookie.getValue()获取cookie中的值
Date date = new Date(lastlogintime);
out.write(date.toLocaleString());
}
}
}else{
out.write("这是你第一次访问本站");
}
//服务器给客户端响应一个cookie
Cookie cookie = new Cookie("lastlogintime", System.currentTimeMillis()+"");//新建一个cookie
cookie.setMaxAge(24*60*60);//cookie有效期为一天
resp.addCookie(cookie);//响应给客户端
}
*一个cookie只能保存一个信息
*一个web站点可以给浏览器发送多个cookie,最多存放20个cookie
*cookie大小有限制4kb
*300个cookie浏览器上限
删除cookie
*不设置有效期,关闭浏览器,自动失效
*设置有效期时间为0
out.write(URLDecoder.decode(cookie.getValue));//解码
Cookie cookie = new Cookie("name",URLEncoder.encode("afan""utf-8"))//编码

浙公网安备 33010602011771号