Когда и как компилируется JSP?
JSP-файл компилируются либо при первом обращении к нему, либо при старте сервера. Это зависит от настроек сервера. Кроме того, скомпилированные class-файлы могут сохраняться не в каталоге проекта, а в кэше сервера, поэтому вы можете их не обнаружить даже после обращения к jsp-странице.
Я jsp-файлы в своих проектах комплилирую на этапе сборки. Но не для экономии доли секунды при перевом обращении, а чтобы убедиться, что в них нет ошибок.
Грубо говоря, .jsp это что-то типа .php. 
Вот первое же описание по поиску :)
https://ru.wikipedia.org/wiki/JSP
JSP страницы имеют расширение .jsp и размещаются там же, где и обычные Web-страницы
Поэтому при первом запросе этот процесс может вызвать небольшую задержку
сервлет и .jsp - это зеркальные близнецы, что-то типа когда один - это вывернутое наизнанку представление другого. Просто после некоторого опыта использования того и другого вы будете их применять по своему вкусу. По моему личному опыту, я не пользуюсь ни тем, ни другим, а предпочитаю рендерить страницы в html/js, а данные получать через ajax (через сервлеты, хотя теоретически можно и через jsp - им без разницы, что вы через них отдаёте).
P.S.
JavaEE - это такой миф в мире Java. Все о нём говорят. Не парьтесь. Просто изучайте работу backend-а. Когда вы достигнете определённого уровня, то сами себе ответите на вопрос, что такое JavaEE.