hadrian13吧 关注:4贴子:159
  • 4回复贴,共1
Jsp学习笔记


IP属地:湖北1楼2021-06-19 12:07回复
    session机制
    客户端第一次请求服务端时,服务端会产生一个session对象(用于保存该客户的信息);
    并且每个session对象都会有一个唯一的sessionID(用于区分其他session);
    服务端由会产生一个cookie,并且该cookie的name=JSESSIONID,value=服务端sessionID的值;
    然后 服务端会在 响应客户端的同时 将该cookie发送给客户端,至此客户端就有了一个cookie(JSESSIONID);
    因此客户端的cookie就可以和服务端的session一一对应(JSESSION-sessionID)
    session在用户登录的时候创建


    IP属地:湖北2楼2021-06-19 12:07
    回复
      2025-05-16 03:35:10
      广告
      public Cookie(String name , String value)
      String getName():获得name
      String getValue():获取value
      void setMaxAge(int expiry);最大有效期 (秒)
      服务端准备Cookie:
      response.addCookie(Cookie cookie)
      页面跳转(转发,重定向)
      客户端获取cookie:request.getCookies();
      a.服务端增加cookie:response对象;客户端获取对象:request 对象
      b.不能直接获取某一个单独对象,只能一次性将全部的cookie拿到
      通过F12可以发现 除了自己设置的Cookie对象外,还有一个name为JSESSIONID的cookie


      IP属地:湖北3楼2021-06-19 12:07
      回复
        客户端第二/n次请求服务端时:服务端会先用客户端的cookie中的JSESSIOINID 去服务端的session中匹配sessionID,如果匹配成功(cookie 的jsessionid和 session的 sessioinid),说明此用户不是第一次访问,无需登录
        例子:
        客户端:顾客
        服务端:商场存包处
        顾客第一次存包,商场判断此人之前是否存过包(通过你手里是否有钥匙)
        如果是新顾客(没钥匙),分配一个钥匙给该顾客,钥匙会和柜子一一对应;
        第二/n次 存包,商场判断此人是之前已经存过包(通过你手里是否有钥匙)
        如果是老顾客(有钥匙),则不需要分配;该顾客手里的钥匙会和柜子自动一一对应。


        IP属地:湖北4楼2021-06-19 12:15
        回复
          session总结:
          session存储在服务端
          session是在同一个用户(客户)使用时共享
          客户端第一次请求服务端时,服务端会产生一个sessionid并赋值给cookie的jsessionid然后发送给客户端。最终通过session和sessionid的一一对应关系匹配
          session方法:
          String getId():获取sessionid
          boollean isNew():判断是否是新用户(第一次访问)
          void invalidate():使session失效(退出登录、注销)
          void setMaxInactiveInterval(秒):设置最大有效 非活动时间
          int setMaxInactiveInterval(秒) :获取最大有效 非活动时间


          IP属地:湖北5楼2021-06-19 14:32
          回复