JavaWeb学习-会话管理系列-9-Session练习-HttpSession API简介

    xiaoxiao2022-07-03  146

           前面一篇模拟购物车实现过程,我们对HttpSession有了一定的了解。上一篇已经使用了req对象得到session对象方法和设置属性和得到属性方法。本篇来简单阅读HttpSession接口文档,重点介绍几个常用的方法。

     

    1.为什么要学习HttpSession

    1)它也是一个域对象:session servletContext request,目前学了三个域对象 2)同一个会话下,可以使一个应用的多个资源共享数据 3)cookie客户端技术,只能存字符串,HttpSession服务器端技术,它可以存对象

    前面我们用cookie实现历史纪录中,存的是Book的id,是一个字符串,上一篇再session实现购物车文章中,我们存的是一个Book对象。这样来说,cookie只能存少量数据,session可以存多一些。 简单说以下cookie和session的区别:cookie存数据不安全,session安全。两个都有时间有效期,cookie默认是浏览器关闭,cookie被删除,session默认是30分钟有效期。

     

    2.常用Session对象方法

    把数据保存再HttpSession对象中,该对象也是一个域对象。  void setAttribute(String name, Object value);  Object getAttribute(String name);  void removeAttribute(String name);  HttpSession.getId();    setMaxInactiveInterval(int interval) 设置session的存活时间  invalidate() 使此会话无效

     

    3.代码使用getId()方法

    前面文章说过,多个session保存在服务器端,服务器怎么就知道哪个session对应哪个浏览器呢?靠的就是唯一的session id,所以我们来代码中打印这个session id来看看,如果多个servlet的session id是一样,说明是同一个session对象。

    全部代码参考前面一篇,在AddCart.java和ShowCart.java 分别添加以下得到session id 代码,

    //拿到session id out.print(ss.getId() + "<br/>"); // showCart.java //拿到session id out.print(req.getSession().getId() + "<br/>");

    运行测试下

    添加购物车页面session id

    显示购物车页面session id

    可以看到两个都是同一个session id: C4C0EF90053D6C76770EA1975BC54AF2

    最新回复(0)