JAVA Servlet-Cookie对象 笔记

介绍

Cookie是服务器发送给浏览器的体积很小的纯文本信息,用户以后访问同一个Web服务器时浏览器会把它们原样发送给服务器。cookie一般用于在线交易过程中标识用户身份、安全要求不高的场合避免用户重复输入名字和密码、门户网站的主页定制、有针对性地投放广告等等。 Servlet中可以同时创建多个cookie,但是每个站点最多只能保存20个cookie

Cookie,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。(可以叫做浏览器缓存)

使用方法

创建和发送

@WebServlet("/sc04")
public class Cookie01 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Cookie cookie=new Cookie("name","无锡");
        resp.addCookie(cookie);
    }
}

获取

@WebServlet("/sc04")
public class Cookie02 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       Cookie []cookie=req.getCookies();
       if (cookie.length<=0||cookie==null)return;
       for (Cookie cookie1:cookie){
           String cname=cookie1.getName();
           String cvalue=cookie1.getValue();
       }
    }
}

设置Cookie存储时间

使用

@WebServlet("/sc04")
public class Cookie03 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       Cookie cookie=new Cookie("name","张三");
       cookie.setMaxAge(0);
       resp.addCookie(cookie);
    }
}
n值cookie.setMaxAge(n);
0删除该cookie
-1为负整数时,表示只在浏览器中存储,浏览器关闭则销毁该cookie,默认为-1
30为正整数时,表示指定该cookie存活时间,单位为秒,cookie是存储在本地磁盘的,关闭浏览器也不会销毁该cookie

注意点

1.cookie保存在当前浏览器中,不能跨浏览器
2.cookie存在中文问题,键值不能为中文,如果一定要为中文.不建议使用中文

//发送
String name="姓名"
String password=123456
name=URLEncoder.encode(name)
value=URLEncoder.encode(password)
Cookie cookie=new Cookie(name,value)
response.addCookie(cookie);

//获取
URLDecoder.decode(cookie.getName)
URLDecoder.decode(cookie.getValue)

3.同名
后面的cookie会覆盖前面的cookie

4.存放数量是有上限的,不同浏览器的上限不同

5.cookie大小有限制,一般不超过4kb

Cookie的路径

情景一:当前服务器下任何项目的任意资源都可以获取Cookie对象

//当前路径 为/s01
Cookie cookie=new Cookie("xxx","xxx")
cookie.setPath("/")
response.addCookie(cookie)

情景二:当前项目下资源可以获取Cookie对象

//当前路径 为/s02
Cookie cookie=new Cookie("xxx","xxx")
cookie.setPath("/s02")//可以不设置,默认就是当前路径
response.addCookie(cookie)

情景三:指定项目可以获取Cookie对象

//当前路径 为/s02
Cookie cookie=new Cookie("xxx","xxx")
cookie.setPath("/s03“)
response.addCookie(cookie)

情景四:指定项目下的资源可以获取Cookie对象

//当前路径 为/s02
Cookie cookie=new Cookie("xxx","xxx")
cookie.setPath("/s03/cook")//表示只有路径为/s03/cook才能拿到当前Cookie对象
response.addCookie(cookie)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值