1. ## Cookie ##
  2.  
  3. # 基本概念;
  4. >> 用于保存一次会话中的记录,存放在客户端(浏览器);
  5. |-- "一次会话"
  6. |-- 当客户端打开一个界面时
  7. 被称作一次会话,当浏览器未关闭时,其中所有的点击等
  8. 操作都称作一次会话;
  9.  
  10. >> Cookie由服务器发送到客户端;每次会话之后客户端会将cookie回发给服务器;
  11. |-- 保存方式;
  12. |-- 服务器端发送set-cookie响应头;
  13. |-- 获取方式;
  14. |-- 服务器端使用 reuest.getCookies();
  15.  
  16. # 使用方式;
  17. >> request.getCookies();
  18. >> response.addCookies( new cookie); set- cookie;
  19. >> 能被访问的URL的特点;
  20. |-- 浏览器会对数据进行判断;
  21. > 如果是domain+path开头则传送cookie
  22. > 否则不传送;
  23.  
  24. # 案例;
  25. >> 显示上次用户登录时间;
  26. |-- 具体步骤;
  27. > 保存用户访问网站的第一次时间;
  28. > 创建一个Cookie对象;--- Cookie cookie= new Cookie("showTime",new Date().getTime()+"");
  29. > 设置cookie路径;--- cookie.setPath(uri);
  30. |-- 路径的问题;
  31. |-- domainlocalhost
  32. |-- cookie的数据储存格式;
  33. |-- name value domain path
  34. showTime 123234124 localhost /day09...
  35.  
  36. > 设置cookie存活时间;--- cookie.setMaxAge(Integer.MAX_VALUE); //设置cookie的存活时间;
  37. // 单位为秒;0代表删除该cookie;负数则不储存;
  38. > 发送;response.addCookie(cookie);
  39. > 获取cookie中的信息;--- Cookie[] cookies= request.getCookies();
  40. > 遍历;
  41.  
  42. >> 保存用户名;
  43. |-- 具体步骤;
  44. > write(); 语句写好登录框;
  45. > 定义user类,在类中声明三个属性:用户名/密码/remember
  46. |-- remember属性定义成字符串;
  47. 在登录界面中将其设定为变量,如果被勾选该值会记录下"true"
  48.  
  49. > 使用BeanUtils封装从登录框中获取的用户参数;
  50. > 验证用户名和密码是否正确;
  51. |-- 然后验证记住用户名复选框是否被勾选;
  52. |-- 如果勾选;
  53. > 创建Cookie对象;
  54. > 设置Cookie生命周期;
  55. > 设置路径和应用名;
  56. > Cookie发送给客户端;
  57.  
  58. |-- 勾选后提交之后跳转到登录界面并展示已经记录下用户名的界面;
  59.  
  60. > 在登录之前,从Cookie中取出Cookie并作比较,如果存在就从中读取用户登录信息,并修改复选框的值;
  61.  
  62. >> 保存用户浏览商品信息;
  63. |-- 具体步骤;
  64. > 创建Book类,用于描述和保存商品基本信息;
  65. > 创建BookDB类,用于模拟数据库,内置一个map集合存放商品信息并编号;
  66. > 创建商品列表,点击查看详情之后,将信息保存到Cookie当中;
  67. |-- map集合中取出每一本书;
  68. |-- 通过遍历集合拿到映射关系;
  69. |-- 添加超链接,通过链接拿到该商品的详细信息;
  70. |-- 该链接跳转到商品存放Cookie的界面;
  71. > 将浏览过的信息存放到Cookie当中;
  72. |-- 设计一个队列模式来当作浏览记录的存放ID
  73. |-- 先遍历所有Cookie
  74. |-- 获取其中一个Cookie,和当前
  75. |-- 通过getName()获取cookie名字;
  76. > 如果该名字为ids,则表明该商品在Cookie存放界面被第一次预览;
  77.  
  78. > 然后获取到cookievalue并存入字符串,该字符串表现形式为 3-2-1
  79. > 通过【-】将其分割,获取到其中单个的di值;
  80. > 按照该顺序排列浏览记录;
  81.  
  82. > 创建存放Cookie界面;
  83. |-- 获取参数id
  84. |-- 根据id获取到相应的商品;
  85. |-- 显示明细,通过打印商品的toString()方法;
  86. |-- Cookie中添加一个ids,用于标识该商品被预览及预览顺序;
  87. |-- 设置相应特性;
  88. |-- Cookie发往客户端;
  89. |-- 设置返回商品列表界面的链接;
  90.  
  91. ## Session ##
  92.  
  93. # 基本概念;
  94. >> 是由服务器创建,用于保存用户浏览数据的一个对象;
  95. >> Cookie的区别;
  96. |-- Cookie存放在客户端;Session存放在服务器端;
  97. |-- 服务器只向客户端发送一个独立ID,该ID表明了客户端本次会话对应的的SessionID
  98. |-- 客户端第二次请求时会带上之前的ID,服务器根据对比该ID即可获取对应Seesion中存放的数据;
  99.  
  100. # 生命周期;
  101. >> tomecat为其提供的生命周期为30分钟,该周期可以由客户在配置文件中手动更改;

cooking和session的更多相关文章

  1. Session fixation--wiki

    http://en.wikipedia.org/wiki/Session_fixation In computer network security, session fixation attacks ...

  2. python -使用Requests库完成Post表单操作

    """ 使用Requests库完成Post表单操作 """ #_*_codingn:utf8 _*_ import requests fro ...

  3. session fixation

    转自:session fixation攻击 什么是session fixation攻击 Session fixation有人翻译成"Session完成攻击",实际上fixation ...

  4. session实现购物车

    为实现简单的购物功能(购物车添加.账户查看.购物车商品删除.实时的购物商品数量及价格的计算显示.购物车商品数量可手动输入等),用session实现了一简单的以php语言为基础.连接MySQL数据库的购 ...

  5. Asp.net Core中使用Session

    前言 2017年就这么悄无声息的开始了,2017年对我来说又是特别重要的一年. 元旦放假在家写了个Asp.net Core验证码登录, 做demo的过程中遇到两个小问题,第一是在Asp.net Cor ...

  6. 懒加载session 无法打开 no session or session was closed 解决办法(完美解决)

           首先说明一下,hibernate的延迟加载特性(lazy).所谓的延迟加载就是当真正需要查询数据时才执行数据加载操作.因为hibernate当中支持实体对象,外键会与实体对象关联起来.如 ...

  7. 探索ASP.NET MVC5系列之~~~6.Session篇(进程外Session)

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  8. Nhibernate的Session管理

    参考:http://www.cnblogs.com/renrenqq/archive/2006/08/04/467688.html 但这个方法还不能解决Session缓存问题,由于创建Session需 ...

  9. nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)

    本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...

随机推荐

  1. vs code打开文件显示的中文乱码

    这种情况下,一般是编码格式导致的,操作办法: 鼠标点击之后,上面会弹出这个界面,双击选中 然后从UTF-8换到GB2312,或者自己根据情况,更改编码格式

  2. Rikka with Prefix Sum

    Rikka with Prefix Sum 题目 https://www.nowcoder.com/acm/contest/148/D 题目有三个操作 l到r都添加一个数 取一次前缀和 查询区间和 这 ...

  3. JavaWeb过滤器(Filter)

    参考:https://blog.csdn.net/yuzhiqiang_1993/article/details/81288912 原理: 一般实现流程: 1.新建一个类,实现Filter接口2.实现 ...

  4. Navicat 12 无限期试用

    最近发现navicat12又过期了,以前的是用的破解软件,然后是到1899年过期哈哈哈哈哈哈.重装了系统后,软件也重装了,发现破解软件不好使了,就先试用了,现在到期了.很是难受,这可咋整,不过在网上看 ...

  5. 洛谷-P3369-普通平衡树(Treap)

    题目传送门 标题说平衡树,那么应该AVL,红黑树都能过,但是这次做这题主要是学习Treap,所以花了几天搞出了这题.其他方法以后再说吧 Treap(带旋转) #include <bits/std ...

  6. php函数 之 iconv 不是php的默认函数,也是默认安装的模块。需要安装才能用的。

    windows下最近在做一个小偷程序,需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些.  让我郁闷了好 ...

  7. 一次完整的HTTP请求响应过程(很详细)

    一. HTTP请求和响应步骤   图片来自:理解Http请求与响应 以上完整表示了HTTP请求和响应的7个步骤,下面从TCP/IP协议模型的角度来理解HTTP请求和响应如何传递的. 二.TCP/IP协 ...

  8. mysqli存储过程

    <?php$link = mysqli_connect('localhost','root','','chinatupai');  $sql = "call getEmail('000 ...

  9. CAD 卸载工具,完美彻底卸载清除干净cad各种残留注册表和文件

    CAD提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装CAD失败提示CAD安装未完成,某些产品无法安装,也有时候想重新安装CAD的时候会出现本电脑windows ...

  10. 吴裕雄--天生自然 R语言开发学习:图形初阶(续一)

    # ----------------------------------------------------# # R in Action (2nd ed): Chapter 3 # # Gettin ...