欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java HttpServlet 之 会话Cookie和Session

程序员文章站 2022-03-11 16:35:31
...

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