1.会话控制

Http协议   Http协议两个缺陷:

1.HTTP协议是纯文本的    2.HTTP协议是无状态的

服务器不能简单的通过HTTP协议来区分多次请求是否发自同一个用户    虽然通过HTTP协议不能区分不同请求是否来同一用户,但是我们实际生活却有这样的需求。

[1] Cookie

看电影

去电影院看电影时,检票人员是认票不认人。

电影院的运作流程     1.印刷电影票     2.将票发给看电影     3.看电影的拿着票来看电影     4.检票

简介

我们想可以通过服务器向浏览器发送一个类似票的东西,浏览器在访问服务器时就可以拿着票来访问,服务器就可以根据这个票来识别不同的用户。 服务器发送给浏览器的这张票我们称为Cookie。

Cookie的使用流程:

1.服务器先要创建Cookie     2.将Cookie发送给浏览器     3.浏览器带着Cookie访问服务器     4.服务器检查浏览器的Cookie

Cookie实际上就是一个头     服务器通过响应头将Cookie发送给浏览器, 浏览  器通过请求头将Cookie发回给服务器, 服务器可以根据不同的Cookie来识别不同的用户。

使用Cookie    - 创建Cookie     Cookie cookie = new Cookie(name,value);

发送Cookie      response.addCookie(cookie);     注意:可以发送多个cookie!         - 读取Cookie

request.getCookies(); 返回的是一个Cookie数组。

虽然Cookie是一个键值对结构,但是它并没有给咱们提供一个根据键获取值的方法。      我们要想读取Cookie的信息,只能通过遍历数组。

修改Cookie     一旦Cookie发给浏览器以后,服务器便不能直接修改Cookie, 但是可以通过使用同名Cookie来替换的老Cookie方式来间接的修改

Cookie的有效时间    - Cookie的默认有效时间为一次会话,当关闭浏览器时,Cookie将失效。

通过setMaxAge(秒数)来设置Cookie的有效时间    -//当秒数大于0时,有效时间会设置为相应的秒数     cookie.setMaxAg(30);

//当秒数等于0时,代表Cookie立即失效,浏览器不会保存。

cookie.setMaxAge(0);       //当秒数小于0时,和不设置是一样,一次会话中有效

cookie.setMaxAge(-100);         设置一个长久有效的Cookie     cookie.setMaxAge(60*60*24*365*10)      在程序中使Cookie立即失效

还可以使用一个同名的,立即失效的Cookie来替换已有Cookie

注意:不建议在cookie中传递中文,会用base64编码!

Cookie的Path    path指的Cookie的路径,所谓的Cookie路径就是指,浏览器在访问哪些地址时会携带Cookie。

Cookie默认有效路径是项目的根目录,只要访问当前项目下的资源就会带着Cookie,通过setPath()方法来设置Cookie有效路径

//修改Cookie的有效路径

//Cookie的路径由浏览器解析,所以设置路径时需要加上项目名

cookie.setPath(request.getContextPath()+"/hello");

应用:    1.可以用来保持用户的登录状态    2.可以用来记录用户上次输入的用户名        3.广告的推送

Cookie练习

模拟一个taobao的功能,保存用户输入用户名。

用户在login.jsp输入用户名和密码 , 请求发送个LoginServlet

LoginServlet收到请求行,检查用户名和密码是否正确。(默认登录成功)     如果正确,则将用户名保存到一个Cookie中,并发送给浏览器 ,重定向到 login-success.jsp     如果错误,转发到login.jsp

170814关于Cookie的知识点的更多相关文章

  1. cookie&session&servletContext

    一.cookie VS session 1)应用场景 cookie可以用于: 记录用户上次登录的时间 记住用户名和密码 session可以用于: 防止非法登录(即直接跳转到本来需登录验证方可登录的页面 ...

  2. 【转载】HTTP Cookie学习笔记

    什么是cookie? cookie是什么?是饼干,小甜点? No! No! No! 我今天要总结的cookie并不是你所想的小甜心,我这里要说的cookie是Web开发中的一个重要的"武器& ...

  3. django之模型层(model)--查询补充及cookie

    已经连续写了好几篇django的模型层(model)增删改查的随笔了,没篇大篇幅都是查询相关的操作,可以看出查询在数据的操作中是多么的重要,而本篇最后再补充一点关于关于查询的一些方法,模型层基本的操作 ...

  4. 67、django之模型层(model)--查询补充及mookie

    本篇导航: F查询与Q查询 cookie 一.F查询与Q查询 1.以Book表为例 class Book(models.Model) : title = models.CharField(max_le ...

  5. JSON Web Token 使用详解

    JWT 是什么? JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案.它是有三部分组成,示例如下,具体的讲解如下(jwt 是不会有空行的,下面只是为了显示,便使用了换行看着比较 ...

  6. 2018-2019-2 网络对抗技术 20165322 Exp9 Web安全基础

    2018-2019-2 网络对抗技术 20165322 Exp9 Web安全基础 目录 实验内容与步骤 (一)Webgoat安装 (二)SQL注入攻击 1.命令注入(Command Injection ...

  7. 为什么你学不会递归?告别递归,谈谈我的一些经验 关于集合中一些常考的知识点总结 .net辗转java系列(一)视野 彻底理解cookie,session,token

    为什么你学不会递归?告别递归,谈谈我的一些经验   可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了! ...

  8. 对EL自己以及对于param、header、cookie的相关应用的相关知识点的复习

    EL表达式语言是一种可以计算和输出的java对象的简单语言. 列入请求语句为下面的方式:request.setAttribute("username","zhangsan ...

  9. Cookie 知识点再整理

    1. Cookie  是存储在客户端 内存 或者 硬盘(例如火狐把 Cookie 存储在 C:\Documents and Settings\用户名\Application Data\Mozilla\ ...

随机推荐

  1. Python高效率遍历文件夹寻找重复文件

    前言 为什么要写这篇文章呢...主要还是业务中有个需求,遍历一个将近200w数据的文件夹,大部分还都是视频文件那种,但是这玩意用的次数还不多,做文件夹index也不是很ok,所以写了一个脚本来处理这个 ...

  2. 搭建 Git 服务器(基于 CentOS 7)

    服务器上的-Git-架设服务器-官网参考 对于规模比较小的团队,可以直接搭建 Git 服务器,逐个收集研发同学的证书配置进来即可.如果团队规模比较大,可以直接采用 GitLab.Drone 等现成的带 ...

  3. 使用OkHttp模拟登陆LeetCode

    前言 网上有很多模拟登陆 LeetCode 的教程,但是基本都是使用 Python 来实现的.作为一个 Java 语言爱好者,因此想用 Java 来实现下.在实现的过程中,也遇到了一些坑点,故在此作为 ...

  4. chrome:// .......命令 集结

    Chrome 有很多的特性在界面菜单中是没有体现的,可以通过 chrome:// 命令来访问 我搜集了下面这些!!!当然也是在网上找的!有的我自己也不知道是什么,具体作用是什么!还是等高人来探讨吧!c ...

  5. Leveldb源码分析--2

    coming from http://blog.csdn.net/sparkliang/article/details/8573618

  6. (4.12)mysql备份还原——mysql逻辑备份之mysqldump

    关键词:mysql逻辑备份介绍,mysqldump,mysqldump最佳实践 我的相关文章:https://www.cnblogs.com/gered/p/9721696.html 正文 1.mys ...

  7. Sql Server主副本和辅助副本间账号同步以及权限同步

    问题描述 SqlServer如果配置了AlwaysOn,其数据库账号信息同步会出现问题. 我遇到的情况是在主副本添加了账号信息,且给某个数据库添加了权限,这个账号会同步至辅助副本,但是数据库角色信息没 ...

  8. Monitor HDU6514 二维差分入门学习

    Monitor HDU 6514 二维差分入门学习 题意 小腾有\(n*m\)的田地,但是有小偷来偷东西,在一片矩形区域上,有一部分区域是监控可以覆盖到的,这部分区域由一个或多个包含于该矩形区域的小矩 ...

  9. [BZOJ 3110] [luogu 3332] [ZJOI 2013]k大数查询(权值线段树套线段树)

    [BZOJ 3110] [luogu 3332] [ZJOI 2013]k大数查询(权值线段树套线段树) 题面 原题面有点歧义,不过从样例可以看出来真正的意思 有n个位置,每个位置可以看做一个集合. ...

  10. JVM调优 — 命令大全(jps jstat jmap jhat jstack jinfo)(转)

    运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole.大名鼎鼎的VisualVM,IBM的Memory Analyzer ...