Веб-компонент - это не что иное, как программный компонент, который обслуживает входящий HTTP-запрос и предоставляет какой-то (надеюсь, действительный) ответ.
Большинство, если не все фреймворки Java Web, основаны на базовой технологии сервлетов Java. Сервлет - это постоянный фрагмент кода, который получает абстракцию HTTP-запроса и дает HTTP-ответ. Я говорю «упорный», потому что он обычно долгоживущий по многим связям (в отличие от старых переходных процессов на основе CGI, которые были около 10-15 лет назад, когда сервлеты были придуманы).
В дополнение спецификация сервлетов включает в себя:
- Крючки для создания и уничтожения сервлеты;
- Автоматическое управление сеансом, в том числе в кластерных средах;
- Выход в ответ использует стандартную библиотеку ввода-вывода Java;
- Сервлеты имеют достаточно полные абстракции для запроса и ответа;
- Поддерживается конфигурация на уровне приложений (постоянная); и
- Данные могут быть разделены по-разному (страница, запрос, сеанс и приложение).
JSP - это особый вид разметки, который JSP-совместимый веб-контейнер «скомпилирует» в сервлет-код.
Struts (1 & 2), Spring MVC, JSF, Seam, Wicket, Tapestry и т. Д. - все веб-фреймворки, которые создаются поверх спецификации сервлетов. Их буквально десятки, и все они разные.