Cookie随笔

解决了服务器不能识别不同浏览器的问题,相当于给每个浏览器加了个“身份证”。

Cookie首先由服务器创建发给浏览器,随后浏览器每次访问服务器时都带上这个Cookie。

Cookie缺点:

  ·Cookie最为请求或响应报文发送,无形中增加了网络流量。

   Cookie是明文传送的安全性差。

   各个浏览器对Cookie有限制,使用上有局限。

Cookie创建:

  ·在Servlet的doPost()方法中编写如下代码:

//创建一个Cookie对象

Cookie cookie = new Cookie("username", "zhangsan");

//将Cookie对象放入response对象中

response.addCookie(cookie);

   在浏览器中访问该Servlet,会发现响应头中出现如下内容:

   Set-Cookie: username=zhangsan

   如此就成功的向浏览器设置了一个Cookie,当我们在刷新页面时会发现浏览器的请求头中出现如下代码:

  Cookie: username=zhangsan

  

  · 同样我们还可以同时设置多个Cookie:

//创建一个Cookie对象
Cookie cookie1 = new Cookie("username", "zhangsan");
Cookie cookie2 = new Cookie("password", "123456");
Cookie cookie3 = new Cookie("age", "20");
//将Cookie对象放入response对象中
response.addCookie(cookie1);
response.addCookie(cookie2);
response.addCookie(cookie3);

  浏览器会以一下形式发送Cookie:

  Cookie: username=zhangsan; password=123456; age=20

  

  ·总之,设置Cookie就是两个步骤:

    1. 创建Cookie对象。
    2. 将Cookie对象加入到response中。

读取Cookie

  ·读取Cookie主要指从读取浏览器中携带的Cookie

   只需要通过一个方法就可以得到浏览器中的Cookie,在Servlet或JSP中通过request对象调用getCookies()方法可以获得浏览器传送过来的所有Cookie对象,返回的是一个Cookie数组,通过遍历Cookie数组可以获得所有的Cookie信息。

  例:

//通过request的getCookies()方法获的Cookie数组
Cookie[] cookies = request.getCookies();
//判断数组是否为空
if(cookies != null){
//如果不为空遍历数组
for(Cookie cookie : cookies){
//获取cookie的名字
String name = cookie.getName();
//获取cookie的键
        String value = cookie.getValue();
        System.out.println(name+"---"+value);
    }
}

Cookie有效时间

  ·Cookie是存储在浏览器中的,浏览器不可能永远保存一个Cookie,一来是占用硬盘空间,再来一个Cookie可能只在某一时刻有用没必要长久保存。

   通过Cookie对象的setMaxAge()可以设置Cookie的有效时间:

     设置为0,setMaxAge(0)       : Cookie立即失效,下次浏览器发送请求将不会在携带该Cookie

       设置大于0,setMaxAge(60)  :表示有效的秒数60就代表60秒即1分钟,也就是Cookie在1分钟后失效。

    设置小于0,setMaxAge(-1)   :设置为负数表示当前会话有效。也就是关闭浏览器后Cookie失效

    不设置   : 如果不设置失效时间,则默认当前会话有效。

Cookie的路径

  ·因为不同网站的Cookie也不同,所以需要设置每个Cookie的路径。

     设置为 /项目名/路径 cookie.setPath(“/项目名/路径”)

       这样设置只有访问“/项目名/路径”下的的资源才会携带Cookie     如:/项目名/路径/1.jsp 、/项目名/路径/hello/2.jsp 等

        如果不设置,默认会在访问“/项目名”下的资源时携带

      如:“/项目名/index.jsp” 、 “/项目名/hello/index.jsp”

时间: 2024-12-18 11:13:59

Cookie随笔的相关文章

Cookie技术随笔

Cookie是什么呢,它像一张表,保存用户信息到客户端,有名字和值两部分组成,一般保存在C://Documents and Settings目录下 如何创建一个Cookie呢?Cookie c = new Cookie(String name,String value); 如何将Cookie添加到客户端呢?  response.addCookie(c); 服务器如何读取Cookie呢?  request.getCookies(); Cookie存在时间用setMaxAge()方法设置,如果没有设

cookie 前端储存技术(新学随笔)

必须要有服务器,然后在本地打开设置cookie 1.设置不带过期时间的cookie: 例:document.cookie="name=haha"; 注:name : 名 haha : 值 2.设置带过期时间的cookie: 例:var date=new Date(); var d=new Date(date.setTime(date.getTime()+5000)); document.cookie='name=lgz;expires='+d.toGMTString(); 注:第一排:

随笔-js写的cookie,字体记忆大小

// function  sizeInit(){       var fsize=getCookie("fsize");        if(fsize>15){            changeColor(0);        }else{            changeColor(1);        }        var objs=document.getElementsByName("content_show");        for(i=

JavaWeb学习随笔

Servlet学习随笔 1.HttpServlet init(ServletConfig)------Servlet生命周期中的初始方法,默认情况是服务器创建后第一次访问这个Servlet时调用,可以修改配置信息,使其在服务器一创建时就被调用; 修改配置信息的方法-----在web.xml的<servlet>下添加<load-on-startup>x<load-on-startup>,x是正整数,越小表示优先级越高 url路径的配置,完全匹配>目录匹配>(.

把cookie以json形式返回,用js来set cookie.(解决手机浏览器未知情况下获取不到cookie)

1.继上一篇随笔,链接点我,解决手机端cookie的问题. 2.上次用cookie+redis实现了session,并且手机浏览器可能回传cookies有问题,所以最后用js取出cookie跟在请求的url后面. 3.但是今天发现了新的问题,js取cookie存的sessionId为空,情况如下: (1)QQ浏览器能获取某些cookie,另一些cookie获取为空,猜测是后台Response SetCookie的时候,手机端浏览器没能良好的接受. (2)UC浏览器测试正常. (3)Safari情

.net模拟登录博客园,使用httpWebRequest登录并发布随笔文章

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; using System.Runtime.InteropServices; using System.Diagnostics; namespace TestHttpWebRequest { class Program { [DllImport("winine

cookie 二:

本篇随笔从cookie的入门开始,介绍了cookie的设置获取和移除,还有一些小的应用案例: 一.设置cookie <script> //设置cookie:function setCookie(name,value,iDay){if(iDay){var oDate=new Date();oDate.setDate(oDate.getDate()+3);document.cookie=name+'='+value+';path=/;expires='+oDate;}else{document.c

Mootools 学习随笔

简单的介绍下Mootools: MooTools是一个简洁,模块化,面向对象的开源JavaScript web应用框架.在处理js.css.html时候,为web开发者提供了一个跨浏览器的js解决方案. 优点: 1.灵活,模块化的框架,用户可以选择自己需要的组件. 2.MooTools符合OO的思想,使代码更强壮,有力,有效. 3.高效的组件机制,可以和flash进行完美的交互. 4.对于DOM的扩展增强,使开发者更好的利用document. 组件: 1.Core:常用函数集合,核心组件. 2.

Python - Cookie绕过验证码登录

前言 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接). 获取不到也没关系,可以通过添加cookie的方式绕过验证码. 一.抓登录cookie 1.登录后会生成一个已登录状态的cookie,那么只需要直接把这个值添加到cookies里面就可以了. 2.可以先手动登录一次,然后抓取这个cookie,这里就需要用抓包工具fiddler了 3.先打开博客园登录界面,手动输入账号和密码(勾选下次自动登录) 4.打开fiddler抓包工具,刷