java cookie学习

打开一个游览器访问某个站点,然后关闭游览器这就叫一次会话。

会话技术有2种,cookie和session

cookie:是把数据储存到客户端,安全性能不好(如果在网吧登录网页保留了cookie,下个使用者可能会盗取你的cookie),可以手动清除数据

session:数据存储到服务器中,对硬件要求较高,安全性能好

 cookie的创建

1 //1.创建Cookie对象
2         //Cookie cookie = new Cookie("goods","huashengmi");
3         //设置cokie持久化时间
4         //cookie.setMaxAge(2*60);
5         //设置cookie的携带路径
6         //cookie.setPath("Web0707/com.oracle.demo01/SendCookieServlet");
7     //    cookie.setPath("/Web0707"); //访问web0707下的任何资源都携带
8         //发送cookie
9         //response.addCookie(cookie);

如果设置了cookie的持久化时间,想更改,可以创建一个同名的cookie,相同路径,然后设置0秒覆盖即可

1     //删除设置的cookie持久化时间
2         Cookie cookie = new Cookie("goods","huashengmi");
3         cookie.setPath("/Web0707");
4         //设置时间为0
5         cookie.setMaxAge(0);
6         response.addCookie(cookie);

接收客户端发送来的cookie

 1 //接收客户端发送的cookie
 2         //用cookie数组接收键值对
 3         Cookie[] cookies = request.getCookies();
 4         //先判断下这个cookie数组是不是空的,如果是空的直接没有,增加健壮性
 5         if(cookies!=null){
 6             for(Cookie c:cookies){
 7                 //获取键
 8                 String name = c.getName();
 9                 //如果cookie的键是我要获取的键,就获取值
10                 if(name.equals(name)){
11                     String value = c.getValue();
12                     response.getWriter().write(value);
13                 }
14             }
15 
16         }

 获取登录时间

 1 //获取时间,转换格式
 2     response.setContentType("text/html;charset=utf-8");
 3     Date date = new Date();
 4     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
 5     String sj = sdf.format(date);
 6     //发送cookie
 7     Cookie cookie = new Cookie("time",sj);
 8     cookie.setMaxAge(60);
 9     response.addCookie(cookie);
10     //再获取客户端发的cookie,返回时间
11     String xianzai=null;
12     Cookie[] cookies = request.getCookies();
13     if(cookies!=null){
14     for(Cookie c:cookies){
15         String name = c.getName();
16         if(name.equals("time")){
17             xianzai = c.getValue();
18             response.getWriter().write("上次登录时间:"+xianzai);
19         }
20     }
21     }
22     //如果没有cookie,时间是空的,就可以判断是第一次登录
23     if(xianzai==null){
24         response.getWriter().write("第一次访问");
25     }        
26 }

原文地址:https://www.cnblogs.com/wangrongchen/p/9276956.html