## Cookie ##

# 基本概念;
>> 用于保存一次会话中的记录,存放在客户端(浏览器);
|-- "一次会话"
|-- 当客户端打开一个界面时
被称作一次会话,当浏览器未关闭时,其中所有的点击等
操作都称作一次会话; >> Cookie由服务器发送到客户端;每次会话之后客户端会将cookie回发给服务器;
|-- 保存方式;
|-- 服务器端发送set-cookie响应头;
|-- 获取方式;
|-- 服务器端使用 reuest.getCookies(); # 使用方式;
>> request.getCookies();
>> response.addCookies( new cookie); set- cookie;
>> 能被访问的URL的特点;
|-- 浏览器会对数据进行判断;
> 如果是domain+path开头则传送cookie
> 否则不传送; # 案例;
>> 显示上次用户登录时间;
|-- 具体步骤;
> 保存用户访问网站的第一次时间;
> 创建一个Cookie对象;--- Cookie cookie= new Cookie("showTime",new Date().getTime()+"");
> 设置cookie路径;--- cookie.setPath(uri);
|-- 路径的问题;
|-- domain:localhost;
|-- cookie的数据储存格式;
|-- name value domain path
showTime 123234124 localhost /day09... > 设置cookie存活时间;--- cookie.setMaxAge(Integer.MAX_VALUE); //设置cookie的存活时间;
// 单位为秒;0代表删除该cookie;负数则不储存;
> 发送;response.addCookie(cookie);
> 获取cookie中的信息;--- Cookie[] cookies= request.getCookies();
> 遍历; >> 保存用户名;
|-- 具体步骤;
> 用write(); 语句写好登录框;
> 定义user类,在类中声明三个属性:用户名/密码/remember
|-- remember属性定义成字符串;
在登录界面中将其设定为变量,如果被勾选该值会记录下"true"; > 使用BeanUtils封装从登录框中获取的用户参数;
> 验证用户名和密码是否正确;
|-- 然后验证记住用户名复选框是否被勾选;
|-- 如果勾选;
> 创建Cookie对象;
> 设置Cookie生命周期;
> 设置路径和应用名;
> 将Cookie发送给客户端; |-- 勾选后提交之后跳转到登录界面并展示已经记录下用户名的界面; > 在登录之前,从Cookie中取出Cookie并作比较,如果存在就从中读取用户登录信息,并修改复选框的值; >> 保存用户浏览商品信息;
|-- 具体步骤;
> 创建Book类,用于描述和保存商品基本信息;
> 创建BookDB类,用于模拟数据库,内置一个map集合存放商品信息并编号;
> 创建商品列表,点击查看详情之后,将信息保存到Cookie当中;
|-- 从map集合中取出每一本书;
|-- 通过遍历集合拿到映射关系;
|-- 添加超链接,通过链接拿到该商品的详细信息;
|-- 该链接跳转到商品存放Cookie的界面;
> 将浏览过的信息存放到Cookie当中;
|-- 设计一个队列模式来当作浏览记录的存放ID;
|-- 先遍历所有Cookie;
|-- 获取其中一个Cookie,和当前
|-- 通过getName()获取cookie名字;
> 如果该名字为ids,则表明该商品在Cookie存放界面被第一次预览; > 然后获取到cookie的value并存入字符串,该字符串表现形式为 3-2-1 ;
> 通过【-】将其分割,获取到其中单个的di值;
> 按照该顺序排列浏览记录; > 创建存放Cookie界面;
|-- 获取参数id
|-- 根据id获取到相应的商品;
|-- 显示明细,通过打印商品的toString()方法;
|-- 在Cookie中添加一个ids,用于标识该商品被预览及预览顺序;
|-- 设置相应特性;
|-- 将Cookie发往客户端;
|-- 设置返回商品列表界面的链接; ## Session ## # 基本概念;
>> 是由服务器创建,用于保存用户浏览数据的一个对象;
>> 和Cookie的区别;
|-- Cookie存放在客户端;Session存放在服务器端;
|-- 服务器只向客户端发送一个独立ID,该ID表明了客户端本次会话对应的的SessionID;
|-- 客户端第二次请求时会带上之前的ID,服务器根据对比该ID即可获取对应Seesion中存放的数据; # 生命周期;
>> 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. PAT甲级——1036 Boys vs Girls

    1036 Boys vs Girls This time you are asked to tell the difference between the lowest grade of all th ...

  2. 向通用自动驾驶部门Cruise投资22.5亿美元,软银打得什么主意?

    5月29日,加利福尼亚州的一辆特斯拉Model S撞上停在路边的警车.据透露,当时这辆特斯拉正处于自动辅助驾驶即Autopilot模式.而在今年,这已经不是第一次特斯拉自动驾驶模式出问题了.此外,Ub ...

  3. Xen入门系列三【Xen 管理工具 xm】

    xm命令是管理Xen的最基本的工具,可以通过xm --help 来获得帮助. 1. 列出所有正在运行的虚拟操作系统 # xm list PS[1]:可缩写为 xm li 2. 启动虚拟机 # 通过配置 ...

  4. 76)PHP,session数据区的使用

    (1)session数据区: 在我们的session会话结束之前,会有一个seeeion的文件,存储着session序列化的数据,在会话没有结束之前,我们都是操作$_SESSION的,但是在会话结束后 ...

  5. Linux把内存挂载成硬盘提高读写速度

    tmpfs是一种虚拟内存文件系统正如这个定义它最大的特点就是它的存储空间在VM里面,这里提一下VM(virtual memory),VM是由linux内核里面的vm子系统管理,现在大多数操作系统都采用 ...

  6. Differential Calculus

    Taylor's Formula Theorem 1.1. Let \(f\): \(I=(c,d)->\mathbb{R}\) be a n-times differentiable func ...

  7. life|October the 1st| five twenty|three–fifths|1970s|30s

    The music is full of  (a, an, the, /) life. It can release your pressure to a large extent, so I enj ...

  8. 轮询本机所有网卡的IP地址

    #include <stdio.h> #include <sys/types.h> #include <ifaddrs.h> #include <netine ...

  9. CF-1144F-Graph Without Long Directed Paths

    题意: 给出一个无向联通图,要求你给出每条边的方向,使得无论从哪个点出发最多只能走一条边: 思路: 对于每个点,要么出度为0,要么入度为0即可.所以这就是一个判断二分图. 二分图 #include & ...

  10. SQL中的一些关键字用法

    1.where 条件筛选结果 select * from `表名` where `列名`='value' 上诉语句的意思是在某表中查询某列名等于某特定值得所有列 2.Like 模糊查询 select ...