cookie:

package com.hqyj.lls.Cookie;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;

@WebServlet("/cookieDemo")
public class CookieDemo extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        // 获取所有的cookie
        Cookie[] cookies = request.getCookies();
        // 通过指定cookie名称来查找cookie      Cookie c = new Cookie("last","当前的时间");
        Cookie cookie = getCookieByName(cookies, "lastTime");
        // 判断,如果cookie==null,说明是第一次访问
        if (cookie == null) {
            // 输出欢迎,记录当前的时间,回写到浏览器
            response.getWriter().write("<h3>欢迎您的到来!</h3>");
        } else {
            // 获取cookie的值,输出浏览器,记录当前的时间,回写到浏览器
            String value = cookie.getValue();
            // 输出浏览器(cookie的值中含有 “ ”,需要进行解码)
            String decode = URLDecoder.decode(value, "utf-8");
            response.getWriter().write("<h3>您上次的时间是" + decode);
        }
        // 记录当前的时间
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String sDate = sdf.format(date);
        // 回写到浏览器
        // 使用cookie回写(cookie的值中含有 “ ”,需要进行编码才能使用)
        String encode = URLEncoder.encode(sDate, "utf-8");
        Cookie c = new Cookie("lastTime",encode);
        // 设置有效时间为30秒
        c.setMaxAge(30);    // 秒
        // 回写
        response.addCookie(c);

    }

    //通过指定名称查找指定的cookie
    public static Cookie getCookieByName(Cookie[] cookies, String name) {
        // 如果数组是null
        if (cookies != null) {
            // 循环遍历,目的:和name进行匹配,如果匹配成功,返回当前的cookie
            for (Cookie cookie : cookies) {
                // 获取cookie的名称,和name进行匹配
                if (cookie.getName().equals(name)) {
                    return cookie;
                }
            }
        }
        return null;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值