vanesxl
@vanesxl

Когда и как компилируется JSP?

Добрый день,
начал изучать JavaEE для разработки web приложений. В IDE NetBeans создал проект Java Web. Создал JSP файл в нем перемешка html и кода на java. Потом создал сам сервлет, исходный код сервелат хранится в файле test.java.
Собрал и запустил проект, вроде все работает отлично, полез смотреть собранный проект. И там я обнаружил что сервлет скомпилировался в файл test.class что в общем то логично, а вот JSP файл остался с исходным кодом java.
Тут у меня возникли вопросы:
1 - а когда собственно компилируется JSP файл?
2 - он компилируется каждый раз при обращении к нему? (т.е. на лету)
3 - если JSP файл компилируется каждый раз при обращении, то может ли это как то влиять на производительность самого web приложения, тогда лучше использовать сервлеты?
Заранее большое спасибо!
  • Вопрос задан
  • 756 просмотров
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
JSP-файл компилируются либо при первом обращении к нему, либо при старте сервера. Это зависит от настроек сервера. Кроме того, скомпилированные class-файлы могут сохраняться не в каталоге проекта, а в кэше сервера, поэтому вы можете их не обнаружить даже после обращения к jsp-странице.

Я jsp-файлы в своих проектах комплилирую на этапе сборки. Но не для экономии доли секунды при перевом обращении, а чтобы убедиться, что в них нет ошибок.
Ответ написан
Комментировать
AlexXYZ
@AlexXYZ
O Keep Clear O
Грубо говоря, .jsp это что-то типа .php.
Вот первое же описание по поиску :)
https://ru.wikipedia.org/wiki/JSP


JSP страницы имеют расширение .jsp и размещаются там же, где и обычные Web-страницы
Поэтому при первом запросе этот процесс может вызвать небольшую задержку

сервлет и .jsp - это зеркальные близнецы, что-то типа когда один - это вывернутое наизнанку представление другого. Просто после некоторого опыта использования того и другого вы будете их применять по своему вкусу. По моему личному опыту, я не пользуюсь ни тем, ни другим, а предпочитаю рендерить страницы в html/js, а данные получать через ajax (через сервлеты, хотя теоретически можно и через jsp - им без разницы, что вы через них отдаёте).

P.S.
JavaEE - это такой миф в мире Java. Все о нём говорят. Не парьтесь. Просто изучайте работу backend-а. Когда вы достигнете определённого уровня, то сами себе ответите на вопрос, что такое JavaEE.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы