• JavaWeb Cookie


    public class CookieDemo extends HttpServlet {
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //1.创建cookie对象
            Cookie c = new Cookie("msg","hello");
            //2.发送cookie
            resp.addCookie(c);
        }
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
           this.doPost(req, resp);
        }
    }
    
    public class CookieDemo2 extends HttpServlet {
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //3.获取Cookie对象
            Cookie[] cookies = req.getCookies();
            //获取数据,遍历Cookie
            if (cookies != null){
                for (Cookie cookie : cookies) {
                    String name = cookie.getName();
                    String value = cookie.getValue();
                    System.out.println(name+value);
                }
            }
        }
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
           this.doPost(req, resp);
        }
    }
    
    public class CookieDemo3 extends HttpServlet {
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //1.创建多cookie对象
            Cookie c1 = new Cookie("msg","hello");
            Cookie c2 = new Cookie("name","zhangsan");
            //2.发送多个cookie
            resp.addCookie(c1);
            resp.addCookie(c2);
        }
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
           this.doPost(req, resp);
        }
    }
    
    public class CookieDemo4 extends HttpServlet {
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //1.创建cookie对象
            Cookie c1 = new Cookie("msg","setMaxAge");
            //2.设置Cookie的存活时间
            c1.setMaxAge(30);//将cookie持久化到硬盘30秒,30秒后会自动删除文件
            //3.发送cookie
            resp.addCookie(c1);
        }
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
           this.doPost(req, resp);
        }
    }
    
    public class CookieDemo5 extends HttpServlet {
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //1.创建cookie对象
            Cookie c1 = new Cookie("msg","setMaxAge");
            //2.设置Cookie的存活时间
            c1.setMaxAge(30);//将cookie持久化到硬盘30秒,30秒后会自动删除文件
            //3.设置cookie的共享范围
            c1.setPath("/"); //根路径("/"),项目("/project")
            //4.不同的服务器之间共享问题
            c1.setDomain(".baidu.com"); //如果设置一级域名相同,那么多个服务器之间cookie可以共享
            //setDomain(".baidu.com"),那么tieba.baidu.com和news.baidu.com中cookie可以共享
            //3.发送cookie
            resp.addCookie(c1);
        }
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
           this.doPost(req, resp);
        }
    }
    
    
    
    /**
     * 在服务器中的Servlet判断是否有一个名为lastTime的cookie
     * 1.有:不是第一次访问
     * -响应数据:欢迎回来,您上次访问时间为:***
     * -写回Cookie: lastTime=*****
     * 2.没有,是第一次访问
     * -响应数据:您好欢迎您首次访问
     * -写回Cookie:lastTime=****
     */
    public class cookieTest extends HttpServlet {
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //设置响应的的数据格式编码
            resp.setContentType("text/html;charset=utf-8");
            //1.获取所有Cookie判断名称是否为lastTime
            Cookie[] cookies = req.getCookies();
            boolean flag = false;
            //2.遍历Cookie数组
            if (cookies != null && cookies.length > 0) {
                for (Cookie cookie : cookies) {
                    //3.获取cookie名称
                    String name = cookie.getName();
                    //4.判断名称是否是lastTime
                    if ("lastTime".equals(name)) {
                        flag = true;
                        //5.有该cookie则不是第一次访问
                        //6.设置响应数据,设置cookie 的value
                        Date date = new Date();
                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
                        String str_date = sdf.format(date);
                        //URL编码去掉空格
                        str_date = URLEncoder.encode(str_date, "utf-8");
                        cookie.setValue(str_date);
                        //设置cookie存活期为一个月
                        cookie.setMaxAge(60 * 60 * 24 * 30);
                        //获取当前时间字符串后,重新发送cookie
                        String value = cookie.getValue();
                        //URL解码
                        value = URLDecoder.decode(value,"utf-8");
                        resp.getWriter().write("<h1>欢迎回来,您上次访问的时间为:" + value + "</h1>");
                        resp.addCookie(cookie);
                    }
                }
            }
            if (cookies == null || cookies.length == 0 || !flag) {
                //如果没有cookie那么这是第一次访问
                //1.响应数据,设置cookie的value
                Date date = new Date();
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
                String str_date = sdf.format(date);
                //URL编码去掉空格
                str_date = URLEncoder.encode(str_date, "utf-8");
                //新建Cookie将k,v传入
                Cookie cookie = new Cookie("lastTime", str_date);
                //设置cookie存活时间为一个月
                cookie.setMaxAge(60 * 60 * 24 * 30);
                //获取字符串,重新发送cookie
                resp.addCookie(cookie);
                //获取当前时间字符串后,重新发送cookie
                String value = cookie.getValue();
                //URL解码
                value = URLDecoder.decode(value,"utf-8");
                resp.getWriter().write("<h1>您好,欢迎您首次访问</h1>");
            }
        }
    }
    

      

  • 相关阅读:
    javascript:history.go()和History.back()的区别
    Web 开发] 定制IE下载对话框的按钮(打开/保存)(转)
    JavaScript 浮动定位提示效果(转)
    关于网页*静态化*及SEO问题的一些补充(转)
    httpanalyzer 结合 HttpWebRequest Post的运用
    SEO工具大全(转)
    导出excel
    Asp.NET导出Excel文件乱码解决若干方法 (转)
    关于DataBinder.Eval Eval Bind
    电脑疑似中毒
  • 原文地址:https://www.cnblogs.com/MineLSG/p/13922267.html
Copyright © 2020-2023  润新知