zoukankan      html  css  js  c++  java
  • Cookie 总结

    设置Cookie 

    //设置cookie 
    Cookie cookie = new Cookie("TOM","111"); 
    //设置有效期,默认秒为单位 
    cookie. setMaxAge(7*24*60*60);  //7天
    //添加cookie到客户端 
    response.addCookie(cookie); 

    获取Cookie

    <% 
    //获取cookie 
    Cookie[] cookies = request.getCookies(); 
    if(cookies!=null && cookies.length>0) { 
    for(int i=0; i<cookies.length;i++) { 
    out.print(cookies[i].getName() +"————"+ cookies[i].getValue() + "<br/>"); 
    } 
    } 
    %> 

    Cookie的中文支持 

    Cookie不支持中文的显示,必要的时候,需要进行转码和解码。 

    转码 

    strings[j]=java.net.URLEncoder.encode(list.get(i-1)[j],"UTF-8");
    
    URLEncoder.encode("张三") ; 

    解码 

    out.print(java.net.URLDecoder.decode(cookies[i].getValue(),"UTF-8") + "<br/>"); 
    
    Cookie[] cks = request.getCookies() ;
    
    for(Cookie c : cks)
    {
        out.write(c.getName() +"="+URLDecoder.decode(c.getValue())+"<br>") ;
    }

    ============================================================================================

    1)向客户端浏览器写入Cookie
     
    //1.创建一个Cookie对象
    Cookie cookie = new Cookie(name,“”shindo“”);
     
     
    //2.setMaxAge:设置Cookie的最大时效,以秒为单位,若为0,表示立即删除该Cookie,
    //若为负数,表示不存储该Cookie,若为正数,表示该Cookie的存储时间。
    cookie.setMaxAge(30);
     
    //3.设置Cookie的作用范围:可以作用当前目录和当前目录的子目录,但不能作用于当前目录的上一级目录。
    cookie.setPath(request.getContextPath());
     
    //4.调用response的一个方法把Cookie传给客户端
    response.addCookie(cookie);
     
    2)从浏览器读取Cookie
     
    //1.获取Cookie
    Cookie[] cookies = request.getCookies();
    if(cookies != null && cookies.lenth > 0){
       for(){
          //2.获取Cookiede name 和value
          out.print(cookie.getName() + ":" + cookie.getValue());
          out.print("<br>");
       }   
    }

    =====================================================================================

    // new一个Cookie对象,键值对为参数  
    Cookie cookie = new Cookie("key", "value");  
    // 设置Cookie最大生存时间,以秒为单位,负数的话为浏览器进程,关闭浏览器Cookie消失  
    cookie.setMaxAge(60);  // 一分钟  
    // 将Cookie添加到Response中,使之生效  
    response.addCookie(cookie);  
     读取Cookie,读取Cookie只能从request中获取全部Cookie,然后迭代之.虽然Cookie也是键值对,但是貌似不能像Map一样通过Key来获取值.
    Java代码  收藏代码
    // 从request中获取Cookie,拿到的是一个Cookie数组  
    Cookie[] cookies = request.getCookies();  
    // 然后迭代之  
    if (cookies != null && cookies.length > 0) { //如果没有设置过Cookie会返回null  
        for (Cookie cookie : cookies) {...}  
    }  
     删除Cookie,删除Cookie的话,只需要将Cookie的生存期设为0即可
    Java代码  收藏代码
    Cookie[] cookies = request.getCookies();  
    if (cookies != null && cookies.length > 0) {  
        for (Cookie cookie : cookies) {  
            String name = cookie.getName();  
            // 找到需要删除的Cookie  
            if (name.compareTo("key") == 0) {  
                // 设置生存期为0  
                cookie.setMaxAge(0);  
                // 设回Response中生效  
                response.addCookie(cookie);  
            }  
        }  
    }  
     修改Cookie,修改Cookie和删除的步骤是一样的,先找到需要删除的Cookie,然后设置它的新的Value,再设回Response
    Java代码  收藏代码
    Cookie[] cookies = request.getCookies();  
    if (cookies != null && cookies.length > ) {  
        for (Cookie cookie : cookies) {  
            if (cookie.getName.compareTo("key") == 0) {  
                cookie.setValue("newValue");  
                response.addCookie(cookie);  
                break;  
            }  
        }  
    }  
  • 相关阅读:
    C# Winform 国际化
    Could not find method google() for arguments [] on repository container,rn 集成react-native-camera 出现此错误的解决方法
    RN集成echarts4图表组件react-native-secharts(转载)
    DataGridView设置行高
    react native原生模块引用本地jar包
    react-native-printer
    phpstudy连接SQL Server 2008数据库 以及 php使用sql server出现乱码解决方式
    Apache崩掉:为进程配置合适的线程数
    引用静态资源时加上时间戳,处理浏览器缓存问题
    利用存储过程优化复杂的数据库操作
  • 原文地址:https://www.cnblogs.com/20gg-com/p/6012029.html
Copyright © 2011-2022 走看看