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.setMaxAge(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.广告的推送

java web Cookie浅谈的更多相关文章

  1. Java web Cookie详解(持久化+原理详解+共享问题+设置中文+发送多个Cookie)

    Java web Cookie详解 啥是cookie? 查询有道词典得: web和饼干有啥关系? 这个谜底等等来为大家揭晓 会话技术 web中的会话技术类似于生活中两个人聊天,不过web中的会话指的是 ...

  2. java反射机制浅谈

    一.Java的反射机制浅谈 最近研究java研究得很给力,主要以看博文为学习方式.以下是我对java的反射机制所产生的一些感悟,希望各位童鞋看到失误之处不吝指出.受到各位指教之处,如若让小生好好感动, ...

  3. 求高手帮忙解决一下问题Java Web Cookie实例

    package cn.com; import java.io.IOException; import java.io.PrintWriter; import java.util.LinkedHashM ...

  4. J1001.Java原生桌面及Web开发浅谈

    自从Java问世以来,在服务端开发方面取得了巨大的发展.但是在桌面/Web开发方面,一直没有得到大的发展.从最初的AWT,到Swing,再到JavaFX,Java从来没有在桌面/Web解决方案中取得重 ...

  5. 【Java虚拟机】浅谈Java虚拟机

    跨平台 Java的一大特性是跨平台,而Java是如何做到跨平台的呢? 主要依赖Java虚拟机,具体来说,是Java虚拟机在各平台上的实现. Java虚拟机在不同的平台有不同的实现.同一份字节码,通过运 ...

  6. 【转】三年后再反思我的" Java Web项目管理得失谈"

    原文: http://blog.csdn.net/csfreebird/article/details/7561189 这篇文章介绍的经验心得不错,故转载之. 三年前,我写了 JavaWeb项目管理得 ...

  7. java基础(十七)----- 浅谈Java中的深拷贝和浅拷贝 —— 面试必问

    假如说你想复制一个简单变量.很简单: int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short, ...

  8. Java Service Wrapper 浅谈

    在实际开发过程中很多模块需要独立运行,他们并不会以web形式发布,传统的做法是将其压缩为jar包独立运行,这种形式简单易行也比较利于维护,但是 一旦服务器重启或出现异常时,程序往往无法自行修复或重启. ...

  9. Java基础之浅谈集合

    Java基础知识.关于List.Set.Map接口的了解,以及ArrayList.LinkedList.HashSet.TreeSet.HashMap.TreeMap...

随机推荐

  1. mysql sql 基础总结

    1 mysql top n使用 select * from table limit n; 2    统配符使用必须和like结合使用 like % 通配符 描述 % 替代一个或多个字符 _ 仅替代一个 ...

  2. 解决React Native unable to load script from assets index.android.bundle on windows

    React Native运行的时候,经常碰到React Native unable to load script from assets index.android.bundle on windows ...

  3. 手机摄像头扫描识别车牌号,移动端车牌识别sdk

    一.移动端车牌识别应用背景 (技术交流:18701686857  QQ:283870550) 随着经济水平的不断提高,汽车数量的不断激增为汽车管理带来了不小的难度.路边违章停车的现象越来越频繁.现在, ...

  4. 任务调度---crontab

    1.   crontab相当于windows下的任务与计划,可以设定定时任务,周期执行的任务 2.   设置任务调度文件 crontab  -e       进入任务界面,添加如下命令 0 2 * * ...

  5. 2.关于Apache Spark

    关于Apache Spark 1 Why Apache Spark 2 关于Apache Spark 3 如何安装Apache Spark 4 Apache Spark的工作原理 5 spark弹性分 ...

  6. idea项目上传到码云

    从idea托管项目到码云相对其他软件来说是非常简单的,只要第一次下载好git插件,然后托管如下: 1. 2. 3.登陆成功后,默认会将项目所有项全选,托管成功后右下角会显示 4.当以后项目有变化时再如 ...

  7. iOS耗电量测试

    iOS耗电量测试 本文主要介绍的是使用Energy Diagnostics Instruments来进行iOS耗电量测试. 一.使用方法: 1)iOS 设置选项 ->开发者选项 ->log ...

  8. MySQL优化 - 性能分析与查询优化

    优化应贯穿整个产品开发周期中,比如编写复杂SQL时查看执行计划,安装MySQL服务器时尽量合理配置(见过太多完全使用默认配置安装的情况),根据应用负载选择合理的硬件配置等. 1.性能分析 性能分析包含 ...

  9. Git时光机穿梭之版本回退

    现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下: Git is a distributed version control system. ...

  10. 基于ubuntu14视觉识别乒乓球_1

    串口通信,opencv3.0 窗口大小可调 编译 cmake ../ make ./color 正常光线下运行比较稳定,找圆比较准确.程序设置了圆的半径区间以及圆心最小间距,以满足产品的需求,可自行修 ...