session理解

服务器端会话技术:Session(将数据存放在服务器端对象中)*共享数据:一次会话中共享数据

       *共享数据:一次会话中共享数据
        (1)、获取HttpSession对象
            HttpSession session=request.getSession();
        //**是request对象获取session
        (2)、使用HttpSession对象:
            Object getAttribute(String name)
            void setAttribute(String name,object  value)
            void removeAttribute(String name)

实现原理

session的实现是依赖于cookie。当客户端第一次访问服务器端时候,服务器端会自动创建一个session对象,并且响应一个set-cookie头到客户端,该set-cookie头携带了服务器端创建session的id,当下一此客户端再次访问服务器其他资源的时候,会带着cookie头向服务器做出请求,服务器识别cookie中的session的id找到对应的session实现数据的共享

一些细节

(1)、客户端关闭后,服务器端不关闭,两次获取的session是否是同一个?
不是,默认情况下不是。若要实现session持久化,需要创建一个cookie,将session的id值放到cookie中。再设置cookie的存活时间

HttpSession session=request.getSession();
//**设置session的值
session.setAttribute("name","ljiayu");
//**创建cookie使得session持久化
Cookie cookie=new Cookie("JSESSIONID",session.getId());
//**设置cookie的存活时间
cookie.setMaxAge(60*30);
response.addCookie(cookie)

//**其中cookie的name值必须为JSESSIONID
(2)、当客户端不关闭时,服务器关闭后,两次获取session是同一个吗?
不是同一个,由于之前在服务器端的session在服务器关闭时,之前创建的session别销毁了
实现session中的数据不丢失:
session钝化:服务器正常关闭之前,将session对象序列化到硬盘
session活化:服务器启动后将session文件转化为内存的session对象中。
//**idea只能钝化不能活化,但是tomcat可以,以后都将项目部署到tomcat服务器上面。在tomcat中部署了项目后,关闭服务器tomcat会将服务器上的session存放到tomcat的work目录下,等tomcat再次启动会将该文将加载进内存
(3)、session的失效时间?
*服务器被关闭时:
*调用方法invalidate()自我销毁
*默认三十分钟自动被销毁
可以选择性配置

30

                    在tomcat的配置文件中配置

    *特点:
      (1)、session用于存储一次会话的多次请求数据,存在服务器端
      (2)、session可以存储在任意类型,任何大小的数据
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值