• Cookie


    初步认识

    Cookie:客户端会话技术,将数据保存到客户端,以后每次请求都携带Cookie数据进行访问

    使用步骤

    发送Cookie

    1:创建Cookie对象,设置数据

    Cookie cookie=new Cookie("key","value");

    2发送Cookie到客户端:使用Response对象

    response.addCookie(cookie)

    1. package com.chen.web;
    2. import javax.servlet.ServletException;
    3. import javax.servlet.annotation.WebServlet;
    4. import javax.servlet.http.Cookie;
    5. import javax.servlet.http.HttpServlet;
    6. import javax.servlet.http.HttpServletRequest;
    7. import javax.servlet.http.HttpServletResponse;
    8. import java.io.IOException;
    9. @WebServlet("/a1")
    10. public class Servlet1 extends HttpServlet {
    11. @Override
    12. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    13. //创建cookie对象
    14. Cookie cookie = new Cookie("username","aaa");
    15. //发送cookie 使用response对象
    16. resp.addCookie(cookie);
    17. }
    18. }

    获取Cookie

    1:获取客户端携带的所有Cookie,使用request对象

    Cookie[] cookies = req.getCookies();

    2:遍历,通过getName() ,getValue()拿数据

    1. package com.chen.web;
    2. import javax.servlet.ServletException;
    3. import javax.servlet.annotation.WebServlet;
    4. import javax.servlet.http.Cookie;
    5. import javax.servlet.http.HttpServlet;
    6. import javax.servlet.http.HttpServletRequest;
    7. import javax.servlet.http.HttpServletResponse;
    8. import java.io.IOException;
    9. @WebServlet("/a2")
    10. public class Servlet2 extends HttpServlet {
    11. @Override
    12. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    13. //获取客户端携带的所有Cookie:使用request对象
    14. Cookie[] cookies = req.getCookies();
    15. //遍历数组,获取Cookie
    16. //getName获取名称 getValue获取值
    17. for (Cookie cookie : cookies) {
    18. String name = cookie.getName();
    19. if("username".equals(name)){
    20. String value = cookie.getValue();
    21. System.out.println(name+":"+value);
    22. break;
    23. }
    24. }
    25. }
    26. }

    然后启动tomcat,分别先访问,a1Servlet,在访问a2Servlet,如果控制台输出了,那就说明代码正确了

     

    Cookie存活时间 

    默认情况下下,Cookie存储在浏览器内存中,当浏览器关闭,内存释放,责Cookie被销毁

    setMaxAge(int second) 设置Cookie 存活时间

    整数:将Cookie写入浏览器所在的硬盘下,持久化存储,到时见自动删除

    负数:默认值,Cookie在当前浏览器内存中,当浏览器被关闭,Cookie被销毁

    零:删除对应的Cookie

    例如设置存活一周

    cookie.setMaxAge(60*60*24*7);//设置Cookie存活一周

    Cookie存储中文

    需要进行转码:使用URL编码

    编码发送:URLEncoder.encode("",字符集)

    1. String value="牛马";
    2. value = URLEncoder.encode(value, "UTF-8");
    3. Cookie cookie = new Cookie("username",value);

    解码使用:URLDecoder.decode(" ",字符集)

     

    1. String value = cookie.getValue();
    2. value= URLDecoder.decode(value,"UTF-8");

     补充一下,在谷歌浏览器中查看cookie方法

     

     

     

     

  • 相关阅读:
    Redis性能管理及主从复制、哨兵的配置与部署
    原生小程序小话题——事件绑定
    tauri vs electron
    STM32:GPIO控制LED流水灯(主函数代码部分+代码解释)
    C++——多态调用和普通调用的本质区别
    第八章 集成学习
    Levels - UE5中的暴雨效果
    学习Python中turtle模块的基本用法(2:基本绘图函数测试)
    网络安全常用术语
    Vue基础语法的进阶,事件处理器,自定义组件及组件通信
  • 原文地址:https://blog.csdn.net/m0_64365315/article/details/126813304