JavaEE day7:Cookies和Sessions 2

关于请求的提交方式

保存会话数据的两种技术

  • Cookie:客户端技术
    程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据。这样,web资源处理的就是用户各自的数据了。
  • HttpSession:服务器技术
    利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的HttpSession对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。

  • seesion的核心思想:在服务器端存储用户的会话数据,放在浏览器独享的空间中

  • session中的确为每一个浏览器开辟了独享的空间,并且给每一片独享空间分配了一个唯一标识,浏览器中也存有这片独享的空间对应的服务器上的唯一标识。
  • session是一个域对象
  • 在web开发中,服务器可以为每个用户浏览器创建一个会话对象(sessionduixiang ),服务端把用户数据写到用户浏览器独占的session中,当前用户使一个浏览器独占一个session对象时(默认情况下)。因此,在需要保存用户数据时,伏虎器程序可以用session保存。同一浏览器可以从用户的session中取出该用户的数据,为用户服务。
  • 数据保存在服务器的session对象中,内存和浏览器怎么拿到JsessionID呢?
  • session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象
  • 跟cookie一样从request报文中拿到session数据?
  • 并不是,而是通过报文里的JsessionID去服务器内存里查找。
  • Session和cookie的主要区别在于
    Cookie是把用户的数据写给用户的浏览器(在浏览器里边保存)

Session Demo

  • 使用Session完成简单的购物功能
    • 首页 显示所有商品列表
    • 每个商品可以查看商品详情
    • 在商品详情页可以把商品加入到购物车
    • 可以查看购物车里面有多少个商品了

1、访问动态生成的首页
2、点击首页中所列出的商品的超链接,查看商品详情(超链接携带商品id参数)
3、在商品详情页面点击加入购物车这个超链接,跳转到专门处理加入购物车这个工作的servlet
4、该servlet从session取出之前的购物列表信息,把新添加到购物车的商品,添加到session的购物列表中
5、点击查看购物车,来查看购物车中当前的所有商品

代码实在太多,这里放不下。

session的生命周期

  • session何时死亡呢?
  • 让tomcat,在服务器重启或者重新部署web应用的时候能够将我们的session保存,其实是将session对象做了序列化,在tomcat重启的时候做了反序列化。
    这里写图片描述
  • 让我们在session中存储的购物列表中的商品的bean类实现Serializable接口
    public class Product implements java.io.Serializable
  • 应用的反序列化:
    进入tomcat服务器后台,找到当前应用
    并点击stop,然后去用户文件夹-。inteljIdea2017.3-system-tomcat-haha-sessions-haha中找到Sessions.ser
  • 同时,当内存紧张时,tomcat将用户不经常使用的session对象序列化;
session死亡条件
  • 我们的tomcat默认的是session无任何客户端使用超过30分钟(空闲),那么就会死亡。
    这里写图片描述
  • 可以在tomcat的/conf/web.xml中配置
  • 同时通过代码使session死亡
    这里写图片描述

禁用cookie后的请求报文

那么我们需要把JsessionID保存在url中

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值