Я столкнулся с тем, что не понимаю, как обычно реализуется фронт для Java-приложения. У меня есть несколько предположений о том, как это может быть:
1. Фронт делается при помощи JSP, thymeleaf или других Java-фреймворков для фронтенда, т.е. всё делается исключительно на мощностях Java.
2. На Java-сервере делается только бэкенд, который отдаёт данные для отрисовки, но не отрисовывает их сам (т.е. бэкенд на Java, а фронт делается отдельно в другом, более подходящем для этого приложении).
Я понимаю, что можно сделать и так и так. Но интересует то, как это делается обычно, в том числе для крупных проектов, очень желательно с примерами (если они, конечно, у вас есть).
Здравствуйте!
Я думаю, что все в первую очередь зависит от бюджета выделенного на проект.
Конечно же 1-й вариант (jsp, gsp, thymeleaf, mustache, freemarker) обходится дешевле, чем полноценная разработка фронта на javascript фреймворках (Angular, React, VueJS и др).
В первом случае на Java делается бекенд на обычных контроллерах (если речь идет о Spring). Во втором случае разрабатывается RESTful сервис, который будет взаимодействовать с js-фреймворком..
BorLaze устраивает. А что я в нём должен увидеть? Вопрос-то в том, как обычно делается, а не как делается вообще. Примеры на thymeleaf на их оф.сайте я видел, но сложно сказать, насколько это крупные проекты и следует ли мне идти по их стопам.
Eugenue Cesarevich, достаточно крупные и серьезные проекты думаю, что используют js-фреймворки.
Вот, пример:
фронт - React
бек - Java (Spring) https://zodier.io/ru
Это вопрос не специфичный для Java. На Java, как и на любом другом языке, используются оба подхода. Когда вы разрабатываете web-сайт, например коллективный блог, типа Хабра, развитый фронтенд вам не нужен, вы можете не тратить ресурсы на его разработку, вам будет проще продвигать его в поисковых системах. Когда вы разрабатываете web-приложение, например онлайн-банкинг, типа online.sberbank.ru, вам нужен фронтенд, вам нужен SPA, так как пользователь ожидает такой же UX, как от десктопного приложения.
> Обычно
Зависит от задачи.
Если сайт практически полностью состоит из полустатических страниц практически без интерактива - можно на jsp.
Если пользователь не может отказаться от использования твоего приложения - можно на jsp.
Если нацеливаемся на массового потребителя, то лучше вложиться в нормальный фронтенд.
Если очень много интерактивных элементов, то js будет много и нет большого смысла смешивать с jsp.
Bavashi, я не шарю какие там технологии для формирования веб-страниц на жаве есть. По тому обобщённо их все называю jsp.
В принципе тут нет большой разницы между языками