1、Cookie简介:

-  Cookie是1993年由网景公司(Netscape)前雇员发明的一种进行网络会话状态跟踪的技术。

-  会话则是由一组请求和响应组成,是围绕着一件相关事情所进行的请求和响应。所以这些请求和响应之间一定是需要有数据传递的,即是需要进行会话状态跟踪的。然而HTTP协议是一种无状态协议,在不同的请求间是无法进行数据传递的。此时就需要一种可以进行请求间数据传递的会话跟踪技术,而Cookie就是一种这样的技术。

-  Cookie是由服务器生成的,保存在客户端的一种信息载体。这个载体中存放着用户访问该站点的会话状态信息。只要Cookie没有被清空,或者Cookie没有失效,那么保存在其中的会话状态就会有效。

-  用户在提交第一次请求后,由服务器生成Cookie,并将其封装到响应头中,以响应的形式发送给客户端。客户端接收到这个响应后,将Cookie保存到客户端中。当客户端再次发送同类请求后,在请求中会携带保存在客户端的Cookie数据,发送到服务端,由服务器对会话进行跟踪。

-  Cookie技术并不是JavaWeb开发专属技术,而是属于Web开发的技术,是所有Web开发语言均支持的技术。

-  Cookie是由若干键值对构成的,这里的键一般称为name,值称为value。Cookie中的键值对均为字符串。

2、火狐下查看Cookie:

-  不同的浏览器,其Cookie的保存位置以及查看方式是不同的。删除了某一浏览器下的Cookie,不会影响到其他浏览器中的Cookie。

-  在火狐浏览器下可以直接查看到Cookie的信息,其查看的位置在:选项 -> 隐私与安全中 -》移除特定网站的Cookie

3、JavaEE中的Cookie:

-  在JavaEE中的javax.servlet.http包中存在一个类Cookie,就是用于完成会话跟踪的Cookie。其只有一个带参构造器:

-  而

javax.servlet.http.HttpServletResponse接口中有一个方法,可以将Cookie添加到响应头中:

-  主要注意的是,一个response中可以添加多个Cookie的键值对。

a、默认绑定的路径:访问路径由资源路径和资源名称构成。默认情况下,Cookie与访问路径中的资源路径绑定。只要用户发出带有绑定资源路径的请求,则在请求头部,将自动会携带与之绑定的Cookie数据。

-  Cookie类中可以指定Cookie绑定路径:(需要注意的是,这里指定的路径必须要求添加项目名称)

-  如:

b、Cookie的有效期(存放到缓存或者是硬盘上的问题):使用addCookie(Cookie cookie)方法在浏览器中添加的Cookie默认是写在缓存中,可以使用setMaxAge(int expiry)方法设置Cookie的有效期。

-  传入的值为一个整型值(单位为秒)。当该值大于0,表示将Cookie存放到客户端的硬盘中;该值小于0,与不设置的效果相同,会将Cookie存放到浏览器的缓存中;该值等于0,表示Cookie一生成,马上失效:

c、服务器获取和解析Cookie:

-

javax.servlet.http.HttpServletRequest接口中的getCookies()方法:返回客户端发送请求所包含的所有Cookie对象,以数组的形式返回。

-  javax.servlet.http.Cookie类中的getName()方法和getValue()方法,用于获取cookie对象的名字和值:

-  示例代码如下:

4、火狐中如何禁用Cookie:选项 -> 隐私与安全 -> 历史记录 -> 使用自定义设置 -> 不勾选“接受来自网站的Cookie”

转载于:https://blog.51cto.com/12402717/1976266

Servlet编程专题6之Cookie相关推荐

  1. Servlet编程API

    一.基本的servlet APIJavaEE关于Servlet的API主要有两个包:javax.servlet和javax.servlet.http.前者主要提供了Web容器能够使用的servlet基 ...

  2. 并发编程专题——第一章(深入理解java内存模型)

    说到并发编程,其实有时候觉得,开发中真遇到这些所谓的并发编程,场景多吗,这应该是很多互联网的在职人员,一直在考虑的事情,也一直很想问,但是又不敢问,想学习的同时,网上这些讲的又是乱七八糟,那么本章开始 ...

  3. 在Servlet中向客户端写Cookie信息

    应用Servlet API中提供的Cookie类,用户把表单信息提交给Servlet后,在Servlet中获取用户请求的信息并添加到Cookie对象中,再通过HttpServletResponse对象 ...

  4. Java面试系列之并发编程专题-Java线程池灵魂拷问

    金三银四跳槽季即将来临,想必有些猿友已经蠢蠢欲动在做相关的准备了!在接下来的日子里,笔者将坚持写作.分享Java工程师在面试求职期间的方方面面,包括简历制作.面试场景复现.面试题解答.谈薪技巧 以及 ...

  5. MyBatis+Servlet编程时遇到Could not initialize class xxxx问题

    MyBatis+Servlet编程时遇到Could not initialize class xxxx 问题描述 解决办法 本人目前是本科在读.去年选修学了一丢丢J2EE.寒假闲来没事学了HTML+C ...

  6. 【阿尼亚喜欢BigData】“红亚杯”Python编程专题赛——满分解析③

    大家好,喜欢Bigdata的阿尼亚来了!希望大家会喜欢阿尼亚的文章!!哇酷哇酷!!! 本次为师傅们带来的是"红亚杯"Python编程专题赛--满分解析系列的第③期,是"P ...

  7. 【阿尼亚喜欢BigData】“红亚杯”Python编程专题赛——满分解析⑤

    大家好,喜欢Bigdata的阿尼亚来了!希望大家会喜欢阿尼亚的文章!!哇酷哇酷!!! 本次为师傅们带来的是"红亚杯"Python编程专题赛--满分解析系列的第⑤期,是"P ...

  8. 【阿尼亚喜欢BigData】“红亚杯”Python编程专题赛——满分解析①

    大家好,喜欢Bigdata的阿尼亚来了!希望大家会喜欢阿尼亚的文章!!哇酷哇酷!!! 本次为师傅们带来的是"红亚杯"Python编程专题赛--满分解析系列的第①期,让我们先来看看完 ...

  9. Servlet 编程基础

    可参考博文 超文本传输协议HTTP. Servlet 概述 Servlet(Server Applet)是Java Servlet 的简称,称为小服务程序或服务连接器,用Java 编写的服务器端程序, ...

最新文章

  1. Python-Pandas 如何shuffle(打乱)数据?
  2. VS013的单元测试去哪里了
  3. 没有人会尊重弱者,把弱者当成朋友!人们永远追随强者,永远和强者结盟!
  4. 系统权限oracle,oracle系统权限
  5. pointnet分割自己的点云数据_点云学习历史文章大汇总
  6. keep健身软件电脑版_一款不错的健身软件keep会员实现教程
  7. mysql group_concat distinct,如何在MySQL中使用GROUP_CONCAT和CONCAT与DISTINCT引用单列值?...
  8. mysql blob 内容查看_这些被你忽视的MySQL细节,可能会让你丢饭碗!
  9. 玩转oracle 11g(42):增加表空间
  10. 解决表单提交的数据丢失问题
  11. (转)Web Services使用多态(XmlInclude) ,支持自定义类型
  12. linux 安装 中文输入法,[linux]安装中文输入法
  13. mysql 重置表索引_第19期:索引设计(哈希索引数据分布与使用场景)
  14. 【Scratch案例教学】scratch手把手教小朋友制作飞机大战、空中格斗、星际争霸等超酷游戏
  15. 如何计算某一天是星期几?—— 蔡勒(Zeller)公式
  16. 【Winform】关于Application.DoEvents()的理解
  17. C语言中字符串的结束标志是什么
  18. PHP 中openssl_pkey_get_private函数获取私钥返回 FALSE 的问题
  19. 微信小程序画布实现个人签名,并保存为图片
  20. 在MDK 中忽略(suppress) 某一个警告

热门文章

  1. 防止内存泄露 Linux下用Valgrind做检查
  2. 下拉式菜单在GridView编辑时联动选择
  3. 学习STP的一些总结
  4. ssh 免密登录并用脚本群起服务
  5. Linux内核网络数据包处理流程
  6. kafka reset offset 手工重置offset
  7. 【BZOJ】3052: [wc2013]糖果公园 树分块+带修改莫队算法
  8. etymology-I
  9. Meteor框架创建示例项目todos的问题
  10. bzoj4195 noi2015 day1 t1