美文网首页
session 持久化和Cookie创建 会话技术

session 持久化和Cookie创建 会话技术

作者: 随心者随心行 | 来源:发表于2018-04-24 17:20 被阅读0次

会话技术

  1. 存储客户端的状态
  2. 会话技术,记录会话客户端的状态与数据

Cookie:数据存储在客户端本地的。减少服务器压力。安全性不会
Session:将数据存储到服务端,安全性能好,增加服务器压力

服务器端向客户端发送一个Cookie
1. 创建Cookie:

          Cookie cookie = new Cookie(name,value);


  cookie中不能存储中文
  1. 设置持久化时间
    如果不设置持久化时间,cookie会存储在浏览器内存中,浏览器关闭cookie信息销毁,如果设置持久化时间,cookie信息会被持久化到浏览器的磁盘文件里

cookie.setMaxAge(时间)

3.向客户端发送cookie;


 response.addCookie(cookie)

cookie代码


    //1.创建对象
    Cookie cookie = new         Cookie("name","zhangsan");
    //设置持久化时间
    cookie.setMaxAge(60*10000);
    //设置cookie的鞋带路径
    cookie.setPath("/SendCookiesServlet");
    //删除Cookie信息。将Path路径设置与要删除的cookie的路径一直
      //将持久化时间设为0即可


    //2.发送至服务端   响应头的形式
    response.addCookie(cookie);

显示用户的上次访问时间分析


 //获得当前时间
    Date date = new Date();
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String currenTime =format.format(date);
    //1.创建Cookie 记录当前的最新的访问时间
      Cookie cookie = new Cookie("lastAccessTime",currenTime);
      cookie.setMaxAge(60*10*500);
      response.addCookie(cookie);

      //第二次访问获得,客户携带的cookie
    String lastAccessTime=null;
    Cookie[] cookies =request.getCookies();
    if (cookies!=null){
        for (Cookie coo:cookies){
            if ("lastAccessTime".equals(coo.getName())){
                lastAccessTime = coo.getValue();
            }
        }
    }


    if (lastAccessTime==null){
        response.getWriter().write("第一次访问欢迎");
    }else {
        response.getWriter().write("您的上次登录时间"+lastAccessTime);
    }

Session

session技术是将数据存储在服务器端的技术,会为每一个客户端都创建一块内存空间存储客户的数据。但客户端需要每次都携带一个标识ID去服务器中寻找属于自己的内存空间。所以说Session的实现基于Cookie。

session技术是基于cookie ----cookie技术
存储session编号 -SESsIONID

1.怎样获得属于本客户端的Session对象(内存区域)?

  HttpSession session = request.getSession();

实质就是根据JSESSIONID判断该客户端是否已经存在session

2.怎样向Session中存取数据(Session 也是一个域对象)

session.setAttribute
session.getAttribute
session.removeAttribute

3.session对象的生命周期

创建:第一次执行request,getSession()时创建
销毁:
- 服务器关闭时
- session 过期、失效 默认30分钟

    时间的起算点,
      从不操作服务器端的资源开始计时
 
可以在工程web.xml中进行配置
 <session-config>
        <session-timeout>30</session-timeout>
   </session-config>

 手动销毁
  session.invalidate();

作用范围:
默认在一次会话中。一次会话中任何资源公用一个session对象

 浏览器关闭,session就销毁了吗?
 
不对。

//获取session对象的编号id
    String id = session.getId();

    //手动创建一个存储JSESSIONID的cookie 设置cookie设置持久化时间
    Cookie cookie = new Cookie("JSESSIONID",id);
    
    cookie.setMaxAge(60*60);

会话技术
Cookie技术:存到客户端
Session技术:存到服务器端。借助cookie存储JSESSIONID

相关文章

  • session 持久化和Cookie创建 会话技术

    会话技术 存储客户端的状态 会话技术,记录会话客户端的状态与数据 Cookie:数据存储在客户端本地的。减少服务器...

  • flask会话技术详解及模板使用

    一、会话技术cookie 概述 设置cookie 获取cookie 删除cookie 二、会话技术session ...

  • flask02

    一、会话技术cookie 概述 设置cookie 获取cookie 删除cookie 二、会话技术session ...

  • Day_06_Cookie+Session

    会话技术 Cookie Session技术

  • 03-flask会话技术

    一、 会话技术cookie 获取cookie 删除cookie 二、 会话技术session 一、 概述 如果要使...

  • day_1_12 cookie&session

    cookie&session都是会话跟踪技术. Cookie Cookie: 是由服务器创建, 然后通过响应头发送...

  • Cookie和Session的区别

    Cookie和Session的区别? 1、Cookie和Session都是会话技术,Cookie是运行在客户端,S...

  • Day16--Cookie&Session&JSP

    会话技术 Cookie JSP:入门学习 Session

  • 16.Cookie&Session

    主要内容 会话技术1. Cookie2. Session JSP:入门学习 会话技术 Cookie: ​2. 不同...

  • Cookie入门

    会话技术 会话技术常用的有两种: Cookie技术,Session技术,这两种技术是有区别的. Cookie技术 ...

网友评论

      本文标题:session 持久化和Cookie创建 会话技术

      本文链接:https://www.haomeiwen.com/subject/frhjlftx.html