Просто чтобы добавить веские доводы, опубликованные другими коллегами, в частности, относительно того, «бизнес-логика должна быть исключена из JSP».
В двух словах на работе у нас было много JSP, где бизнес-логика была закончена, и смотреть на нее было довольно грязно. Существовала логика для получения объектов из сеанса / запроса и выполнения определенных проверок. Один простой пример - создание различных заголовков страниц в зависимости от определенных условий в JSP.
То, как эта логика была перенесена с нашей стороны, состояло в том, чтобы представить объект Page Builder / Composer, который берет все необходимые детали для построения конкретной страницы, проверяет и устанавливает все правильные поля в объекте bean-объекта страницы. Этот объект бина страницы затем устанавливается по запросу, например, для Это означает, что вся предыдущая логика, которая была бы у вас в JSP, теперь перемещена в объект компоновщика страниц / компоновщика, а затем, что наиболее важно, вы можете написать unit tests для тестов! если правильные значения установлены в бобе страницы.
final SimplePageBuilder pageBuilder = new SimplePageBuilder(object1);
request.setAttribute("TestBean", pageBuilder.buildPage());
Метод buildPage возвращает объект bean-объекта страницы, а в jsp простой пример getTitle просто возвращает заголовок (легко читаемый, поскольку логика абстрагирована).