web.xml - дескриптор развертывания. На самом деле это не работает, сервер (контейнер сервлетов) читает этот файл, чтобы узнать, что нужно вашему приложению (какие фильтры создавать, сервлеты, параметры конфигурации и т. Д.).
Рассмотрим CGI на секунду. В CGI у вас есть код, который выполняется и выводит HTML. Эквивалентом этого в Java является Servlet . У вас есть код Java, который включает HTML.
JSP - это сервлет, вывернутый наизнанку. У вас есть HTML, который включает в себя код Java. При «выполнении» JSP сервер фактически выворачивает его наизнанку и преобразует в сервлет.
Затем выполняется сервлет, а не JSP.
P.S. Это, конечно, упрощенное описание, гораздо больше происходит за кулисами.