Бэкенд java. Связь с фронтендом. Сервер

190
24 февраля 2018, 21:34

Есть вопрос концептуального и общего характера.
Я не очень понимаю каким образом реализуется бэкенд на java. Есть, допустим, макет сайта сверстанный на HTML и СSS. В какой момент идет общение одного с другим?Объясните плз логику(хотя бы схематично, поэтапно) и инструменты. В какую сторону вообще копать.

Еще вопрос- есть десктопное приложение, к которому в общем-то понятно как прикруть БД с glassfish. Но, если предполагается сервер и разные клиенты, к примеру: веб, десктоп и мобильный.Я правильно понимаю, что для этого подразумевается, что мне(как один из вариантов по крайней мере) нужно арендовать хостинг и закинуть туда БД(если да, то в каком виде?как это реализуется?(схематично))И далее по мере работы с разными клиентами- кидать подключения к этой БД на арендованном хостинге?Т.е. серверная часть на том же хостинге?

Такая логика?:
Клиент(запрос)-> Хостинг:Сервер(обработка запроса)-> Хостинг: БД(результат запроса)-> Хостинг:Сервер(ответ)-> Клиент(результат)

P.s. Извиняюсь за возможный сумбур.Надеюсь понятная суть вопросов

Answer 1

Ваш вопрос слишком общий. Для того чтобы ответить на него Вам необходимо ознакомиться с платформой Java EE. После чего Вы сами сможете ответить на ваш вопрос. Можно конечно написать развернутый ответ, рассказать про архитектуру Distributed Multitiered Applications, про технологии Java EE и т.д. Но я лучше приведу Вам ссылки:

  1. Официальная документация по Java Enterprise Edition.
  2. Книга Beginning Java EE 7 (есть на русском).

Для связи HTML-страниц и java-кода в разные времена использовались разные инструменты. Начиналось все с Java Servlet Technology, далее была JavaServer Pages Technology. Эти технологии уже устарели и сейчас используется JavaServer Faces Technology.

Схемы из книги Beginning Java EE 7

Структура веб-приложения

Архитектура реального веб-приложения: интернет-магазин по продаже книг, дисков

Answer 2

Я не спец по бэкенду так что, могу ошибаться во многом. Начнем по порядку, во первых если брать пример обычного сайта HTML + CSS, то не очень разумно писать бэкенд на java, что бы просто отдавать статические ресурсы. Должна быть какая то бизнес логика, так что можно взять к примеру интернет магазин HTML + CSS + JavaScript. На счет инструментов, есть разные подходы по написанию, но допустим мы возьмем устаревший класический стэк JavaEE - это JSP, Servlets, Filters, и вэбконтейнер Tomcat, в котором все это будет крутиться. Декомпозируем HTML в JSP. Запросы обрабатывают наши сервлеты, то есть клиент шлет запрос на главную страничку например, запрос ловит фильтр и проверяет к примеру залогинен ли пользователь и тд, отдает с результатом проверки сервлету, а сервлет на основании результата обрабатывет что то, и отдает то, что нужно. Еще некоторое общение с сервером реализуется с помощью AJAX запросов, что бы не перезагружать полность страницу.

На счет хостингов и разных клиентов, вопрос обширный, и реализация бэкенда может быть разной, в зависимости от поставленых задач. Например мобильному клиенту лучше общаться с REST сервисом, запрос-ответ в формате JSON, если это моб. приложение например. Java хостинг относительно дорогой, но есть фишки типа серверов Amazon`а, там где предоставляют по моему год бесплатного хостинга, за это время проэкт либо стрельнет либо нет=( И тебе никто не будет обьяснять схематично или как то по другому, каким образом заливать БД и Серверную часть на хостинг и тд, по этому поводу могу по рекомендовать отличную, но платную платформу по Java, там имеются уроки от начальных и до Spring, Hibernet технологий и соответственно всех вопросов, по поводу java хостинга! Это не реклама, если есть желание, то напиши maxim07070711@gmail.com, дам ссылку.

И напоследок плюсую ответ выше, что бы понять как работает вся система, нужно учить JavaEE, и все станет на свои места!

READ ALSO
AppCompatSpinner MODE_DIALOG программно

AppCompatSpinner MODE_DIALOG программно

Пытаюсь создать AppCompatSpinner программноНо как его программно сделать MODE_DIALOG? В обычном Spinner получается:

189
Java FX CheсkBox

Java FX CheсkBox

Как задать возможность выбора только одного из сheсkbox, или есть какие-то другие элементы для этого

209
Прошу помощи у знатоков в поиске причины java.lang.NoSuchMethodError

Прошу помощи у знатоков в поиске причины java.lang.NoSuchMethodError

Я пытаюсь настроить отправку уведомлений с сервера tomcat (Ubuntu 1604) на android с помощью Firebase Cloud Messaging

242
Android, Java. Получение имени файла с uri

Android, Java. Получение имени файла с uri

Такая проблема Вызываю диалог открытия окон, выбираю файлы, получаю uri файлов Теперь мне нужно получить имя файла такое какое оно в телефоне...

243