cookie

2.5. Cookie的生存时间

★默认情况下,浏览器会将Cookie保存在内存中,只要浏览器不关闭,Cookie一直存在
★如果希望关闭浏览器之后Cookie仍存在,可以通过设置Cookie过期时间
★void c.setMaxAge(int seconds);//单位是秒
seconds>0:Cookie保存在硬盘上,如果超过这个时间,浏览器会删除这个Cookie
seconds=0:删除Cookie,在修改Cookie的生存时间为0后,随着response发送回客户端,替换原有Cookie,因生命周期到了即将该Cookie删除
seconds<0:缺省值,浏览器会将Cookie保存在内存中

2.6. Cookie编码和解码

★Cookie只能保存合法的ASCII字符,如果要保存中文,需将中文转换成合法的ASCII字符,即编码
Cookie c = new Cookie("city",URLEncoder.encode("北京","utf-8"));
★编码过后的Cookie需要经过解码才能识别
String value = c.getValue();
value = URLDecoder.decode(value,"utf-8"));


*************************************jsp*************************
<%
    String name = null;
    String pwd = null;
    Cookie[] cookies = request.getCookies();
    if(cookies != null) {
        for(Cookie cookie:cookies){
            if("name".equals(cookie.getName())){
                name = cookie.getValue();
                name = URLDecoder.decode(name,'utf-8');
            }
            if("pwd".equals(cookie.getName())){
                pwd = cookie.getValue();
            }
        }
        request.setAttribute("name", name);
        request.setAttribute("pwd", pwd);
    }
    
 %>

 
    <form action="login" method="post">
        姓名:<input type="text" name="name" value="${name}"/><br/>
        密码:<input type="password" name="pwd" value="${pwd}"/><br/>
        <label>
            <input type="checkbox" name="week" value="7"/>一周内自动登录
        </label><br/>
        <input type="submit" value="login"/>
    </form>


************************************ servlet的方法里面***********************************


        String name = req.getParameter("name");
        String pwd = req.getParameter("pwd");
        String week = req.getParameter("week");
        if(week != null){
            name = URLEncoder.encode(name,'utf-8');
            Cookie username = new Cookie("name", name);
            Cookie password = new Cookie("pwd", pwd);
            username.setMaxAge(7*24*3600);
            password.setMaxAge(7*24*3600);
            resp.addCookie(username);
            resp.addCookie(password);
            req.getRequestDispatcher("ok.jsp").forward(req, resp);
        }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

繁星***满天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值