关于ServletContext存贮数据的问题

614次浏览

ServletContext,是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,其才释放。通常用来存放一些不常被改变的数据,这样可以减少数据库的压力,同时也能节省系统内存。放在ServletContext中的数据可以被所有用户访问。但是Servlet本身是线程安全的,也就是说如果有用户在访问ServletContext中的数据的时候,是不能对其进行修改操作的,如果修改,可能会操作不成功。

这时就用到了synchronized线程锁。如下:

synchronized(getServletContext()){ 
    getServletContext().setAttribute("foo", "22"); 
}

如果使用doGet()、doPost()方法,则不需要加如上方法。

当然如果确定数据不会再被修改,则同样不需要加上。注意!切记。

如果您觉得本文对您的学习或工作有所帮助,您可以打开支付宝,对我的博客进行赞助:
我的支付宝
如果您觉得仍有疑问 OR 发现我的博客中有不正确或侵权的内容,您可以打开手机QQ扫描下面的二维码,联系我本人(备注请注明来自博客):
我的QQ