`

在读取Cookie,然后操作时,除了getName(),getValue()外,其它值都是Null

阅读更多
在读取Cookie,然后操作时,除了getName(),getValue()外,不要妄图得到其他信息,如下方法不会得到值的:

cookie.getMaxAge();

cookie.getDomain();
。。。

因为,客户端传来的时候,就只剩下key和value了。





Java中的Cookie操作:



在Java中利用Serlvet或者JSP scriptlet可以向浏览器端写入Cookie。



同样,利用Servet或者JSP scriptlet 也可以读取到 Cookie信息。



Servlet规范中的Cookie API 如下:



setMaxAge  setPath setDomain等方法,可以对Cookie状态进行控制;



同样存在如下方法,可以获得相应的状态:



getMaxAge  getPath  getDomain等方法,可以对Cookie的状态。





然后,问题来了:





读取Cookie时,发现除了Cookie的key和value外,其他的信息都丢失了!!



原因很简单:



Cookie从服务器端发送到客户端时,信息是完整的;



Cookie从客户器端发送到服务端时,信息只剩下key、value了。



(想想也明白,Domain不对的Cookie、Path不对的Cookie、过期的Cookie,客户端是不会发送过来的。)



那为什么Java中提供了相应的get方法呢? 那个方法是在生成Cookie后,尚未发送到客户端时,使用的。是“封装”的体现
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    JSP中cookie的使用方法(用户登入,客户端读取及发送)[收集].pdf

    在循环中,可以使用 `cookie.getName()` 和 `cookie.getValue()` 方法来获取 Cookie 的名称和值。 使用 Cookie 记录访问数 在 JSP 中,使用 Cookie 记录访问数可以分为三步:用户第一次访问网页时的操作、用户非第...

    JAVA通过Session和Cookie实现网站自动登录的技术

    在用户访问网站时,需要检测 Cookie 是否存在,如果存在,则进行自动登录。 代码示例: ```java String usernameCookie = null; String passwordCookie = null; Cookie[] cookies = request.getCookies(); if ...

    cookie机制和session机制的区别.docx

    在读取 cookie 时,需要调用 HttpServletRequest 的 getCookies 方法,这个调用返回 Cookie 对象的数组,对应由 HTTP 请求中 Cookie 报头输入的值。然后,对数组进行循环,调用每个 cookie 的 getName 方法,直到...

    javascript cookie的基本操作(添加和删除)

    new Cookie(String name,String value) — Cookie在构造的时候就需要设定好cookie的名字和值 4.获取cookie的名字:cookie.getName(); 5.获取cookie的值:cookie.getValue(); 6.设置cookie的值:cookie.setValue(); ...

    JAVA中cookie用法

    名字和值是我们始终关心的两个部分,笔者会在后面详细介绍 getName/setName。 String getPath() 返回Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下 的所有页面。 boolean ...

    geotools读取shp文件及shp文件操作工具类代码.pdf

    GeoTools 读取 SHP 文件及 SHP 文件操作工具类代码解析 GeoTools 是一个开放源代码的 Java 库,用于处理地理信息系统(GIS)数据。SHp 文件是 GIS 中的一种常见文件格式,用于存储地理空间数据。本文将对 GeoTools ...

    getname_main_python2

    getname_main_python2................

    jsp九大内置对象

     举例来说,一个Web站点可能会为每一个访问者产生一个唯一的ID,然后以Cookie文件的形式保存在每个用户的机器上。  如果用户使用IE浏览器访问Web,用户就会看到所有保存在自己硬盘上的Cookie。它们最常存放的地方...

    Session.docx

    可以写任意java代码 ...Cookie[]cookies=request.getCookies(); Stringusername="";...if("remname".equals(c.getName())){ username=c.getValue(); //解码 username=URLDecoder.decode(username,"utf-8"); } } } %>

    java-servlet-api.doc

    Servlet引擎载入Servlet后,Servlet引擎必须对Servlet进行初始化,在这一过程中,你可以读取一些固定存储的数据、初始化JDBC的连接以及建立与其他资源的连接。 在初始化过程中,javax.servlet.Servlet接口的init()...

    Excel POI读取封装(文件+示范代码)

    Excel POI读取封装(文件+示范代码) package org.excel.service; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java....

    java对blob的存取.pdf

    在上面的代码中,我们使用了 JDBC 来连接 MySQL 数据库,然后使用 PreparedStatement 来执行插入操作。在插入操作中,我们使用 `setBinaryStream` 方法来将图片文件插入到数据库中的 Blob 字段中。 Blob 的存取注意...

    dom4j解析字符串

    * org.dom4j.Attribute:提供了getName和getValue等方法,可以获取属性的名称和值。 * org.dom4j.Text:提供了getText等方法,可以获取文本节点的值。 * org.dom4j.CDATA:提供了getText等方法,可以获取CDATA ...

    jsp基础精华详解

    Cookie cookie = new Cookie("name", "zhangsan"); //设置Cookie的超时时间 cookie.setMaxAge(24 * 60 * 60 *60); //把Cookie发送到客户端 response.addCookie(cookie); //得到客户端发送的Cookie Cookie [] ...

    PHP getName()函数讲解

    PHP getName() 函数 实例 返回 XML 元素及其子元素的名称: <?...$xml=<<<...xml version=1.0 standalone=yes?...echo $sxe->getName() . ; foreach ($sxe->children() as $child) { echo $child

    学生信息管理系统

    cookie setValue null ; 关键 cookie setMaxAge 0 ; response addCookie cookie ; } } } request getRequestDispatcher "login jsp" forward request response ;...

    GetName X64.zip

    这个小程序是一共用java编写的通过读取Excel中名单随机点名程序,用户可以通过替换文件夹中的Excel为自己的名单,本程序通过封装成exe可执行文件可以直接在Windows 64位 下运行不用担心java虚拟机。

    数据连接池

    否则,在指定的时间内等待其它线程释放连接. * * @param name 连接池名字 * @param time 以毫秒计的等待时间 * @return Connection 可用连接或null */ public Connection getConnection(String name, long time...

    getName.bat获取目录下的所有文件名

    bat命令,可以获取文件夹下所有文件的名字含后缀,也可以获取指定后缀的文件名,另存为LIST文本文件,非常方便好用的bat命令

    两个CADODatabse class and the CADORecordset class,这是为了在C++中更好地进行ADO数据库操作,同时带有示例程序

    两个CADODatabse class and the CADORecordset class,这是为了在C++中更好地进行ADO数据库操作 主要的类及其函数罗列如下: The CADODatabase Class CADODatabase Open Execute GetRecordsAffected ...

Global site tag (gtag.js) - Google Analytics