Cookie 对象

来源:互联网 发布:英文读音翻译软件 编辑:程序博客网 时间:2024/05/29 03:16

Cookie对象

1) http协议是一个无连接性的协议(即从服务器上拿到内容后,连接中断)

2)服务器端写入客户端的内容称之为cookie,以明值的方式保存

3)用cookie记录前后之间的状态

      1.服务器向客户端写内容只能是文本文档(同样可以阻止写内容)

      2.只服务器只能从客户端只能拿取自己的内容

      3.  服务器可以根据Cookie来跟踪用户,这对于需要区别用户场合特别有用。

服务器通过操作cookie类对象对客户端cookie进行操作

通过request.getCookie()获取客户端提交的cookie(以Cookie[]形式返回)

通过response.addCookieCookie)向客户端设置Cookie

示例代码

            String username = "";//设置用户名
            int visitTimes = 0;//设置访问次数
            Cookie[] cookies = request.getCookies();//获得所有的cookie并放到一个cookie数组中
            for (int i = 0; cookies != null && i < cookies.length; i++) {//遍历cookie寻找账号和密码
                Cookie cookie = cookies[i];//第I个kookie
                if ("username".equals(cookie.getName())) {//如果cookie名为username
                    username = cookie.getValue();//记录cookie
                } else if ("visitTimes".equals(cookie.getName())) {//如果cookie名为visitTimes则记录cookie的内容
                    visitTimes = Integer.parseInt(cookie.getValue());
                }

                if (username == null || username.trim().equals("")) {//如果没有找到用户名和密码则转到登录页面
                    throw new Exception("你还没有登录请重新登录");
                }
                //修改cookie更新用户的访问次数
                Cookie visitTimesCookie = new Cookie("visitTimes", Integer.toString(++visitTimes));
                response.addCookie(visitTimesCookie);//覆盖名为visitTimes的cookie
            }

//客户端cookie的操作

Cookie usernameCookies = new Cookie("username",request.getParameter("username"));//新建username的cookie
      Cookie visitTimesCookie = new Cookie("visitTimes","0");//新建访问次数的cookie
      //添加到response中,response会将cookie发送给客户端
      response.addCookie(usernameCookies);
      response.addCookie(visitTimesCookie);

     response.sendRedirect(request.getContextPath()+"/cookie.jsp");
     //显示cookie页面