zoukankan      html  css  js  c++  java
  • Servlet基础知识(三)—— 会话机制Session,Session和Cookie的异同

    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);
    

      

                 

  • 相关阅读:
    Kubernetes服务目录的设计
    浅谈移动边缘计算
    kubernetes源码分析 -- kube-proxy
    openstack dpdk
    KVM irqfd and ioeventfd
    dpdk CUSE
    《springboot实战》丁雪峰翻译 笔记
    photoshop
    office word使用
    baidu地图api使用
  • 原文地址:https://www.cnblogs.com/wangerxiansheng/p/4122620.html
Copyright © 2011-2022 走看看