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

       前面一篇模拟购物车实现过程,我们对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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值