session、cookie、ServletContext

一、session

    (1)session存储在服务器端,大小、类型不受限制

        1、HttpSession hs = request.getSession(true); //获取session,参数true表示如果没有session就创建一个session.

        2、hs.setAttribute("name", Value); //给session赋值

        3、String id = hs.getId(); //获取session的ID

        4、Date date = new Date(hs.getCreationTime()); //获取session的创建日期

        5、Date date = new Date(hs.getLastAccessedTime()); //获取该session最后一次被访问的日期

        6、Object obj = (Object)hs.getAttribute("name");

    (2)session使用时需要通过SessionID来获取,而这个SessionID是存放在客户端的cookie中的,假如你的浏览器关闭了cookie功能的话将不能使用session,解决的办法就是使用URL重写功能。URL重写其实就是对URL进行编码加密,客户端看不到真实的URL,而且它还有一个重要的功能就是每次URL重写完成之后都会将SessionID放置到URL中,这样每次服务器在获取相应的session时需要的SessionID就可以从URL中找到,而且URL还进行了加密,增强了安全性。

        1、<a href="<%=response.encodeRedirectURL("http://www.baidu.com/")%>">百度</a>

        2、response.sendRedirct(response.encodeRedirectURL("http://www.baidu.com/"));

    (3)session生命周期:hs.setMaxInactiveInterval(10*60); //Tomcat下默认为20分钟

二、cookie

    cookie 分为两种:一种是依赖于窗口的,一旦浏览器窗口关闭(进程退出),则cookie被清除。另一种cookie是有生命周期的,在规定的时间内会一直被保存。若不规定cookie的最大生命周期,则依赖于窗口。

    cookie是不可靠的,因为cookie是可以被禁用的,也可以被清除,所以核心业务逻辑应该使用更加稳定可靠的session,但我们可以依靠 Cookie 实现某些不是很重要的业务逻辑。

        1、Cookie cookie = new Cookie("name", Value);

        2、cookie.setMaxAge(5*60); //5分钟

        3、response.addCookie(cookie); //添加到客户端

三、ServletContext

    ServlerContext是WEBAPP的一个全局变量,整个系统只有一份,能存储所有用户都能访问的数据。经典应用:计算网站访问量

        1、ServletContext sc = this.getServletContext();

        2、sc.setAttribute("count", Value);

        2、Integer count = (Integer)sc.getAttribute("count");

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值