как работать с сервлетом и бизнес-уровнем?

У меня есть java-приложение:

а. на стороне сервера - приложение Swing (я создал графический интерфейс для сервера с jTextArea, просто для печати клиентских запросов)

б. клиентская сторона - приложение Swing

на стороне сервера у меня есть бизнес-уровень, который хранит данные в некоторых векторах.

теперь, помимо приложения Swing на стороне клиента, мне нужно создать веб-приложение, которое должно представлять те же данные из векторов в bl.

у меня вопрос: если я открою новый веб-проект, как сервлет получит данные из bl, потому что это другой проект ... возможно ли, что моя серверная сторона будет слушать запросы от сервлета? возможно ли, что они (сервлет и сервер (a)) будут общаться через сокеты?


person eliorsh    schedule 17.08.2012    source источник
comment
Как ваш первоначальный клиент / сервер общается? Я никогда не слышал о приложении Swing-сервера, поэтому мы можем наткнуться здесь на словарный запас. Ваш сервер - это просто программа, обслуживающая клиентские приложения. У вас может быть графический интерфейс для администрирования вашего сервера, такого как управление пользователями и т. Д., Но он является внешним по отношению к коду сервера ... обычно.   -  person jeff    schedule 18.08.2012
comment
@jeff, клиент-сервер общается через сокеты. Я сделал графический интерфейс для сервера, просто чтобы увидеть запрос клиента и распечатать его на jTEXTAREA (чтобы проверить, работает ли он ..)   -  person eliorsh    schedule 18.08.2012


Ответы (2)


Я думаю, что лучший способ - создать новый веб-проект. В графическом интерфейсе веб-страницы должны быть несколько кнопок ... и когда будет нажата какая-то кнопка, я перенаправлю его на сервлет. Теперь сервлет будет связываться со стороной сервера через сокеты, чтобы получать данные о BL. когда сервлет получит эти данные, я создам новую веб-страницу и покажу данные.

person eliorsh    schedule 18.08.2012

Итак, вы хотите предоставить свою бизнес-логику другому носителю, в данном случае HTTP. У вас есть несколько вариантов. Используя сервлет (для запуска которого потребуется какой-то контейнер сервлетов, например Tomcat или Jetty и т. Д.), Вы можете воспользоваться множеством хороших серверных функций, таких как управление сеансом, объединение потоков и т. Д. пытались изменить существующий сервер, чтобы он также принимал связь по протоколу HTTP, вы бы пропустили их, если не реализовали их самостоятельно.

Итак, моя рекомендация для вашей архитектуры:

Поместите свою бизнес-логику за веб-сервисом (что можно сделать с помощью сервлета). Таким образом, он будет понимать HTTP-связь и даст вам эти полезные функции. Затем измените клиент Swing, чтобы он разговаривал с вашим новым веб-сервисом с помощью HTTP-запросов.

person jeff    schedule 17.08.2012
comment
Да, я хочу открыть свою бизнес-логику для HTTP. одно из требований - иметь 2 пользовательских интерфейса: 1) пользовательский интерфейс Swing, 2) веб-интерфейс, поэтому я не могу изменить клиент Swing. могу ли я написать сервлет на стороне сервера? но как в этом случае Интернет будет отправлять запросы? - person eliorsh; 18.08.2012
comment
извините, но я не могу отредактировать свой первый комментарий ... поэтому, написав сервлет на стороне сервера, я хочу добавить новый класс как SERVLET, который будет обрабатывать HTTP-запрос. но если я это сделаю, у меня возникнут проблемы, потому что если у меня есть какие-то кнопки в веб-проекте, когда я нажимаю на них, как я могу направить их на сервлет? Является ли это возможным? - person eliorsh; 18.08.2012
comment
в вашем веб-проекте будет ваш сервлет и некоторые веб-страницы (JSP, HTML и т. д.). В проекте вы сопоставляете свой сервлет с URL-адресом, и ваши HTML-формы будут публиковаться по этим URL-адресам. - person jeff; 18.08.2012
comment
привет, что я сделал: в моем веб-проекте у меня есть сервлет, и чтобы получить данные о моем бл. сервлет общается со стороной сервера через сокеты. Теперь у меня вопрос, jsp больше подходит для html-кода, верно? Итак, если сервлет хранит данные в векторах, как я могу отправить их в jsp? - person eliorsh; 19.08.2012
comment
хорошо, чтобы отправить параметры из сервлета в jsp, нам нужно использовать reqeuest.setParamter (). - person eliorsh; 20.08.2012