Пожалуйста, не смотрите в JSF; это сверхпрочная свая для вашей задачи.
Конечно, вы можете вызывать свой java-код из javascript, вы можете сделать его действительно простым с помощью чего-то вроде DWR.
Однако для вашего проекта я бы предложил GWT, так как тогда вы имеете дело только с Java, и он сгенерирует для вас javascript, html и css.
Для вашего проекта вам на самом деле не нужна инфраструктура уровня "предприятия", такая как spring или fullstack JavaEE, вы можете оставить ее настоящей oldschool только с JSP и html / javascript. Однако, на мой вкус, это слишком ненадежно, так что выбирайте GWT.
С GWT вы в основном настраиваете его, определяете свой модуль, точку входа (посмотрите на мир приветствия), а затем вы добавляете макет на свою страницу, как что-то, куда нужно поместить окно поиска и окно результатов. Затем вы вызываете свой другой Java-код и классы оттуда, как обычно.