zoukankan      html  css  js  c++  java
  • servlet读取cookie问题

    String sessionid = request.getSession().getId(); // 取得当前的session id
    ckSessionid = new Cookie("sessionid", sessionid);
    ckSessionid.setMaxAge(60 * 10 * 1000);
    ckSessionid.setPath("/");
    response.addCookie(ckSessionid);
    

      这段大代码来源于自动登录。

      自动登录的思路是:1.当用户登录成功后,将用户名和sessionid保存到cookie和数据库各一份;2.为了达到自动登录,就需要拦截每个请求,包括页面,这个时候,我们使用过滤器。过滤器的实现原理:首先,读取seesion。如果session中能得到用户信息,直接登录,如果sesssion中读不到信息,则从cookie中读取。再读不到,则转到登录。如果以够读取到,并且从cookie中读取到的信息和从数据库中读取的信息一致,则进行自动登录。

    for(int i=0;i<cookies.length;i++)
    {
    System.out.println("all cookie info:"+cookies[i].getName()+" "+cookies[i].getValue());
    }
    

      在读取cookie的时候,会出现一个问题。就是jsessionid读取到了,但是其它的就读不到了。

      

      这个时候你会发现path不同,原因也就出在path上。cookie默认读取“/”下的cookie值。所以seseionid 和 autologinuser就读不到了。

      解决方案:

      

      

  • 相关阅读:
    关于BFS
    关于bitset
    关于线段树(数组和指针两种实现方法)
    关于RMQ问题
    浅谈树状数组
    洛谷—— P3865 【模板】ST表
    洛谷—— P3807 【模板】卢卡斯定理
    2017-10-29-afternoon-清北模拟赛
    2017-10-29-morning-清北模拟赛
    51Nod 1526 分配 笔名
  • 原文地址:https://www.cnblogs.com/liuyq/p/3599723.html
Copyright © 2011-2022 走看看