java HttpServlet 之 会话Cookie和Session

来源:互联网 发布:剑灵捏脸数据分享 编辑:程序博客网 时间:2024/03/29 01:09

Cookie技术:将一些参数存入客户端硬盘中(可以持久化的存入用户硬盘中)
Session技术:将一些参数存入服务器端(默认关闭浏览器就没了,但是可以进行持久化)


Cookie:

         //1.创建Cookie并添加        //创建Cookie对象         Date date=new Date();        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");        String time = format.format(date);        //因为数据里面有空格 在tomcat高版本直接就报错 进行特殊处理        time = URLEncoder.encode(time,"UTF-8");        Cookie cookie=new Cookie("lastAccessTime",time);        //设置Cookie的持久化时间(int seconds) //毫秒        cookie.setMaxAge(5*60*1000); //设置5分钟  设置0其实就是移除了Cookie        //设置Cookie携带路径        cookie.setPath("/"); //访问服务器所有资源都会携带这个 默认不设置是同级的目录        //添加进响应        resp.addCookie(cookie);        //2.获取打印所有Cookie        Cookie[] cookies = req.getCookies();        if(cookies!=null)        for (Cookie c:cookies) {            String name = c.getName();            //解析特殊处理            String value = URLDecoder.decode(c.getValue(),"UTF-8");            resp.getWriter().write(name+":"+value);            resp.getWriter().write("<br />");        }        else        {            resp.getWriter().write("没有Cookie <br />");        }


Session:

        //存入        req.getSession().setAttribute(name,val);        //取出        req.getSession().getAttribute(name);
Session持久化(关闭浏览器还存在):

        HttpSession session=req.getSession();        String id = session.getId();        Cookie cookie=new Cookie("JSESSIONID",id);        cookie.setMaxAge(60*60*1000); // 设置个一小时        resp.addCookie(cookie);


测试代码:百度云盘下载:https://pan.baidu.com/s/1eSAOiP0  密码:b5zr