JSP - web services

faw
Уже с Приветом
Posts: 815
Joined: 23 Nov 2003 02:29
Location: UA, VA

Post by faw »

Ну если с вебсервисами проблем нет то напишите pure j2ee приложение (даже без ejb)
но например с использованием Struts
Бродяга
Уже с Приветом
Posts: 16086
Joined: 22 Apr 2003 17:57
Location: Колыбель

Re: JSP - web services

Post by Бродяга »

faw wrote:
Бродяга wrote:MVC модель но как-то странно глупо сделанна. Почему запрос сразу в сервлет стучится если результат через JSP выводится?:pain1: Хотя конечно может это условие задачи. Но чаще всего MVC делают:
Запрос ->JSP -> Servlet ->DB и в обратном порядке уходит ответ. Когда сложная бизнес логика то между сервлетом и DВ живут EJB. Но для простой задачи это изврат :umnik1:

плохо, очень плохо.
в MVC запрос стучится в контроллер. И этот самый контроллер есть не что иное как сервлет (делать его jsp смысла нет). Результат потом показывается (о чудо) через jsp, которая рисует html страничку, из которой submit идет (о чудо) опять таки в сервлет.
Естественно контролером может быть и jsp -но это уже изврат, потому как jsp более удобна для того чтоб презентовать данные, а контролер и модель как разу удобнее держать в обычных классах.

Ну что-же начнем ломать копьяю. Откуда вы запрос в web based application получаете? Из браузера. Браузер что показывает? JSP или HTML. Таким образом первым отображается как я и написал JSP. Потом запрос идет в контроллер. Контроллер идет за данными если нужно в DB. Результат обратно в JSP отправляется.
Бог создал людей разными, Линкольн дал людям свободу, а Кольт всех уравнял.
faw
Уже с Приветом
Posts: 815
Joined: 23 Nov 2003 02:29
Location: UA, VA

Re: JSP - web services

Post by faw »

Бродяга wrote:
faw wrote:
Бродяга wrote:MVC модель но как-то странно глупо сделанна. Почему запрос сразу в сервлет стучится если результат через JSP выводится?:pain1: Хотя конечно может это условие задачи. Но чаще всего MVC делают:
Запрос ->JSP -> Servlet ->DB и в обратном порядке уходит ответ. Когда сложная бизнес логика то между сервлетом и DВ живут EJB. Но для простой задачи это изврат :umnik1:

плохо, очень плохо.
в MVC запрос стучится в контроллер. И этот самый контроллер есть не что иное как сервлет (делать его jsp смысла нет). Результат потом показывается (о чудо) через jsp, которая рисует html страничку, из которой submit идет (о чудо) опять таки в сервлет.
Естественно контролером может быть и jsp -но это уже изврат, потому как jsp более удобна для того чтоб презентовать данные, а контролер и модель как разу удобнее держать в обычных классах.

Ну что-же начнем ломать копьяю. Откуда вы запрос в web based application получаете? Из браузера. Браузер что показывает? JSP или HTML. Таким образом первым отображается как я и написал JSP. Потом запрос идет в контроллер. Контроллер идет за данными если нужно в DB. Результат обратно в J
SP отправляется.

Браузер показывает (о чудо) HTML. Который был сгенерен на сервере с помошью JSP. Но перед тем как это jsp показать был послан запрос. Куда он был послан?
в тоже самое jsp которое служит для вывода информации? тогда это не mvc
если он был послан в специальную jsp которая работает контроллером - то тогда да, тогда конечно jsp приняла запрос. но это не совсем ровно IMHO
Обычно все таки запросы шлют в сервлет. который уже вызывает соотв. классы логики, которые формируют информацию для вывода, и передает запрос с подговленными данными в JSP, которая просто рисует следующий экран.
faw
Уже с Приветом
Posts: 815
Joined: 23 Nov 2003 02:29
Location: UA, VA

Post by faw »

User avatar
Sabina
Уже с Приветом
Posts: 5669
Joined: 13 Oct 2000 09:01
Location: East Bay, CA

Re: JSP - web services

Post by Sabina »

faw wrote:
Бродяга wrote:Ну что-же начнем ломать копьяю. Откуда вы запрос в web based application получаете? Из браузера. Браузер что показывает? JSP или HTML. Таким образом первым отображается как я и написал JSP. Потом запрос идет в контроллер. Контроллер идет за данными если нужно в DB. Результат обратно в JSP отправляется.

Браузер показывает (о чудо) HTML. Который был сгенерен на сервере с помошью JSP. Но перед тем как это jsp показать был послан запрос. Куда он был послан?
в тоже самое jsp которое служит для вывода информации? тогда это не mvc
если он был послан в специальную jsp которая работает контроллером - то тогда да, тогда конечно jsp приняла запрос. но это не совсем ровно IMHO
Обычно все таки запросы шлют в сервлет. который уже вызывает соотв. классы логики, которые формируют информацию для вывода, и передает запрос с подговленными данными в JSP, которая просто рисует следующий экран.


А может там собака порылась в том, что диаграмма начинается с объекта HTTP Request, который передается в сервлет?
Ну откусили они немного от начала процесса..Может в слайд не влазило? :mrgreen:

Сабина
Last edited by Sabina on 30 Jan 2004 21:43, edited 1 time in total.
User avatar
Sabina
Уже с Приветом
Posts: 5669
Joined: 13 Oct 2000 09:01
Location: East Bay, CA

Post by Sabina »

faw wrote:Ну если с вебсервисами проблем нет то напишите pure j2ee приложение (даже без ejb)
но например с использованием Struts


А вы не могли бы в трех словах пояснить что есть JSF (Java Server Faces)? Если я понимаю правильно они работают на struts framework, а по сути продвинутое JSP(доп таг либ).

Сабина
faw
Уже с Приветом
Posts: 815
Joined: 23 Nov 2003 02:29
Location: UA, VA

Post by faw »

Sabina wrote:
faw wrote:Ну если с вебсервисами проблем нет то напишите pure j2ee приложение (даже без ejb)
но например с использованием Struts


А вы не могли бы в трех словах пояснить что есть JSF (Java Server Faces)?
Сабина

К сожалению пока не использовал. :(
blanko27
Уже с Приветом
Posts: 2264
Joined: 17 Jun 2003 04:41
Location: Just like US

Post by blanko27 »

Sabina wrote:А вы не могли бы в трех словах пояснить что есть JSF (Java Server Faces)? Если я понимаю правильно они работают на struts framework, а по сути продвинутое JSP(доп таг либ).
Сабина, стратс только третьей частью основан на JSP (просто мне по уху резануло), первые две - это сервлеты и джава бинс. В самом деле, можно не строить полноценный сервис для вашего проекта, а воспользоваться стратс. Тоже интересная вещь, правда не стандартизированная.
Last edited by blanko27 on 30 Jan 2004 21:59, edited 1 time in total.
...а мы такой компанией, возьмем, да и припремся к Элис!
Бродяга
Уже с Приветом
Posts: 16086
Joined: 22 Apr 2003 17:57
Location: Колыбель

Re: JSP - web services

Post by Бродяга »

faw wrote:Браузер показывает (о чудо) HTML.

А XML он показать не может? :wink:

faw wrote:Который был сгенерен на сервере с помошью JSP. Но перед тем как это jsp показать был послан запрос. Куда он был послан?
в тоже самое jsp которое служит для вывода информации? тогда это не mvc

Да ну? Блин, что-же у меня login скрин появляется без обращения к контроллеру? :pain1: Контроллер о ней понятия не имеет. А вот апп сервер да, знает.
Бог создал людей разными, Линкольн дал людям свободу, а Кольт всех уравнял.
faw
Уже с Приветом
Posts: 815
Joined: 23 Nov 2003 02:29
Location: UA, VA

Re: JSP - web services

Post by faw »

Бродяга wrote:
faw wrote:Браузер показывает (о чудо) HTML.

А XML он показать не может? :wink:

faw wrote:Который был сгенерен на сервере с помошью JSP. Но перед тем как это jsp показать был послан запрос. Куда он был послан?
в тоже самое jsp которое служит для вывода информации? тогда это не mvc

Да ну? Блин, что-же у меня login скрин появляется без обращения к контроллеру? :pain1:

потому что этот конкретный запрос не ложится на MVC патерн.
По моему так.
User avatar
hooch
Уже с Приветом
Posts: 1169
Joined: 16 Jan 2003 23:23

Re: JSP - web services

Post by hooch »

Sabina wrote:
hooch wrote:MVC - это дизайн паттерн, никак с веб сервисами не связан, как впрочем и с JSP, т.к вместо JSP можно использовать любую другую презентационную платформу.


А как тогда позволите понимать вот этот рисунок? :pain1:

Сабина


Так и понимать, что на данной диаграмме в качестве presentation layer использованы JSP, а могли быть например ECS (http://jakarta.apache.org/ecs/index.html).
User avatar
JustMax
Уже с Приветом
Posts: 1476
Joined: 05 Dec 2000 10:01
Location: Vilnius -> Bonn

Post by JustMax »

Sabina wrote:
faw wrote:Ну если с вебсервисами проблем нет то напишите pure j2ee приложение (даже без ejb)
но например с использованием Struts


А вы не могли бы в трех словах пояснить что есть JSF (Java Server Faces)? Если я понимаю правильно они работают на struts framework, а по сути продвинутое JSP(доп таг либ).

Сабина


JSF bolee prostaja versija MVC like Struts ot Sun :)
User avatar
Masterok
Уже с Приветом
Posts: 1536
Joined: 03 Aug 2000 09:01

Post by Masterok »

Мои 2 цента.

Со всей этой шумихой вокруг web services легко забыть, что web service - это всего лишь внешний интерфейс для сервиса (без приставки web-), т.е. обычного класса, инкапсулирующего в своих методах бизнес логику высокого уровня, в противоположность логике низкого уровня, т.е. getters & setters бизнес-объектов.

Примером сервиса может являться класс типа HROperations с методом (среди прочих) increaseSalaryToDepartment(deptId, percentIncrease), который в одной транзакции (!!! :umnik1: ) пробежит по всем работникам данного департмента и вызовет их setSalary (низкоуровневая логика) методы. Или же, если ОО подход не применяется, сделает что-нибудь типа update emp set salary = salary * ? where dept_id = ?.

То есть, еще раз хочу акцентировать, сервис - это бизнес логика высокого уровня, выполняющий операции, охватывающие много сеттеров.

Так вот, services layer является одним из необходимых атрибутов хорошо спроектированного J2EE приложения. На основе этого layer'a можно надстраивать какие угодно пользовательские интерфейсы, будь-то JSP+MVC или толстое Swing приложение, или же каждый сервис можно зарегистрировать как web service, т.е. пропустить его через java2WSDL примочку. При желании, это сервис можно обернуть stateless session bean'ом, а потом уже зарегистрировать этот бин как web service. Короче, вариантов много, но главное правило одно: нужен services layer. А обернете ли вы его web services layer'ом - это уже второй вопрос, который мы сейчас и попробуем осветить.

Ну тут-то все проще. Для чего нужны web services? Для EAI, т.е. для Enterpise Application Integration, а в частности:
1. Для обеспечения взаимодействия между частями одного приложения, написанными на разных языках программирования
2. Для обеспечения взаимодействия с приложениями других компаний, которые в большинстве случаев, опять-таки написаны на разных языках программирования.

Резюмируем: ни того, ни другого у вас нет. Отсюда: web services вам не нужны. Строить ваши JSP на вызовах web services - будет преступлением против своей компании и себя лично. Убьете перформанс напрочь.

Другое дело - services layer. Имея его, стройте свои JSP на вызовах services. Внимательно также прислушайтесь к советам местных товарищей об использовании архитектуры MVC. Я лично использую Struts - замечательнейшая вещица.

И только потом уже пропустите свои сервисы через java2wsdl и гордо заявите начальству, что web services готовы как побочный продукт :)

Удачи!


P.S. Возможно, я неправильно перевел coarse grained logic and fine grained logic как логика высокого и, соответсвенно, низкого уровня.
P.P.S. Пробегание по всем сотрудникам департмента использовалось только как пример более сложной логики, чем просто сеттеры. В реальном приложении рекомендуется не использовать. update emp set... в данном случае работает лучше.
Palych
Уже с Приветом
Posts: 13682
Joined: 16 Jan 2001 10:01

Re: JSP - web services

Post by Palych »

Sabina wrote:А может там собака порылась в том, что диаграмма начинается с объекта HTTP Request, который передается в сервлет?
Ну откусили они немного от начала процесса..Может в слайд не влазило? :mrgreen:

Сабина

А с чего еще она может начинаться?
User avatar
Sabina
Уже с Приветом
Posts: 5669
Joined: 13 Oct 2000 09:01
Location: East Bay, CA

Re: JSP - web services

Post by Sabina »

..ahhh ... forget it :mrgreen:

Cабина
User avatar
Masterok
Уже с Приветом
Posts: 1536
Joined: 03 Aug 2000 09:01

Re: JSP - web services

Post by Masterok »

Sabina wrote:..ahhh ... forget it :mrgreen:

Cабина


Дорогая Сабина,

Совершенно понятно ваше смущение и фрустрация из-за обилия противоречащих советов. Тем не менее, позвольте мне повторить свой совет: не используйте web services для небольшого внутреннего приложения. Если только вы не придерживаетесь девиза "После нас хоть потоп".

Return to “Вопросы и новости IT”