An arraylist in your DAO? This really doesn't sound right. The DAO class itself should not hold any data. You should also not store the data in session but just let the client load it on every fresh HTTP request. Any performance hogs you encounter with this are to be solved by using a connection pool and if necessary a second level cache.
As to the triggering one or other on updates, there are several ways to achieve this. Repopulating "an arraylist" in the server side makes at least no sense. The request has to come from the client side. Ajax polling is indeed one of the best ways. Another way is to just headlessly refresh the JSP page at intervals (e.g. once a minute) using a <meta http-equiv="refresh" content="60">
header so that it re-queries the data from the database. This is the easiest, but least user friendly.
As to the frameworks, I'd suggest jQuery and/or JSF for this.