Cookie的用法

该代码示例展示了如何使用JavaServlet处理HTTPCookie来记录用户访问网站的时间。当用户首次访问时,服务器会创建一个名为lastLoginTime的Cookie并设置其生命周期。之后,每次用户返回时,服务器检查是否存在这个Cookie,从而显示上次访问的时间。若Cookie不存在,则表明是第一次访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问:如何证明你来过一个网站?

答:在访问服务器的时候会给客户端发送一个信件,当客户端带着上次的信件再次访问服务器,就证明客户端来过。 cookie

如下列代码:

        此代码会记录下你每次的访问的时间,在下次访问的时候会显示上次访问的时间

package com.zzw.servlet;

import javax.servlet.ServletException;
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.util.Date;
import java.util.stream.StreamSupport;

public class cookie extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("GBk");
        resp.setCharacterEncoding("GBK");

        Cookie[] cookies = req.getCookies();
        if(cookies!=null){
            resp.getWriter().write("您上次来的时间是");
            for(int i = 0;i< cookies.length;i++){
                if(cookies[i].getName().equals("lastLoginTime")){
                    long l = Long.parseLong(cookies[i].getValue());
                    Date LastTime= new Date(l);
                    resp.getWriter().write(LastTime.toLocaleString());
                }
            }
        }else {
            resp.getWriter().write("您第一次访问");
        }
        Cookie lastLoginTime = new Cookie("lastLoginTime", System.currentTimeMillis() +"");
        lastLoginTime.setMaxAge(60*24*60);
        resp.addCookie(lastLoginTime);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

  

代码思路:

①:从请求中获取cookie

        请求中的cookie可能会有很多,因此要数组的形式保存

Cookie[] cookies = req.getCookies();

②:服务器反应给客户端的cookie

Cookie.getname();//得到Cookie的key
Cookie.getvalue();//得到Cookie的value
Cookie.setMaxAge();//设置Cookie的生命周期
resp.addCookie();//响应给服务端一个Cookie
new Cookie();//新建一个Cookie

Cookie的上限:

        ①每个域名的Cookie数量上限为20个

        ②每个Cookie的大小限制在4KB

注:如果未设置setMaxAge,每次关掉浏览器,会自动地清除所有的Cookie

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值