javaweb(10) cookie&session

cookie

什么是cookie

1、Cookie 翻译过来是饼干的意思。

2、Cookie 是服务器通知客户端保存键值对的一种技术。

3、客户端有了 Cookie 后,每次请求都发送给服务器。

4、每个 Cookie 的大小不能超过 4kb

如何创建cookie

  1. 创建cookie对象
  2. 通知客户端保存cookie

示意图:

示例代码:

服务器如何获取cookie

服务器获取客户端的 Cookie 只需要一行代码:req.getCookies():Cookie[]

示意图:

获取指定cookie的工具类:

获取示例:

cookie值的修改

方式一

1、先创建一个要修改的同名(指的就是 key)的 Cookie 对象

2、在构造器,同时赋于新的 Cookie 值。

3、调用 response.addCookie( Cookie );

方式二

1、先查找到需要修改的 Cookie 对象

2、调用 setValue()方法赋于新的 Cookie 值。

3、调用 response.addCookie()通知客户端保存修改

代码示例

cookie的生命控制

控制方法

通过setMaxAge()进行控制:

正数,表示在指定的秒数后过期

负数,表示浏览器一关,Cookie 就会被删除(默认值是-1)

零,表示马上删除 Cookie

示例

查看默认的过期时间:

设置cookie的过期时间:

立即删除cookie:

cookie有效路径path的设置

示例代码:

以上及后面示例代码基于BaseServlet:

public abstract class BaseServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");//解决响应乱码response.setContentType("text/html; charset=UTF-8");String action = request.getParameter("action");try {Method method = this.getClass().getDeclaredMethod(action,HttpServletRequest.class,HttpServletResponse.class);method.setAccessible(true);method.invoke(this,request,response);} catch (Exception e) {e.printStackTrace();}}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}
}

session

什么是session

1、Session 就一个接口(HttpSession)。

2、Session 就是会话。它是用来维护一个客户端和服务器之间关联的一种技术。

3、每个客户端都有自己的一个 Session 会话。

4、Session 会话中,我们经常用来保存用户登录之后的信息。

如何创建session和获取(id,是否为新)

如何创建和获取 Session。它们的 API 是一样的。

request.getSession()

第一次调用是:创建 Session 会话,之后调用都是:获取前面创建好的 Session 会话对象。

isNew(); 判断到底是不是刚创建出来的(新的)

true 表示刚创建

false 表示获取之前创建

每个会话都有一个身份证号。也就是 ID 值。而且这个 ID 是唯一的。

getId() 得到 Session 的会话 id 值。

session域数据的存取

存储:req.getSession().setAttribute(“key1”, “value1”);

取出:req.getSession().getAttribute(“key1”)

session的生命控制

超时的概念

session的超时指的是,客户端两次请求的最大间隔时长

生命控制

public void setMaxInactiveInterval(int interval) 设置 Session 的超时时间(以秒为单位),超过指定的时Session就会被销毁。

值为正数的时候,设定 Session 的超时时长。

负数表示永不超时(极少使用)

public int getMaxInactiveInterval()获取 Session 的超时时间

public void invalidate() 让当前 Session 会话马上超时无效。

默认时长

设置默认时长

浏览器和 Session 之间关联的技术内幕

浏览器第一次发请求时,服务器会调用reques.getSession创建会话对象,并通过响应把session对象的id通过cookie的方式保存传给浏览器;浏览器再次发请求时,服务器响应传给保存session的id的cookie即可,无需再次创建session对象,除非改cookie被删除或者过期(关闭浏览器)

javaweb(10) cookiesession相关推荐

  1. java结丹期(14)----javaweb(cookiesession)

     Cookie: 1. 概念:客户端会话技术,将数据保存到客户端 2. 快速入门: * 使用步骤:     1. 创建Cookie对象,绑定数据         * new Cookie(String ...

  2. Cookie / Session 的机制与安全

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. Cookie和Session是为了在无状态的HTTP协议之上维护会话状态,使得服务器可以知道当前是和 ...

  3. H3CNE最新版官网考试模拟题库

    以下工作于OSI 参考模型数据链路层的设备是__A____.(选择一项或多项) A. 广域网交换机 B. 路由器 C. 中继器 D. 集线器 A 数据链路层传输的是帧,交换机是基于帧转发的:B 路由器 ...

  4. (Java实习生)每日10道面试题打卡——JavaWeb篇

    临近秋招,备战暑期实习,祝大家每天进步亿点点!打卡 Day05! 本篇总结的是javaweb相关的面试题,后续会每日更新~ 剧透:明日更新 JVM 面试题,相关知识不牢固的先去补一补哦 O(∩_∩)O ...

  5. javaWeb 中Tomcat 10 jsp文件内置对象不能正常使用的问题(已解决)

    在这段时间学习javaweb时,因为是自己找的视频,下载了最新版本的Tomcat,Tomcat 10 ,然后就发现了很多问题,Tomcat 10 跟之前的版本 有很大的区别,以至于,10以下的版本的文 ...

  6. JavaWeb黑马旅游网-学习笔记10【项目代码】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  7. 【传智播客】Javaweb程序设计任务教程 黑马程序员 第7,8,9,10,11,12,13,14,15章 课后答案

    所有章节答案合集-->传送门 第一部分是题目,向下翻, 第二部分是答案 第七章 [测一测] 学习完前面的内容,下面来动手测一测吧,请思考以下问题: 1.简述Javabean规范都有哪些?(至少写 ...

  8. JavaWeb开发之CookieSession

    会话简单理解为:用户打开一个浏览器,点击多个超链接访问服务器的web资源,然后关闭浏览器,整个过程称为是一次会话.每个用户与服务器进行交互过程中,产生一些各自的数据,程序想要把这些数据进行保存,就需要 ...

  9. 崔希凡JavaWeb笔记day19-day21(2016年10月4日17:35:51)

    难点:jdbc分页查询,以及filter的几个案例 笔记分享如下 链接:http://pan.baidu.com/s/1o8NbI3o 密码:4fnc

最新文章

  1. linux命令 iperf-网络性能测试工具
  2. failed to find romfile efi-virtio.rom
  3. 自动化测试学习之路--java String、StringBuilder
  4. 异步编程的 async/await
  5. 为record类型自定义Equals方法
  6. Pycharm不能用了
  7. 2019-OO-第二单元总结
  8. ajax前台获取json,ajax与json 获取数据并在前台使用简单实例
  9. NSS_08 extjs表单验证
  10. 2018-2019-1 20189204《Linux内核原理与分析》第二周作业
  11. svm出现浮点数与字符串不能计算的错误(label必须为 整形或浮点型)
  12. 光环大数据python爬虫
  13. html5shiv源码,前端开发必配置:html5shiv.js和respond.min.js的作用说明!
  14. 物联网解决方案:智慧物流方案
  15. win10红警2黑屏_win10每次重启黑屏假死
  16. 读书笔记 ·《简约至上》第二章 明确认识
  17. 【算法】01背包及其优化详解
  18. Mac电脑蓝牙连接出问题了,如何重置Mac的蓝牙模块
  19. select函数详细用法解析
  20. Attributed Graph Clustering: A Deep Attentional Embedding Approach,IJCAI2019

热门文章

  1. 项目部署到服务器需要做什么,项目部署到服务器。
  2. urlos 阻止访问ip_URLOS使用流程
  3. Linux中切换用户(su命令)
  4. java 基于类路径搜索_一种基于ClassLoader的自定义类查找方法与流程
  5. 碧蓝航线8.20服务器维护,《碧蓝航线》8月20日更新维护公告
  6. python右键弹出菜单编写_python实现应用程序在右键菜单中添加打开方式功能
  7. layui横向时间线_用打火机或烟头烧羽毛球拍线坏处多
  8. #{}不自动改参数类型_Spring参数的自解析还在自己转换?你out了!
  9. esp8266 扫描wifi_基于ESP8266与QT的智能家居控制系统设计
  10. WIN10常用快捷键(打开资源管理器、显示桌面、截图)