Cookie&&Session技术

5 篇文章 0 订阅
  • 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话

  • 存储无状态的客户端信息

    • Cookie技术:将客户端信息存储在客户端本地
    • Session技术:将客户端信息存储在服务器

Cookie

服务器端向客户端发送一个Cookie

  1. 创建一个Cookie:
Cookie cookie = new Cookie(String cookieName,String cookieValue);
  1. 发送Cookie:
reponse.addCookie(cookie);
  1. 服务器发来的response带有
    Set-Cookie:CookieName=CookieValue
    字段
  • 设置Cookie在客户端的持久化时间,如果不设置,则一次会话后,Cookie消失。设置时间为0,删除客户端同名Cookie。
cookie.setMaxAge(int seconds);//秒
  • 设置Cookie设置携带的路径,如果不设置携带路径,那么该Cookie信息会在产生该Cookie的路径下出现。
cookie.setPath("");

获取客户端发来的Cookie

  1. 客户端发来的request带有
    Cookie:CookieName=CookieValue;

  2. 获得Cookie

//获得所有Cookie
Cookie[] cookies = request.getCookies();

if (cookies != null){
    for(Cookie cookie:cookies){
    //获得cookie的名称
    String cookieName = cookie.getName();
    //获得cookie的值
    String cookieValue = cookie.getValue();
    System.out.println(cookieName + "=" + cookieValue);
    }
}

Session

Session技术基于Cookie技术,Cookie存储Session编号–JESSIONID

  1. 获得Session对象,创建属于该客户端特有的session
/**
 *如果该客户端在此服务器不存在session,那么就会创建一个新的session对象
 *如果该客户端在此服务器存在session,就将已经存在的session返回
 */
HttpSession session = request.getSession();
String id = session.getId();//该session对象的编号id
  1. 向Session中存取数据
//存储数据
session.setAttribute(String sessionName,String sessionValue);

//获得数据
String sessionValue = (String) session.getAttribite(String sessionName);
  1. Session对象的生命周期
  • 创建:第一次request.getSession()时创建
  • 销毁:
    • 服务器(非正常)关闭
    • session过期/失效(默认30分钟),从不操作服务器端开始计时
    • 手动销毁session
      session.invalidate();
  1. 持久化JSESSIONID
HttpSession session = request.getSession();
String id = session.getId();//该session对象的编号id
Cookie cookie = new Cookie("JSESSIONID",id);
cookie.setMaxAge(60*20);
reponse.addCookie(cookie);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值