访问JSP中的(全局)变量,Servlet用于减少数据库调用



当我在J2EE中开发web应用程序时,我必须非常小心数据库调用。

我正在将图像存储在数据库(BLOB)中。

为了访问这些图像,我创建了一个servlet文件。

我将id作为GET方法传递给该文件。

为了显示图像,我需要调用servlet文件。

但是作为另一个数据库调用的servlet文件,我最担心的是。

例如:

如果在那个特定的jsp文件中,我想显示3行,我将调用1个来显示这些行,并调用另外3个来显示那些图像。

我有两个选项

  1. 创建一个全局变量,并在jsp和servlet中访问该变量
  2. 将数据库对象传递给会话变量,而不是创建全局变量

但对我来说,两者都不好。请提出一些建议。

如果你担心数据库的负载,你可能应该避免在其中存储图像。相反,将图像存储在磁盘上,并将其路径存储在数据库中。

这样,当您需要在一个页面中显示三个图像时,您可以执行一个查询来获取这三个图像的路径,并生成一个包含这三个路径的HTML页面。

如果您别无选择,只能将图像作为Blob存储在数据库中,并且您已经对应用程序进行了负载测试,并表明从数据库中获取图像会导致严重的性能问题,那么可以考虑使用一些应用程序缓存(如EHCache)来从数据库中删除负载。你也可以同时从数据库中获取这三个图像,并将它们存储在会话中,但你必须找到清理会话的方法,否则你的应用程序的内存会攀升得很快。

而不是多次访问数据库。只需编写一个查询,即可获得所需的所有行或所需的图像。并使用ArrayList显示所有图像行这将是一个简单得多的方法:)

相关内容

  • 没有找到相关文章