会话技术

从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话。会话技术就是记录这次会话中客户端态的状与数据的。

会话技术分为Cookie和Session:

Cookie:数据存储在客户端本地,减少服务器端的存储的压力,安全性不好,客户端可以清除cookie

Session:将数据存储到服务器端,安全性相对好,但增加服务器的压力

Cookie

默认有效时间,一次会话中

Cookie在传输中无法传中文

创建Cookie对象:

Cookie cookie=new Cookie("名","值");

该cookie会以响应头的形式发送给客户端

设置Cookie在客户端的持久化时间: 单位:秒

cookie.setMaxAge(60*2); //时间到后自动清除

如果不设置持久化时间,cookie会存储在浏览器的内存中,浏览器关闭 cookie信息销毁(会话级别的cookie),如果设置持久化时间,cookie信息会    被持久化到浏览器的磁盘文件里

设置Cookie携带路径

cookie.setPath("/WEB07"); //只有访问

如果不设置携带路径,那么默认产生该Cookie资源下的路径都携带

发送Cookie给客户端

response.addCookie(cookie);

删除Cookie:

用同名同路径的持久化时间为0的Cookie覆盖

获取客户端携带给服务器的Cookie

Cookie[]  cookie=request.getCookies();

获取Cookie的name

getName();

获取Cookie的Value:

getValue();

Session

Session技术是将数据存储在服务器端的技术,会为每个客户端都创建一块内存空间   存储客户的数据,但客户端需要每次都携带一个标识ID去服务器中寻找属于自己的内        存空间。所以说Session的实现是基于Cookie,Session需要借助于Cookie存储客户的唯一性标识JSESSIONID

Session对象的生命周期:

创建:

第一次执行request.getSession()时创建

销毁:

服务器关闭时

服务器端的资源无任何操作30分钟

时间可以在工程的web.xml中进行配置

<session-config>

<session-timeout>30</session-timeout>

</session-config>

手动销毁session

session.invalidate();

获得Session对象

HttpSession session = request.getSession();

获取JSESSIONID

String id=session.getId();

Session也是存储数据的区域对象,所以通用三个方法:

session.setAttribute(String name,Object obj);  //存值

session.getAttribute(String name);  //取值

session.removeAttribute(String name);  //删除

获取JSESSIONID

String id=session.getId();

当创建Session时会自动创建一个Cookie, name为JSESSIONID,值为随机产生的一串数,

通过JSESSIONID找Session域内的值,当浏览器关闭再打开时,Cookie会重新创建,JSESSIONID

的值也会变化,要想关闭浏览器在打开后还能找回原有的值就需要重新创建个同名Cookie设置持久化时间替代原有的Cookie

代码如下:

//获取Session

HttpSession session=request.getSession();

//获取JSESSIONID

String id=session.getId();

//向Session域中存数据

session.setAttribute("goods", 123);

//将JSESSIONID 持久化

//手动创建Cookie

Cookie cookie=new Cookie("JSESSIONID",id);

cookie.setMaxAge(60*3);//设置持久化时间时间

response.addCookie(cookie);//发送

response.getWriter().write("JSESSIONID:"+id);

转载于:https://www.cnblogs.com/hhthtt/p/10708624.html

Cookie ,Session相关推荐

  1. 彻底理解cookie,session,localStorage(附代码)

    2019独角兽企业重金招聘Python工程师标准>>> 1. cookie 1.1 什么是cookie cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某 ...

  2. 2、cookie session token详解

    cookie session token详解 转自:http://www.cnblogs.com/moyand/ 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, ...

  3. 基于requests模块的cookie,session和线程池爬取

    基于requests模块的cookie,session和线程池爬取 有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三"人人网"个人主页数据)时,如果使用之前req ...

  4. .net session 有效时间_Python中requests模拟登录的三种方式(携带cookie/session进行请求网站)...

    这篇文章主要介绍了python中requests模拟登录的三种方式(携带cookie/session进行请求网站),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋 ...

  5. C# 系统应用之Cookie\Session基础知识及php读取Cookie\Session

    本文主要是毕业设计"个人电脑使用记录清除软件"系列系统应用文章中关于Cookie方面的知识,主要从介绍Cookie的基础知识和PHP关于Cookie\Session两个会话管理机制 ...

  6. 会话Cookie及session的关系(Cookie Session)

    会话Cookie及session的关系(Cookie & Session) 在通常的使用中,我们只知道session信息是存放在服务器端,而cookie是存放在客户端.但服务器如何使用sess ...

  7. node --- [express] cookie/session 机制与 中间件的使用(路由守卫)

    说明 源代码 记忆.遗忘回顾 使用 cookie/session 机制,让 客户端/服务器 的访问变得有状态 cookie 与 session 由于 HTTP 协议的无状态性,当一次连接断开后. 服务 ...

  8. php cookie 字串,php入门(字符串,cookie,session)

    php入门(字符串,cookie,session),有需要的朋友可以参考下. 字符串 获取字符串的长度: strlen()函数 获取中文字长echo mb_strlen($str,"UTF8 ...

  9. cookie session token 之间的区别

    cookie 和session的区别 1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 ...

最新文章

  1. Linux入门(四)
  2. AI志愿超强攻略|中国高校AI专业最全院校排名课程对比(附链接)
  3. 再次修订后的版本。。。。。。1.0(发布版,射线求交三角形)
  4. 数据库分库分表(持续更新中)
  5. 【开机自启】属于你的个性化!八步完成喜欢的软件开机自启!
  6. 基于nodejs实现每天固定时间发送邮件服务
  7. 说一下 JVM 的主要组成部分?及其作用?
  8. 新知客:现代“买椟还珠”故事
  9. 2019黑马python面试资料_2019最新Python黑马头条推荐系统项目
  10. autoconf常用宏
  11. python重复命令_Python简化重复命令教案
  12. vue项目,cli-3.0项目部署运行报错:Uncaught SyntaxError: Unexpected token
  13. 201521123060 《Java程序设计》第11周学习总结
  14. 阿里巴巴获评《福布斯》全球最有投资价值公司
  15. DeskClock选择闹钟声音时有重复选项
  16. 如何政治正确地黑咪蒙?!
  17. 【Elasticsearch教程20】Pinyin拼音分词器 以及多音字修改
  18. 【PTA-乙级】1019 - 数字黑洞(4种解法)(C/C++)
  19. 智慧养老整体解决方案
  20. 调查:人工智能技术的应用现状

热门文章

  1. 现代软件工程讲义 11 项目管理 - 事后诸葛亮会议
  2. 终端服务器超过了 最大连接数
  3. Oracle左右链接
  4. sql server 修改IDENTITY 字段 的统计当前值
  5. Android HandlerThread 源码分析
  6. QTP对象TO与RO
  7. 分布式实时计算—Storm—基础介绍
  8. 性能优化—代码层面优化
  9. SDNU 1194.传纸条(DP) 1032.机器人
  10. Java——去除字符串中的中文