Ответ зависит от вашего приложения, но в целом вы должны предпочесть иметь некоторый уровень обслуживания между внешним интерфейсом (страницы JSP) и базой данных. Это позволяет изменять детали реализации базы данных (например, какая база данных используется и какие запросы используются для извлечения и изменения данных) без изменения страниц JSP.
Пользовательский интерфейс (ваши страницы JSP) должен быть связан с отображением информации и должен быть изолирован от деталей базы данных. Например, в идеальной ситуации, если вы решите изменить базу данных с DynamoDB на MongoDB, страницы JSP не должны изменяться. Вместо этого часть уровня обслуживания, которая напрямую взаимодействует с базой данных, должна измениться, но часть уровня обслуживания, которая взаимодействует со страницами JSP, должна остаться прежней.
У этого подхода есть одно предостережение: не стоит вводить косвенность ради этого. Общая цель программного обеспечения - максимально эффективно решить проблему. Если это небольшое приложение или прототип, то внедрение уровня обслуживания может оказаться более чем необходимым. С другой стороны, если это приложение корпоративного уровня, внедрение уровня обслуживания может сэкономить вам и вашей компании много времени в будущем и создать гораздо более расширяемую архитектуру. Цель должна состоять в том, чтобы решить проблему как можно эффективнее, а не применять шаблон или косвенное обращение, потому что это то, что все делают .