我有一个使用Java、JSP和Servlets实现的Web应用程序。每当数据库表中有更新时,我的DAO中的ArrayList应该被更新。是否有更好的解决方案?
解决方案:
解决方案:
- 在bean中创建一个线程并查询数据库,如果发现更新,则重新填充ArrayList。
- 从客户端使用轮询概念发送Ajax请求。
在你的DAO中使用ArrayList?这真的不太对。DAO类本身不应该持有任何数据。你也不应该将数据存储在会话中,而是让客户端在每个新的HTTP请求上加载它。如果你遇到了任何性能问题,可以通过使用连接池和必要时使用第二级缓存来解决。
至于在更新时触发其中一个或另一个,有几种方法可以实现。在服务器端重新填充“数组列表”至少没有意义。请求必须来自客户端。Ajax轮询确实是最好的方法之一。另一种方法是使用<meta http-equiv="refresh" content="60">
头,在间隔(例如每分钟一次)刷新JSP页面,以便从数据库重新查询数据。这是最简单但最不用户友好的方法。
至于框架,我建议使用jQuery和/或JSF。