servlet中的cookie、session、servletContext简单操作

同一用户的不同页面共享数据
1、cookie(小甜饼)
2、sendRedirect跳转(最简单的方法)
3、session技术
4、隐藏表单提交



cookie实在客户端,session在服务器,一个程序只有一个session空间,即一个ie只有一个session空间,不管多少页面,而如果打开两个ie就会有不同的session空间。





得到session:
HttpSession se = requst.getSession(true);
向session中添加元素:
se.setAttribute(String name,Object value);
从session中得到某个属性
String name = se.getAttribute(String name);
从session中删除某个属性:
se.removeAttribute(String name);
session要慎用,因为会占用服务器内存!!
session是存在服务器里面的,供不同页面共享数据的,生命周期是间隔的,比如设定了20分钟,如果在20分钟内没有访问过session,那么session会失效,如果在20分钟内,比如19分钟时候再次访问了session,则session又开始重新计时;关机会导致session失效;


创建一个Cookie;
Cookie c = new Cookie(String name,String value);
将一个Cookie添加到客户端
response.addCookie(c);
从客户端读取Cookie到服务器
request.getCookie();
在程序中删除Cookie
c.setMaxAge(0);//设置为0即可以删除
这是,设置正数是cookie存在的最大时间,设置负数意味着这个cookie将不被存储,在浏览器退出时候将被删除
cookie在客户端,需要从客户端读取,浪费流量,生命周期是累计的,从创建开始就计时,知道时间结束,生命结束,关机不会对cookie造成影响。




从数据库中得到的ResultSet集合,你在使用这个集合中的数据的时候,不能关闭数据库连接这样很浪费资源,所以可以建立一个类,与数据库里面的那个表里面的一行数据进行对应,然后用ArrayList去存放这些类,这就正好和表一一映射了,而且可以及时关闭数据库连接,节省资源!




servletContext
可以想象成一个公共的空间,可以被所有的用户访问。session是一个用户存在服务器的,cookie是一个用户存在本地的,他们都只是针对单个用户的,比如要统计所有用户的访问量,则需要一个公共空间来支持,这个公共的空间就是ServletContext。
他的结构可以想象成一个表这个和session很相似,每一行就是一个属性
得到ServletContext:this.getServletContext();
添加属性:setAttribute(String name,Object obj)
得到值:getAttribute(String name);返回一个Object.
删除属性:removeAttribute(String name);
生命周期:ServletContext中的属性的生命周期从创建开始,到服务器关闭而结束;


servletContext中的数据会长期存在服务器中,会占用内存,因此我们不建议把大的数据往servletContext中添加。切记!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值