zoukankan      html  css  js  c++  java
  • Cookie ,Session

    会话技术

    从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话。会话技术就是记录这次会话中客户端态的状与数据的。

    会话技术分为Cookie和Session:

    Cookie:数据存储在客户端本地,减少服务器端的存储的压力,安全性不好,客户端可以清除cookie

    Session:将数据存储到服务器端,安全性相对好,但增加服务器的压力

    Cookie

    默认有效时间,一次会话中

    Cookie在传输中无法传中文

    创建Cookie对象:

    Cookie cookie=new Cookie("名","值");

    该cookie会以响应头的形式发送给客户端

     

    设置Cookie在客户端的持久化时间: 单位:秒

    cookie.setMaxAge(60*2); //时间到后自动清除

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

     

     

    设置Cookie携带路径

    cookie.setPath("/WEB07"); //只有访问

    如果不设置携带路径,那么默认产生该Cookie资源下的路径都携带

     

     

    发送Cookie给客户端

    response.addCookie(cookie);

    删除Cookie:

    用同名同路径的持久化时间为0的Cookie覆盖

    获取客户端携带给服务器的Cookie

    Cookie[]  cookie=request.getCookies();

    获取Cookie的name

    getName();

    获取Cookie的Value:

    getValue();

    Session

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

    Session对象的生命周期:

    创建:

    第一次执行request.getSession()时创建

    销毁:

    服务器关闭时

    服务器端的资源无任何操作30分钟

    时间可以在工程的web.xml中进行配置

    <session-config>

            <session-timeout>30</session-timeout>

    </session-config>

    手动销毁session

    session.invalidate();

    获得Session对象

    HttpSession session = request.getSession();

    获取JSESSIONID

    String id=session.getId();

     

    Session也是存储数据的区域对象,所以通用三个方法:

    session.setAttribute(String name,Object obj);  //存值

    session.getAttribute(String name);  //取值

    session.removeAttribute(String name);  //删除

    获取JSESSIONID

    String id=session.getId();

    当创建Session时会自动创建一个Cookie, name为JSESSIONID,值为随机产生的一串数,

    通过JSESSIONID找Session域内的值,当浏览器关闭再打开时,Cookie会重新创建,JSESSIONID

    的值也会变化,要想关闭浏览器在打开后还能找回原有的值就需要重新创建个同名Cookie设置持久化时间替代原有的Cookie

    代码如下:

    //获取Session

    HttpSession session=request.getSession();

    //获取JSESSIONID

    String id=session.getId();

    //向Session域中存数据

    session.setAttribute("goods", 123);

          

    //将JSESSIONID 持久化

    //手动创建Cookie

    Cookie cookie=new Cookie("JSESSIONID",id);

          

    cookie.setMaxAge(60*3);//设置持久化时间时间

    response.addCookie(cookie);//发送

     

    response.getWriter().write("JSESSIONID:"+id);

  • 相关阅读:
    VS 格式化代码 Ctrl + K, Ctrl + F
    VS NuGet使用
    VS书签的应用
    ASP.Net简单的交互案例
    英文书也没有那么难,跟着例子做,挺有意思的
    .Net强类型视图
    .Net视图机制
    .Net MVC小尝试
    ASP.Net MVC默认目录结构
    .Net中常用的几种ActionResult
  • 原文地址:https://www.cnblogs.com/hhthtt/p/10708624.html
Copyright © 2011-2022 走看看