日期:2014-05-19  浏览次数:20687 次

servletContext和cache的区别
servletContext是一个应用级的全局对象,好像cache(缓存)也是,
为什么还要另外开发缓存机制呢?
两者有什么区别吗?

------解决方案--------------------
ServletContext由web应用中所有的servlet和jsp页面共享!而且它还提供setAttribute和getAttribute方法,你可以存储与指定键相关的任意数据!cache有这些功能吗?
------解决方案--------------------
不一样哦。

servletContext目的只是为了放一些应用都可以共享访问的全局性的东西,容器初始化时的一些轻量级信息等等。

而cache的主要目的是为了“性能”,为了缓解磁盘I/O或者网络传输I/O,来以内存空间换时间的办法,它需要设计良好的缓存替代算法,命中率、共享访问、假脱机、缓存失效等等很多方面。

不能把servletContext当缓存来用的。servletContext和cache相同的地方只有一点,他只是在内存中共享访问一些数据而已。
------解决方案--------------------
希望还有大虾能讲的更深刻点,帮助理解~
------解决方案--------------------
我现在的理解是这样,就是现在java中的所谓cache机制,实际就是通过static变量来实现的 
1、是不是因为这种机制比较类似于cache的原理,所以就把它叫做cache机制呢? 
2、static变量和web服务的生存期是相同的,对吗?


肯定错误!使用static的不是Cache机制,static只是一个全局共享的资源。

Cache是需要更复杂的策略,需要考虑Cache容量、命中、更新替换、定时失效、集群同步等一大堆问题

static就是的生存周期是类的存在时间,与web应用生存不一定一样。