J2EE中session的理解

session的理解

  • Java Servlet API引入session 机制来跟踪客户的状态。
  • session指的是在一段时间内,单个客户和web服务器之间一连串的交互过程,简单说就是一个会话,在一个session中,一个客户可能会多次请求同一个网页,也可能请求多个不同服务器资源,例如:在一个邮件系统应用中,从一个客户登录到邮件系统,到写信,收信和发信等,到最后退出邮件系统,整个过程为一个session;再例如:大家在网上购物的时候,从购物到最后的付款,整个过程也是一个session。

session的使用

  • 获取请求的session
HttpSession session=request.getSession();//等同于getSession(true)
HttpSession session=request.getSession(true);//若存在会话则返回该会话,否则新建一个会话。
HttpSession session=request.getSession(false);//若存在会话则返回该会话,否则返回NULL
  • 获取session ID
    任何连接到服务器上的用户,服务器都会为之分配唯一的一个不会重复的Session ID,Session ID是有服务器统一管理的,人为不能控制。长度为32
    session.getId();//获取session ID,长度为32位
  • 判断是否是新建立的session
    boolean isNew();
  • 获取session创建的时间
    session.getCreationTime();
  • 获取用户最后操作时间
    session.getLastAccessedTime();
  • 将对象存到session中
    public void setAttribute(String name,Object value)
  • 获取session中存的Object对象
    public Object getAttribute(String name)
  • 将键值为key的对象从session中删除
    public void removeAttribute(String name)
  • session的销毁
    session.invalidate();

session与cookie的区别

  • session将信息保存在服务器上,cookie保存在客户端上
  • session比cookie更安全,session比cookie更占资源
  • session使用cookie的机制,如果cookie被禁用,那么session也无法使用,因为session ID是以cookie的形式保存在客户端的内存当中。
    解决方法:可以通过url重写,来保证session的有效性
response.encodeURL(request.getRequestURL().toString());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值