Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Нужен совет корпоративного Web приложения


Автор: DmiSbr 15.4.2010, 06:03
Доброго всем дня !!!
Нужен совет для построения корпоративного Web приложения.
Предистория такая: Есть небольшая организация. В свое время было сделано несколько десктопных приложений - интерфейс Delphi, база данных FireBird. Приложения не сложные, в то же время нужна выгрузка данных в файл, работа со сканером штрих-кода. Все работает внутри организации. В связи с расширением организаци появилась задумка перенести функционал в Web для удобства администрирования, внесения изменений в функциональность приложения, ну и не надо бегать, устанавливать программы по кабинетам. Так же из-за возможного перехода на Linux, то бишь нужен кросс. 
Исходя из этого, нужен совет на чем это лучше реализовать. Смотрел форумы, склоняюсь больше к Velocity (понравилось разделение кода и HTML), либо JSP. Знаний в этой области нет. Немного основы Java.
Заранее спасибо.

Автор: AntonSaburov 15.4.2010, 11:33
http://www.java-course.ru/students/part14.html

Автор: DmiSbr 22.4.2010, 09:48
Вдумчиво ознакомился со всем циклом статей "Студенческий отдел кадров". Servlet - понятно, затестил, работает. JSP - сложнее, на простых примерах тоже вроде сложностей не возникло. Далее для меня пока о-о-о-о-чень темный лес. Да и тот же Servlet, который понятен и прост, не нравиться способом постоения страниц. В связи с этим вопрос: как из сервлета при помощи velocity обработать шаблон и отправить клиенту ? Прбовал следующий код:

Код

.....

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException, Exception {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            Velocity.init();
            Template t = Velocity.getTemplate("myTmplate");
            VelocityContext vc = new VelocityContext();
            t.merge(vc, out);
        } finally { 
            out.close();
        }
    } 


Ошибок нет, но и ничего не появляется

Автор: batigoal 27.4.2010, 08:48
Про Велосити тоже есть большая закрепленная тема: http://forum.vingrad.ru/forum/topic-44988.html

Автор: garbuz 27.4.2010, 13:19
Попробуйте
Код

template.merge(context, getResponseWriter(response));

Автор: Vasay 27.4.2010, 13:59
DmiSbr, 

Думаю, пока Velocity Вам лучше не трогать. Почитать дальше. Почитать про фрэймворки.

Например в Spring Framework MVC работа с Velocity идет, фактически, "за кадром". Разница между использованием Jsp, Velocity, Freemarker - несколько строчек в конфигурационном файле (ну и в самих шаблонах).

Автор: DmiSbr 28.4.2010, 06:37
2 batigoal, garbuz

Спасибо, разобрался. Еще раз вдумчиво просмотрел, что встретилось про velocity. Получилось написать небольшой расчет с выводим результата на страничку. Очень полезный опыт. При использовании сервлетов и Velocity получается все достаточно просто и прозрачно. Мне хотя бы понятно. Однако остаються сосмнения: достаточно ли этого для написания средненького размера приложения (около сотни таблиц в БД, в 2 раза больше отчетов и форм)? 

2 Vasay

Spring Framework на первый взгляд показался несколько запутанным. Надо копнуть поглыбже.


Автор: ivanovpv 28.4.2010, 08:02
Цитата(DmiSbr @  28.4.2010,  06:37 Найти цитируемый пост)
Spring Framework на первый взгляд показался несколько запутанным.


Согласен, есть такое. Чем мощнее фрейм, тем сложнее с ним начать работать. Посему я бы посоветовал оценить сложность вашего приложения - если оно сложномогучее, то надо замахиваться на идентичный-сложномогучий фреймворк. Как я понял - у вас вроде не сильно то и сложно все:
Цитата(DmiSbr @  15.4.2010,  06:03 Найти цитируемый пост)
Есть небольшая организация. В свое время было сделано несколько десктопных приложений - интерфейс Delphi, база данных FireBird. Приложения не сложные, в то же время нужна выгрузка данных в файл, работа со сканером штрих-кода. Все работает внутри организации.


Так что Velocity вам наверное подходит больше чем Spring. Хотя я бы лично посоветовал http://struts.apache.org/ - он очень компактен и прозрачен - разделение кода и представления не такое четкое как у Velocity, но зато более легкий и понятный.

Автор: batigoal 28.4.2010, 08:23
Цитата(DmiSbr @  28.4.2010,  07:37 Найти цитируемый пост)
достаточно ли этого для написания средненького размера приложения (около сотни таблиц в БД, в 2 раза больше отчетов и форм)? 

Имхо - да.

Автор: Vasay 28.4.2010, 12:23
ivanovpv, 

Цитата

Так что Velocity вам наверное подходит больше чем Spring.



Spring умеет многое. Но своего шаблонного движка у ноге нет. В качестве шаблонного движка в паре со Spring-ом можно использовать Jsp, Velocity, FreeMarker....
Spring облегчает их использование, но друг друга они никак не заменяют.


Цитата

Чем мощнее фрейм, тем сложнее с ним начать работать.


Однако потом намного проще писать. И намного меньше писать! 


DmiSbr

Если глобальной цели изучения Web программирования на Java не стоит, то можно обратить внимание на обертки на Spring FrameWork - Spring Roo и Grails.



Автор: DmiSbr 28.4.2010, 12:47
2 ivanovpv
Цитата

Чем мощнее фрейм, тем сложнее с ним начать работать. Посему я бы посоветовал оценить сложность вашего приложения - если оно сложномогучее, то надо замахиваться на идентичный-сложномогучий фреймворк. Как я понял - у вас вроде не сильно то и сложно все....

....Так что Velocity вам наверное подходит больше чем Spring. Хотя я бы лично посоветовал Struts


Просто хочется начать вникать в правильные "вещи". Вдруг пригодиться
По Struts нашел несколько статей описательного характера. Изучаю. С примерами пока туго..
Оказалось, очень сложно менять мышление при переходе с Delphi на Java.


2 Vasay 

Цитата

Если глобальной цели изучения Web программирования на Java не стоит, то можно обратить внимание на обертки на Spring FrameWork - Spring Roo и Grails.


Согласен по всем пунктам.
Насчет глобальной цели изучения пока не знаю, может и решусь на это. 
Spring Roo и Grails тоже обязательно ознакомлюсь

Автор: Vasay 28.4.2010, 13:04
DmiSbr, 

 
Цитата

Оказалось, очень сложно менять мышление при переходе с Delphi на Java.


Идеология сильно отличается.


Вообще мой совет, что Вам делать:

1. Разобраться с протоколом HTTP (если хотите заниматься WEB программированием - пригодится). Ничего сложного там нет. Почитать про заголовки, про POST, GET, куки.

2. Разобраться с сервлетами (Вы это, вроде, уже сделали)

3. Почитать теорию про MVC (model view controller)

4. Взять этот туториал: http://static.springsource.org/docs/Spring-MVC-step-by-step/  проделать его. Даже если Вы не собираетесь в дальнейшем иметь дело со Spring в целом и Spring MVC в частности - все равно пригодится для закрепления понимания MVC

К тому же там даются основы юнит тестов - тоже очень полезно. 

Автор: AlexSerov 28.4.2010, 14:57
Посмотрите http://www.hybridserverpages.com/. Похоже на Velocity, но по-современнее.

Автор: Ares4322 29.4.2010, 19:49
Я использую Struts2 и все устраивает. 
Есть и шаблоны(в качестве плагина)  и плагины к Spring и другим популярным фреймворкам и много хорошей документации.

Автор: DmiSbr 30.4.2010, 05:52
2 Vasay

Примерно такой планчик тем для изучения я для себя набросал.
Только после сервлетов добавил JSP c JavaBeans, сечас на стадии вникания.

2 Ares4322
Бегло посмотрел, что нашел про Struts. Оказалось, как и Spring, Struts интегрирован в NetBeans. Нашел несколько подробных примеров.

Автор: Ares4322 30.4.2010, 06:30
struts 1 интегрирован. 2й нет.,да это и не надо.а spring пока можно и не трогать.если по struts2 будут,вопросы - обращайся. 

Автор: DmiSbr 30.4.2010, 08:34
2 Ares4322

Цитата

если по struts2 будут,вопросы - обращайся. 


Вопросы обязательно будут. Спасибо

Автор: Vasay 30.4.2010, 12:48
DmiSbr

Цитата

Только после сервлетов добавил JSP c JavaBeans, сечас на стадии вникания.


JavaBeans я бы, пока, не трогал. Потом, после Spring-а (и то, если понадобится) - можно будет взяться.  Очень серьезной проблемой в изучении EJB будет серьезные различия между версиями. Что затруднит поиск примеров и туториалов. 


Вообще, мое скромное мнение - изучать лучше целостную вещь. В случае Java for web на мой взгляд, лучше погрузиться в Spring framework - он хорошо документирован и весьма распространен в реальных приложениях. 
Т.е. я бы сейчас не трогал Struts. А осваивал бы Spring MVC.

Добавлено через 4 минуты и 5 секунд
Ares4322, 
Цитата

struts 1 интегрирован. 2й нет.,да это и не надо.а spring пока можно и не трогать


Struts, обычно, используется вместе со Spring-ом, заменяя Spring MVC.  
При изучении, все же проще работать в рамках одного фрэймворка, а не изучать два.

Автор: Alita 30.4.2010, 13:38
Цитата(DmiSbr @ 28.4.2010,  06:37)
 Однако остаються сосмнения: достаточно ли этого для написания средненького размера приложения (около сотни таблиц в БД, в 2 раза больше отчетов и форм)? 

При достаточно большом количестве отчетов советую обратить внимание на соответствующие инструменты (http://www.eclipse.org/birt/phoenix/, http://jasperforge.org/projects/jasperreports), облегчающие задачу генерацию различных форм и отчетностей. 

Автор: Andrey1 3.5.2010, 20:14
Можете посмотреть еще на портальные движки: Liferay, jetspeed http://portals.apache.org/jetspeed-2/, Pluto http://portals.apache.org/pluto/
Там уже много чего есть и свои приложения можно писать как портлеты (вместо сервлетов).

Автор: DmiSbr 6.5.2010, 08:21
Голова кругом, столько всего нового !!!
Потратил некоторе время на вникание в JSP и использование Bean. В первом приближении понятно. 
Ознакомился с тем, что нашел по Struts и Spring. После вникания в JSP, тоже появилось некоторое маленькое просветление в этих технологиях. Спасибо за советы в выборе. Struts, кстати, понравился больше. Может быть только пока....
Конечно, что-то писать серьезное пока не готов. Почему-то пока не вижу структуру и логику такого приложения в целом. Отдельные примеры по Struts и Spring заработали без проблем. Но как должно строиться цельное большое приложение пока не соображу. 
Может быть есть смысл открыть новую ветку-сериал, наподобие http://forum.vingrad.ru/forum/topic-124877.html, только по изучению уже Struts или Spring ?
Готов побыть подопытным кроликом-учеником. Кто готов побыть в роли учителя ?

Автор: Ares4322 11.5.2010, 10:07
Могу по Struts2 поставить задачи в рамках того, что сам делал, ну и подсказывать и объяснять

Автор: DmiSbr 12.5.2010, 09:40
2 Ares4322

Цитата

Могу по Struts2 поставить задачи в рамках того, что сам делал, ну и подсказывать и объяснять


Согласен
Есть смысл новую ветку открывать ?

Автор: Ares4322 16.5.2010, 11:36
Наверное есть. Только что в ней собираетесь писать?)

Добавлено @ 11:40
Надо определиться, что там будем писать и для каких целей.

Автор: DmiSbr 18.5.2010, 11:12
Что-то неожиданно подкинули задач.
Пока все отложил на некоторое время.


Автор: Ares4322 18.5.2010, 11:17
Хозяин-барин

Автор: Tony 20.5.2010, 21:13
Вам нужен ESB. Есть коммерчские так и безплатные.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)