JavaEE之Session理解

Session应用场景

在互联网生活中,通常大家在使用浏览器的时候会接触到session。由于HTTP的无状态性,也就是说,当打开浏览器输入http://www.bianxiaofeng.com网址,然后该请求会被服务器处理后,返回所请求的网页的内容,至此,整个Request/Response过程已经完全结束了。当你接下来访问网站的时候,网站服务器端是不认识你的。这就是无状态性。为了解决这个问题(比如在某个需要输入密码的网页登录,不能说每一次打开该网站的新的网页就要输入一次密码。对吧?)。此时session的作用就体现出来了。简单的说。就是让服务器知道你就是你。

面对无状态性的解决方案

Java Servlet 通过引入session机制来跟踪客户端的状态。当用户访问网站的时候,网站会分配给该客户端一个sessionID用于标识该客户端,至此,在接下来的一段时间内,用户可以请求不同的服务器资源。当网页被关闭的时候,服务器会释放掉这个ID。比如在线购物的过程,浏览物品,到添加购物车到付款完成关闭页面这整个过程就是一个session。

Session的使用

session的使用方式很多,常见的方式是使用jsp和servlet。

jsp的9大内置对象中就有session,所以在jsp页面可以直接使用。在servlet中,需要构建出session实例,然后才能使用。构建方式有两种:

        HttpSession session=request.getSession();
        HttpSession session=request.getSession(Boolean b);
        //参数为true:若会话存在就返回该对话,如果不存在就创建一个对话;
        //参数为false:若会话存在就返回该对话,如果不存在就返回null

常用方法

        session.isNew();//返回值为Boolean,判断是不是新创建的session
        session.setAttribute(String s,Object o);//在session范围内保存对象
        session.getAttribute(String s);//获取在session范围内保存的对象,一般涉及到cast强转
        session.removeAttribute(String s);//去除session范围内的键为s的对象
        session.getId();//返回sessionID,返回值为String
        session.invalidate();//使session立即失效,包括保存在session范围内的对象

总结

Session将信息保存在服务器端,而cookie保存在客户端,session比cookie安全,但是session更加占用资源。如果客户端禁用了cookie,那么服务器端的session也无法使用。这种问题的解决方案是重写url。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值