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应用生存不一定一样。