cookie是保存在客户端的文本,能够在一定程度上提高用户体验。Servlet API 中提供了Cookie类,可以创建Cookie对象,并通过响应中的addCookie方法,将cookie保存到客户端。

Cookie的概念与使用:
    cookie是保存在客户端的文本
    Servlet API提供了Cookie类,可以将文本信息封装成Cookie对象
    HttpServletResponse接口中提供了addCookie方法,将cookie添加到响应中
    HttpServletRequest接口中提供了getCookie方法,从请求中获取所有cookie对象
    
引出cookie:
    登陆某个网站后,使用同一台机器再次登陆,不需要再次输入用户名和密码,已经自动登陆。
    这种功能往往是cookie来实现的。
    cookie是存储在客户端的文本,文本往往以键值对的形式存在。档浏览器访问使用cookie的站点后,cookie的信息就保存到了客户端。由于cookie保存在客户端,再次访问服务器端资源时,cookie会被自动传递到服务器端。值得注意的是,一些保密信息不应该存储到cookie中,比如银行卡密码。
    
    Cookie:
        Cookie(String name, String value)
          Constructs a cookie with a specified name and value.
        int getMaxAge()
          Returns the maximum age of the cookie, specified in seconds, By default, -1 indicating the cookie will persist until browser shutdown.
          设置cookie对象的有效时长,默认为-1,也就是浏览器关闭后cookie失效,cookie信息保存在硬盘上
        String getName()
          Returns the name of the cookie.  获取cookie对象的名字
        String getValue()
          Returns the value of the cookie.  获取cookie对象的值
    HttpServletRequest:        
        Cookie[] getCookies()
          Returns an array containing all of the Cookie objects the client sent with this request.
    HttpServletResponse:
        void addCookie(Cookie cookie)
          Adds the specified cookie to the response.
          
    删除cookie:
    设置cookie的存在时间为0秒就删除cookie了
    c.setMaxAge(0);

JSESSIONID cookie
    通过实验查看名为jsessionid的cookie
    jsessionid的值为一个随机整数
    为后面章节学习会话做好准备
    
    特殊的cookie:名为JSESSIONID的cookie
    我们发现第一个访问页面没有获取到cookie,但是刷新页面或者不关闭浏览器重新访问该页面会获取到一个名为JSESSIONID的cookie,在同一个浏览器中,无论访问多少次,该cookie的值都不变
    
    名称为JSESSIONID的cookie我们可以判断它是一个会话cookie。
    他是用来实现会话机制的cookie:默认情况下,访问JSP时,服务器端将生成一个名为JSESSIONID的cookie,值为随机的16进制整数

cookie随便写的一点笔记(抄书的)的更多相关文章

  1. 随便写一点最近开发遇到的问题和解决方法 大部分关于laravel和php

    laravel里要想对对象进行自己设计的排序(usort()), 得用匿名方法,  原声php就不用 php里面可以随便写html代码,  比如可以把html直接后缀名改成.php, 然后在任何地方& ...

  2. 关于最小生成树,拓扑排序、强连通分量、割点、2-SAT的一点笔记

    关于最小生成树,拓扑排序.强连通分量.割点.2-SAT的一点笔记 前言:近期在复习这些东西,就xjb写一点吧.当然以前也写过,但这次偏重不太一样 MST 最小瓶颈路:u到v最大权值最小的路径.在最小生 ...

  3. 使用Atom写你的笔记

    使用Atom写你的笔记 本文参考简书笔记. 使用sync-settings同步你的Atom设置 使用sync-settings插件需要以下3个条件: 电脑已安装Atom Atom内已安装sync-se ...

  4. Typora+PicGo+阿里云写博客笔记

    Typora+PicGo+阿里云写博客笔记 选择这三个工具的理由 我一直有在使用typora使用mardown写作,毕竟typora很香,可以实时预览,非常丝滑. 配合上PicGo这个图床工具简直绝了 ...

  5. ActionScript 3.0 自写类整理笔记(十三)——Random类

    一个简单的随机函数工具类,总共提供了9种静态方法来获取不同的随机值随便写的,如果你还有什么更好的建议,请提出来,谢谢~ index.Random类:代码:public final class Rand ...

  6. Jquery 随便写些知识点

    针对jQuery随便写些觉得还挺实用的一些东西,也没系统的去理一番,只是想到哪写到哪,写的不完全也请多见谅. jQuery和其他javascript库产生$符号冲突了?$符号想必用jQuery的人都不 ...

  7. [转&精]IO_STACK_LOCATION与IRP的一点笔记

    IO_STACK_LOCATION和IRP算是驱动中两个很基础的东西,为了理解这两个东西,找了一点资料. 1. IRP可以看成是Win32窗口程序中的消息(Message),DEVICE_OBJECT ...

  8. 关于SS的一点笔记

    过年的时候抽了点时间了解了下ss的协议.整理了一点笔记,一直没有时间发.今天发一下,免得忘了. SS的结构本身比较简单,他的基本结构如下: ss通常分为client和server两部分 client是 ...

  9. 对于写Python学习笔记的看法

    学习写笔记是一个不错的学习方法,好些同学在学习Python过程中也会写学习笔记.俗话说好记性不如烂笔头,我很赞同这个说法. 我列举几个学习Python写笔记的好处: 1.Python知识的二度巩固 通 ...

随机推荐

  1. APM 终端用户体验监控分析(上)

    一.前言 理解用户体验是从终端用户角度了解应用交付质量的关键,这是考量业务健康运转的潜在因素.捕获此类数据的方法各种各样,具体的实现途径由应用.基础设施架构以及管理者和管理过程决定. 二.终端用户监控 ...

  2. [Qt] 界面美化 [2013-06-17更新](转载)

    - 经验总结 1. 可用对话框(QDialog)模拟类似Android中toast的效果.     - 设置程序界面风格 在main函数中QApplication::setStyle("wi ...

  3. lightoj 1408 Batting Practice (概率问题,求期望,推公式)

    题意:一个人若连续进k1个球或连续不进k2个球,游戏结束,给出这个人不进球的概率p(注意:是不进球!!!),求到游戏结束时这个投球个数的期望. 不进球概率为p,进概率 q=1-p.设 f[i] 表示连 ...

  4. ==和equals的区别

    == :是判断两个变量或实例是不是指向同一个内存空间equals :是判断两个变量或实例所指向的内存空间的值是不是相同 结论:欲比较栈中数据是否相等,请用= =:欲比较堆中数据是否相等,请用equal ...

  5. SQL Server 中的存储过程

    一:初步了解存储过程的使用 创建一个简单的存储过程 CREATE PROC spEmployee AS SELECT * FROM HumanResources.Employee; 执行这个存储过程: ...

  6. JavaScript基于对象编程

    js面向对象特征介绍 javascript是一种面向(基于)对象的动态脚本语言,是一种基于对象(Object)和事件驱动(EventDirven)并具有安全性能的脚本语言.它具有面向对象语言所特有的各 ...

  7. C#反射技术的相关使用方法

    1.获取同一程序集的类型实例 无参数构造函数 Type t=Type.GetType("AppCode.Employee"); object emp=t.Assembly.Crea ...

  8. CF 253B Two Heaps

    #include<stdio.h> #include<algorithm> #include<map> using namespace std; struct No ...

  9. Linux中查看进程的多线程

    在SMP系统中,我们的应用程序经常使用多线程的技术,那么在Linux中如何查看某个进程的多个线程呢? 本文介绍3种命令来查看Linux系统中的线程(LWP)的情况: 在我的系统中,用qemu-syst ...

  10. android-exploitme(四):参数篡改

    今天我们来测试请求中参数的篡改,这个在web安全测试中是常用的,拦截请求包,修改参数,提交 1.  首先我们需要启动模拟器,并使用本机的代理(加上参数-partition-size的目的是为了可以往a ...