Конечно, у всех будет по-разному, но я бы посоветовал Spring MVC, поскольку это фреймворк на основе запросов, такой как Struts. Конечно, вы захотите узнать об основных вещах Spring, таких как Inversion of Control / Dependency Injection (но я считаю это плюсом ...) и все, что вы собираетесь использовать для доступа к базе данных (только JDBC? Hibernate? iBatis? и т. д.).
JSF основан на компонентах, что немного отличается от фреймворков на основе запросов. Если вы все же планируете пойти по пути JSF, я бы посоветовал взглянуть на Seam от JBoss. Это скорее промежуточная структура, в которой JSF используется в качестве конца веб-страницы / презентации, а EJB - в качестве серверной части. И почти все люди, которые его использовали, утверждают, что он делает JSF и EJB более удобными, чем они сами.
Но удачи вам, какую бы технологию вы ни выбрали. (Похоже, вам это понадобится - строгие сроки и клиент, который предписывает веб-фреймворки?)
Я бы предложил SpringMVC из-за временных рамок: