Для начала вам стоит плотнее ознакомиться с теорией, почитать как именно работают сервлеты, JSP и JSF. Прочитав, вы поймёте, что для их выполнения нужен как минимум web-контейнер. Два самых простых и популярных - это Apache Tomcat и Jetty. Их стоит скачать, установить на свой компьютер, почитать их документацию, поиграть с настройками, попробовать разворачивать свои приложения вручную. Потом можно познакомиться с понятием "сервер приложений" и узнать о других видах контейнеров. Так же скачать парочку самых популярных - Glassfish и Wildfly, поиграть с их настройками, попробовать разворачивать в них свои приложения. После того, как на локальном компьютере у вас будет всё получаться, можно купить VPS и установить на него тот сервер, который вам больше понравился в процессе экспериментов. Или можно встроить сервер в приложение и запускать его в Heroku.