Session原理及验证码案例 您所在的位置:网站首页 session验证码有效期 Session原理及验证码案例

Session原理及验证码案例

2024-07-01 07:48| 来源: 网络整理| 查看: 265

概念:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中。HttpSession就是一个对象

快速入门:

获取HttpSession对象 HttpSession session = request.getSession();使用HttpSession对象 Object getAttribute(String name) void setAttribute(String name,Object value) void removeAttribute(String name)

原理: 服务器怎么确保在一次会话的范围内多次获取的Session对象是同一个??? Session是依赖于Cookie的,假如在两个资源中都获取Session,那么第一次获取的时候会在内存中创建一个新的Session对象,并赋一个id给它,在响应的时候会返回一个set-cookie的响应头:key为JSESSIONID,value为xxx,服务器就会保存这个信息。在访问下面的资源的时侯,就会以cookie的形式带着JSESSIONID去访问,服务器自动获取这个cookie信息,并去内存中查找是否有id为xxx的session对象,找到了就把这个已有的session对象返回给当前需要获取的session。

细节:

当客户端关闭后,服务器不关闭,两次获取Session是否为同一个? 默认情况下:不是同一个,由上面的原理知道不是。 如果需要相同:可以创建一个cookie,key为JSESSIONID,value为session.getId(); 再设置一下最大存活时间 * Cookie c = new Cookie(“JSESSIONID”,session.getId()); * c.setMaxAge(60 * 60); * response.addCookie©;

客户端不关闭,服务器关闭后,两次获取Session是否为同一个?

不是同一个,服务器关闭后session对象肯定被销毁了,第二次再生成的session对象基本上不可能和原来的一样。但是要保证数据不会丢失。tomcat自动帮助我们完成钝化和活化,但是idea只能钝化不能活化,因为重启服务器的时候,idea会将work目录删了重新建一个,这样愿来被钝化的文件就没了。session的钝化:在服务器正常关闭之前,将session对象系列化到硬盘上session的活化:在服务器启动后,将session文件转化为内存中的session对象即可

session什么时候被销毁

服务器关闭session对象调用方法invalidate();session默认失效时间30分钟 可以修改,在web.xml中添加下面的配置来覆盖原来tomcat的配置 30

Session特点

session用于存储一次会话的多次请求的数据,存在服务器端session可以存储任意类型,任意大小的数据


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有