Есть два отдельных вопроса, заданные в посте, я буду отвечать на них соответствующим образом:
1) я рекомендовал бы использовать шаблонный движок, который интегрируется с JSP.
Apache Tile s подходит для этой категории. Используя эту структуру, вы можете определить шаблон, который содержит общие разделы для заголовков, нижних колонтитулов, макетов тел и меню. Кроме того, он поддерживает производные шаблоны через наследование.
2) Кэширование: поскольку вы хотите загрузить значения из базы данных, чтобы сделать меню динамическим, кеширование и предварительное заполнение меню минимизируют время загрузки страницы. Это должно быть сделано на стороне сервера.
Отдельный поток/процесс должен быть ответственным за периодическое заполнение и обновление кеша.
С точки зрения чистого кода шаблон JSP или Tiles не должен вызывать вызовы базы данных. Вместо этого страница должна взаимодействовать с DAO/компонентом, чтобы разделить проблемы и убедиться, что шаблон MVC не нарушен.
Полезные ссылки: плитки Example Thymeleaf - альтернатива Плитки
SiteMesh это путь –
http://stackoverflow.com/questions/4439651/sitemesh-or-tiles: Кажется SiteMesh не имеют активное развитие. –