Chinaunix首页 | 论坛 | 博客
  • 博客访问: 402814
  • 博文数量: 114
  • 博客积分: 7010
  • 博客等级: 少将
  • 技术积分: 1395
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-05 17:54
文章分类

全部博文(114)

文章存档

2011年(2)

2009年(1)

2008年(111)

我的朋友

分类: Java

2008-07-10 22:38:34

   JSP作用域通信对象-session
   jsp session对象表示用户的会话状况,用此项机制可以轻易识别每个用户,能保存和跟踪用户的会话状况。例如,购物车最常使用session的概念,当用户把商品放入购物车时,他在去添加另外的商品到购物车时,原先选购的商品仍然在购物车内,而且用户不用反复去做身份验证。但如果用户关闭Web浏览器,则会终止会话。
   session对象存储有关用户会话的所有信息。session对象用于在应用程序的网页之间跳转时存储有关会话的信息。
   session对象最常用的方法如下:
1.void setAttribute(String name,Object value):以键值的方式将一个对象的值存放在session中。
2.void getAttribute(String name):根据名称去获取session中存放对象的值。
   这里要提出 session的作用域是仅次于application的
  
   Jsp的session是使用bean的一个生存期限,一般为page,session意思是在这个用户没有离开网站之前一直有效,如果无法判断用户何时离开,一般依据系统设定,tomcat中设定为30分钟.
我们使用seesion功能,可以达到多个jsp程序从操作同一个java bean, 那么这个java bean可以作为我们传统意义上的"全局变量池".(在java中我们可以使用static静态化一个变量和方法,使用singleton唯一化对象.)
在项目实践中,我们Jsp程序中很多参数需要从数据库中读取,有的参数实际读取一次就可以,如果设计成每个用户每产生一个页面都要读取数据库,很显然,数据库的负载很大,同时也浪费时间,虽然可能有数据库连接池优化,但是尽量少使用数据库是我们编程的原则
 
   我们在使用session进行存储数据时,要考虑该数据是否何时被放入session中,如果是当前用户经常使用的数据,则可以放入session。如果用户只用了一次,不再使用或者偶尔使用数据,则不要放入session中,因为这样会增加系统资源的浪费!

 
阅读(466) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~