zoukankan      html  css  js  c++  java
  • JavaWeb11-Cookie

    应用场景:用于自动登录, 浏览记录, 购物车等等。

    使用Cookie步骤如下:

    1. 首先添加Cookie

      resp.addCookie(new Cookie("name", "张三"));
    2. 获取Cookie

      Cookie[] cookies = req.getCookies();
    3. 获取Cookie的name以及value

      String name = cookie.getName();
      String value = cookie.getValue();

    完整代码如下:

    public class CookieServlet extends HttpServlet {
       @Override
       protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
           req.setCharacterEncoding("utf-8");
           resp.setCharacterEncoding("utf-8");
           resp.setContentType("text/html;charset=utf-8");
           PrintWriter out = resp.getWriter();
           // 添加cookie
           resp.addCookie(new Cookie("name", "张三"));
           // 获取cookie, 并将其遍历出来
           Cookie[] cookies = req.getCookies();
           if(cookies != null) {
               for (Cookie cookie : cookies) {
                   out.write(cookie.getName() + cookie.getValue() + "<br/>");
              }
          }
      }
       @Override
       protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
           doGet(req, resp);
      }
    }

    小案例:获取上一次的访问时间。

     @Override
       protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
           req.setCharacterEncoding("utf-8");
           resp.setCharacterEncoding("utf-8");
           resp.setContentType("text/html;charset=utf-8");
           PrintWriter out = resp.getWriter();
           Cookie[] cookies = req.getCookies();
           if(cookies != null) { // 如果cookie不为空输出上一次访问的时间
               for (Cookie cookie : cookies){
                   if (cookie.getName().equals("currentTime")){ // 获取下面添加的Cookie:currentTime属性
                       String value = cookie.getValue();
                       long time = Long.parseLong(value);
                       Date date = new Date(time);
                       out.write("上一次访问的时间" + date.toLocaleString());
                  }
              }
          }
           Cookie cookie = new Cookie("currentTime", System.currentTimeMillis() + "");// 访问时,添加一个访问的当前时间
           cookie.setMaxAge(10); // 还有一个设置最大有效时间
           resp.addCookie(cookie);
      }
       @Override
       protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
           doGet(req, resp);
      }
    }
  • 相关阅读:
    135 01 Android 零基础入门 02 Java面向对象 07 Java多态 03 多态的实现(难点) 02 向上转型
    leetcode-----169. 多数元素
    leetcode-----167. 两数之和 II
    leetcode-----136. 只出现一次的数字
    leetcode-----125. 验证回文串
    leetcode-----122. 买卖股票的最佳时机 II
    java实体类和json串字段名称不一致或者与map中字段名称不一致使用注解转化
    如何优雅的将Object转换成List
    java中远程调用接口springboot
    返回前端页面的属性名称和实体类的名称不一致用@JsonProperty
  • 原文地址:https://www.cnblogs.com/Patrick20726/p/13586387.html
Copyright © 2011-2022 走看看