Servlet会话机制:

  Http是一种无状态协议,它是无记忆的。也就是说,服务器不会保存用户的任何信息,当同一用户再次去访问时,服务器是不认识你的,它还是会建立新的连接。

但有时候我们需要服务器保留用户的信息,用以识别同一用户的多次访问,此时我们就要用到会话机制,它是通过容器的HttpSession的对象实现的。

  会话的创建:Servlet通过request对象获得HttpSession对象

      HttpSession session = request.getSession();

  会话的生命周期:

  Session是保存在服务器端内存中的,服务器会为每个用户分配存储空间用于存储它们的信息,并且为每个用户生成一个唯一标识(SessionID)用以区分不同用户,并且一般保存在客户端的Cookie中。它的特点是安全性高,但存太多session会占用服务器内存。

一个很形象的举例:

  客户(客户端用户)去一个商店(服务器端)消费,但这个商店不会记住每个每个消费者的信息(Http是无状态协议),但是对于一部分消费者可以办会员卡,商店自己存储这些会员的信息(session是存储在服务器端的),并发放给会员一张会员卡(里面有确认这个会员的SessionID)。下次客户再来消费,就可以在商店凭着会员卡上的SessionID找到同时保存在商店的你的信息。

  参考资料: http://www.cnblogs.com/kissdodog/archive/2013/02/08/2909292.html

       http://www.cnblogs.com/agilework/articles/2290240.html

Session和Cookie的区别:

  session保存在服务器端,所以优点是安全性高,缺点是存太多session会占用服务器内存。cookie反之。

  参考资料: http://blog.csdn.net/macsnow/article/details/6893191

  cookie:  

      新建:

    Cookie cookie = new Cookie();
cookie.setMaxAge(60*60*24*365);
response.addCookie(cookie);

  

             

Servlet基础知识(三)—— 会话机制Session,Session和Cookie的异同的更多相关文章

  1. Servlet基础(三) Servlet的多线程同步问题

    Servlet基础(三) Servlet的多线程同步问题 Servlet/JSP技术和ASP.PHP等相比,由于其多线程运行而具有很高的执行效率. 由于Servlet/JSP默认是以多线程模式执行的, ...

  2. java 基础知识三 java变量

    java  基础知识 三 变量 1.作用域 {} 包围起来的代码 称之为代码块,在块中声明的变量只能在块中使用 2.常量 就是固定不变的量,一旦被定义,它的值就不能再被改变. 3.变量 变量必须在程序 ...

  3. Python基础知识(三)

    Python基础知识(三) 一丶整型 #二进制转成十进制的方法 # 128 64 32 16 8 4 2 1 1 1 1 1 1 1 例如数字5 : 101 #十进制转成二进制的方法 递归除取余数,从 ...

  4. Java Web(三) 会话机制,Cookie和Session详解

    很大一部分应该知道什么是会话机制,也能说的出几句,我也大概了解一点,但是学了之后几天不用,立马忘的一干二净,原因可能是没能好好理解这两种会话机制,所以会一直遗忘,一直重新回过头来学习它,今天好好把他总 ...

  5. Java Web(三) 会话机制,Cookie和Session详解(转载)

    https://www.cnblogs.com/whgk/p/6422391.html 很大一部分应该知道什么是会话机制,也能说的出几句,我也大概了解一点,但是学了之后几天不用,立马忘的一干二净,原因 ...

  6. web开发(三) 会话机制,Cookie和Session详解

    在网上看见一篇不错的文章,写的详细. 以下内容引用那篇博文.转载于<http://www.cnblogs.com/whgk/p/6422391.html>,在此仅供学习参考之用. 一.会话 ...

  7. Servlet基础知识

    基本知识一.Web结构1.两种应用程序 ①桌面应用程序:QQ.CS.MyEclipse.Office.DW.360.浏览器等必须下载.安装.桌面快捷方式.注册表信息.操作系统后台服务.占用操作系统端口 ...

  8. JSP SERVLET 基础知识

    jsp(java server page)和servlet是JAVA EE规范的两个基本成员,是JAVA WEB开发的重点也是基础知识.JSP本质上也需要编译成SERVLET运行. JSP比较简单,可 ...

  9. 快速掌握JavaScript面试基础知识(三)

    译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...

随机推荐

  1. strcpy()、memcpy()、memmove()、memset()的内部实现

    一直想知道 strcpy().memcpy().memmove().memset()的内部实现 strcpy(), 字符串拷贝. char *strcpy(char *strDest, const c ...

  2. 服务端API的OAuth认证实现

    http://stackoverflow.com/questions/12499602/body-joints-angle-using-kinect?rq=1 新浪微博跟update相关的api已经挂 ...

  3. 高性能 TCP &amp; UDP 通信框架 HP-Socket v3.2.3 正式宣布

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包括服务端组件.client组件和 Agent 组件.广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#. ...

  4. grep -v grep 代表在查询的最终结果中去掉grep命令本身

    grep -v grep 代表在查询的最终结果中去掉grep命令本身

  5. App.config和Web.config配置文件的自定义配置节点

    前言 昨天修改代码发现了一个问题,由于自己要在WCF服务接口中添加了一个方法,那么在相应调用的地方进行更新服务就可以了,不料意外发生了,竟然无法更新.左查右查终于发现了问题.App.config配置文 ...

  6. 简单的实现树莓派的WEB控制

    最终效果如图: 用到的知识:Python Bottle HTML Javascript JQuery Bootstrap AJAX 当然还有 linux 我去,这么多--我还是一点一点说起吧-- 先贴 ...

  7. 几个DOM属性

    1,childNodes,包含这个元素全部子元素的数组: 2,nodeType, 元素节点的nodeType属性值是1:  属性节点............................2:  文本 ...

  8. C++静态库与动态库(简介)

    C++静态库与动态库 这次分享的宗旨是——让大家学会创建与使用静态库.动态库,知道静态库与动态库的区别,知道使用的时候如何选择.这里不深入介绍静态库.动态库的底层格式,内存布局等,有兴趣的同学,推荐一 ...

  9. erlang supervisor说明

    Supervisor Behaviour是一个用来实现一个supervisor进程来监控其他子进程的模块 子进程可以是另一个supervisor,也可以是一个worker进程. worker进程一般使 ...

  10. PHPExcel 多工作表 导入

    //参数初始化 $filePath = ''; if ($_FILES["file"]["error"] > 0) { returnJSON(ERROR_ ...