Cookie

什么是cookie

Cookie是由服务器产生,然后通过response(Set-Cookie)对象写入浏览器,然后保存在浏览器端,在request下一次访问的时候,通过cookie的请求头,将cookie带回浏览器

cookie的相关方法

new Cookie(name,value):创建cookie对象

response.addCookie():写回浏览器

request.getCookies():获取cookie

c.setMaxAge(60*60);  设置有效时间,单位:s

c.setPath("/");  设置共享路径

注意:如果 将MaxAge 设置成(0),即表示 cookie 失效

案例:记录上一次的登录时间

@WebServlet(name = "CookieServlet",value = "/cookieServlet")
public class CookieServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        Cookie[] cookies = request.getCookies();
        Cookie times = null;
        Boolean flag = false;
        Date date = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd-hh:mm:ss");
        String format = simpleDateFormat.format(date);
        if (cookies != null){
            for (Cookie c:cookies) {
                if (c.getName().equals("times")){
                    times = c;
                    flag = true;
                    break;
                }
            }
        }

        if (!flag){
            response.getWriter().print("第一次登陆");
            times = new Cookie("times", format);
            response.addCookie(times);
            response.getWriter().print(times.getValue());
        }else {
            response.getWriter().print(times.getValue());
            times = new Cookie("times", format);
            response.addCookie(times);
        }

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

cookie能不能存储中文?

tomcat8以前 不可以存储中文和特殊字符

tomcat8及以后:可以存储中文 但是不能存储特殊字符 (空格)

cookie的特点和作用

1、cookie存储数据在客户端浏览器

2、cookie存储的数据由大小限制:4kb 同一个域名下的的总的cookie数量(20个)

转载于:https://www.cnblogs.com/wzhsc/p/10403190.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值