Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Паттерн декоратор для Servlet'a / 25 сообщений из 47, страница 1 из 2
30.10.2013, 10:59:34
    #38446269
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
Добрый день !
Есть такой вопрос :

https://netbeans.org/kb/docs/javaee/ecommerce/page-views-controller_ru.html

При создании сервлета контроллера - в параметре urlPatterns указывается список всех замапленных на него URL.

А как в теле метода

Код: java
1.
protected void processRequest(HttpServletRequest request, HttpServletResponse response)



получить все значения в виде enum'а ?

Второй вопрос в продолжении первого :

Хочется в сервлетах иметь такую же возможность ,как в спринге - аннотации работаты с мапингом url -

описывая их через
Код: java
1.
@RequestMapping

.

Сейчас севрлет , если на него замаплено больше одного url - будет представлять из себя фабрику с набором проверок внутри метода processRequest - на причастность к urlPatterns - и реакцию на такие действия .

в самом простом случае это будет case if else -
где идет сравнение request.getServletPath() со значениями из urlPatterns .

А хочется получить возможность в сервлете использовать RequestMapping.

вопрос как?
...
Рейтинг: 0 / 0
30.10.2013, 11:04:41
    #38446286
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
Что мешает взять любой web framework с нужными возможностями?
...
Рейтинг: 0 / 0
30.10.2013, 11:49:20
    #38446359
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
BlazkowiczЧто мешает взять любой web framework с нужными возможностями?
Например спринг :)

Ничто , вопрос в том что хочется получить это от спецификации . т.е. чтобы такая возможность была в самих сервлетах.

Например для начала можно создать свою аннотацию @RequestMapping

добавить несколько методов в сервлет - пометить их как @RequestMapping,

а потом в теле processRequest - смапить urlPatterns и RequestMapping.
...
Рейтинг: 0 / 0
30.10.2013, 12:02:36
    #38446384
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
а как в рантайме получить все значения urlPatterns ?
...
Рейтинг: 0 / 0
30.10.2013, 13:28:45
    #38446566
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
Atum1Сейчас севрлет , если на него замаплено больше одного url
какая цель вызывать один сервлет на несколько разных URL?
...
Рейтинг: 0 / 0
30.10.2013, 14:44:47
    #38446735
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
Petro123Atum1Сейчас севрлет , если на него замаплено больше одного url
какая цель вызывать один сервлет на несколько разных URL?

Цель такая сейчас сервлет имеет вид :

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
@WebServlet(, urlPatterns = {"/urlPatterns","/urlPatterns1","/urlPatterns2","/urlPatterns3"})
public class MyServlet extends HttpServlet {


    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

            WebServlet ws = this.getClass().getAnnotation(WebServlet.class);
            String[] patterns = ws.urlPatterns();


// тут класический if  на request.getServletPath()  -> "urlPatterns"  == patterns 

}



а Хочется писать как в спринге :


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    @RequestMapping("/urlPatterns")
    private void urlPatterns(HttpServletRequest request, HttpServletResponse response){
        System.out.println("urlPatterns");
        
    }


    @RequestMapping("/urlPatterns1")
    private void urlPatterns1(HttpServletRequest request, HttpServletResponse response){
        System.out.println("urlPatterns");
        
    }
...
Рейтинг: 0 / 0
30.10.2013, 14:45:46
    #38446741
am_sasa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
Petro123какая цель вызывать один сервлет на несколько разных URL? например так работает REST и я тоже так делаю))
...
Рейтинг: 0 / 0
30.10.2013, 14:47:00
    #38446743
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
Хочется создать "обертку" , чтобы вызовы из

processRequest

дергали по ключу request.getServletPath() - каждый свой метод

Код: java
1.
2.
3.
4.
5.
   @RequestMapping("/urlPatterns")
    private void urlPatterns(HttpServletRequest request, HttpServletResponse response){
        System.out.println("urlPatterns");
        
    }
...
Рейтинг: 0 / 0
30.10.2013, 14:49:02
    #38446746
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
am_sasa,

Да и REST и Spring - все так делают .

почему бы не дать такую возможность в обычном sevlet 'е ?
...
Рейтинг: 0 / 0
30.10.2013, 14:52:35
    #38446762
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
Atum1почему бы не дать такую возможность в обычном sevlet 'е ?
Потому что JCP это очень инертный процесс и особенно тормозит развитие JEE, к которому, ИМХО, не должно быть таких строгих требований как в JSE.
...
Рейтинг: 0 / 0
30.10.2013, 14:56:21
    #38446765
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
BlazkowiczПотому что JCP это очень инертный процесс и особенно тормозит развитие JEE, к которому, ИМХО, не должно быть таких строгих требований как в JSE.

но можно же придумать механизм - на тех же аннотациях и аспектах, интерцепторах ,
который мог бы обеспечить такую схему работы сервлетов ?
...
Рейтинг: 0 / 0
30.10.2013, 14:58:07
    #38446767
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
Atum1но можно же придумать механизм - на тех же аннотациях и аспектах, интерцепторах ,
который мог бы обеспечить такую схему работы сервлетов ?
Конечно. Этот механизм называется Spring MVC.
...
Рейтинг: 0 / 0
30.10.2013, 15:19:03
    #38446823
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
am_sasaREST
разве он не работает по принципу - URL рессурс ---> имя сервлета?
...
Рейтинг: 0 / 0
30.10.2013, 15:31:37
    #38446861
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
BlazkowiczКонечно. Этот механизм называется Spring MVC.

Да и тащить с собой кучу библиотек Спринга . Спринг это клей .


Как то глупо имея реализацию EE не иметь таких простых механизмов ?!

Да есть REST. но почему не сделать это в servlet
...
Рейтинг: 0 / 0
30.10.2013, 15:37:29
    #38446873
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
Atum1,
самое простое - URL - сервлет. 1 к 1-му.
А далее - спринг.
...
Рейтинг: 0 / 0
30.10.2013, 15:39:25
    #38446874
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
Atum1Да и тащить с собой кучу библиотек Спринга

На сервере дискета закончится?

Atum1. Спринг это клей .

Spring IoC это клей.
Spring MVC это web фреймверк.

Atum1Как то глупо имея реализацию EE не иметь таких простых механизмов ?!

Это ведь JEE, оно вообще ничего нормального не умеет.

Atum1Да есть REST. но почему не сделать это в servlet
Так исторически сложилось - JCP.
...
Рейтинг: 0 / 0
30.10.2013, 15:56:57
    #38446918
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
Petro123Atum1,
самое простое - URL - сервлет. 1 к 1-му.
А далее - спринг.

Да самое простое - одни сервлет один URL - это вырожденный вариант REST служб.


BlazkowiczЭто ведь JEE, оно вообще ничего нормального не умеет.


ну так тоже говорить нельзя .

Умеет c появление EJB 3, Servlet 3 , JPA, многое стало проще и красивее .
Даже , на мой взгляд , лучше чем в спринге.

Меньше кода , меньше библиотек, быстрее и проще разработка.

Но еще не все реализовано.
...
Рейтинг: 0 / 0
30.10.2013, 16:03:51
    #38446947
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
Atum1ну так тоже говорить нельзя .

Мне можно.

Atum1Умеет c появление EJB 3, Servlet 3 , JPA, многое стало проще и красивее .

Не смешно. EJB 3 этот тот же EJB 2 только с куцым CDI и упрощеным API. Ничего ведь существенно не изменилось.
JPA это кастрированая обертка над Hibernate.
Что нового в Servlet 3 сходу не скажу. Но не помню ничего такого чем бы сразу захотелось пользоваться.

Atum1Даже, на мой взгляд, лучше чем в спринге.

Ну, каждый имеет право на мнение. Конкретные примеры будут?

Atum1Меньше кода

Меньше чем в EJB 2? Переходи на Scala, кода станет ещё меньше.

Atum1 , меньше библиотек,

Весомый аргумент.

Atum1быстрее и проще разработка.

Чем в J2EE 1.4?

Atum1Но еще не все реализовано.
Воооот. Стандартная ситуация и JEE и, походу, теперь в JavaFX. "А вот за этой фигнюшечкой приходите через 2 года, когда будет следующая версия".
...
Рейтинг: 0 / 0
30.10.2013, 16:23:26
    #38446988
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
Atum1Да самое простое - одни сервлет один URL - это вырожденный вариант REST служб.
я бы сказала, что это - архитектура или принципы построения клиент-сервера в вебе.
Т.е. REST никак не относится к тому, один кусок кода вызывается по урл на Java (\\servlet_Name), или несколько кусков по If URL (surep_puper_servlet).

В том и был вопрос, какая разница аффтару делать один сервлет или несколько на каждый url.
Доводы у всех разные.
imho
...
Рейтинг: 0 / 0
30.10.2013, 16:57:01
    #38447075
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
BlazkowiczНе смешно. EJB 3 этот тот же EJB 2 только с куцым CDI и упрощеным API. Ничего ведь существенно не изменилось.
JPA это кастрированая обертка над Hibernate.
Что нового в Servlet 3 сходу не скажу. Но не помню ничего такого чем бы сразу захотелось пользоваться.


Ну, каждый имеет право на мнение. Конкретные примеры будут?

Как вариант : https://blogs.oracle.com/arungupta/entry/why_java_ee_6_is


Это простой холивар на тему что круче и что приятнее - javaee vs spring .

На данном этапе я не вижу особой разницы между этими подходами.


Скажу так spring - там как в наборе библиотек есть все и на все случаи жизни ... если проект под maven -
то думать надо совсем мало и принцип построения приложения на spring - хорошо описан .

Так же замечательно он описан и в схеме java ee :

1) Уровень постоянства - База
2) Прослойка в виде ORM
3) объектная модель POJO - Entity
4) Stateless бины как API над CRUD операциями
5) Уровень Фасадного API
5) Классы Контроллеры (Servlet)
6) Модель представления view (jsp)


Если есть аргументы типа - это есть в Спринг, но этого нет в Java EE и это очень нужно - буду признателен.
...
Рейтинг: 0 / 0
30.10.2013, 17:18:04
    #38447120
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
Atum1Как вариант : https://blogs.oracle.com/arungupta/entry/why_java_ee_6_is

Откровения ни о чем.
Ой, не смог настроить.
Ой, саппорт платный.
Ой, 10 мегабайт лишних.
Ой, без мавена не могу зависимости разруливать.
Ну, и прочий бред в том же духе. Могу по каждому пункту оспорить.

Atum1На данном этапе я не вижу особой разницы между этими подходами.

На туторилах её и нет. А вот когда командой пилишь один проект в течении нескольких лет, тут-то то нюансы и всплывают.

Atum1то думать надо совсем мало
Да-да. В этом случае только JEE.


Atum11) Уровень постоянства - База
JEE тут при чем? С NoSQL уже дружит?

Atum12) Прослойка в виде ORM
JPA стоит юзать только из-за Spring Data. Голый JPA этот тот же Hibernate с ограничениями.

Atum13) объектная модель POJO - Entity
А в Spring у нас как-то иначе. Ну и не путайте POJO это одно, бины это другое, Entity это третье.

Atum14) Stateless бины как API над CRUD операциями
Really? Какую пользу именно Stateless бины вам приносят? Теже POJO как сервисы чем хуже?

Atum15) Уровень Фасадного API

Это в JEE6 что?

Atum15) Классы Контроллеры (Servlet)
6) Модель представления view (jsp)
Ну, а вот тут JEE сливает по всем статьям.
Либо JSF, либо JSP. Ни то ни другое и рядом не валяется с адекватными фреймверками.

Atum1Если есть аргументы типа - это есть в Спринг, но этого нет в Java EE и это очень нужно - буду признателен.
Spring MVC, Spring Data, Http Invoker, JDBC Template. Это даже вообще не заглядывая в список проектов Spring.
...
Рейтинг: 0 / 0
30.10.2013, 17:18:54
    #38447125
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
BlazkowiczAtum1Если есть аргументы типа - это есть в Спринг, но этого нет в Java EE и это очень нужно - буду признателен.
Spring MVC, Spring Data, Http Invoker, JDBC Template. Это даже вообще не заглядывая в список проектов Spring.
Предвижу коментарии в стиле "а это мне не нужно"
...
Рейтинг: 0 / 0
30.10.2013, 17:39:39
    #38447180
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
BlazkowiczНе смешно. EJB 3 этот тот же EJB 2 только с куцым CDI и упрощеным API

Нашел хорошее видео по поводу
Context Dependency Injection in Java EE 6
YouTube Video
...
Рейтинг: 0 / 0
30.10.2013, 17:55:06
    #38447231
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
BlazkowiczJEE тут при чем? С NoSQL уже дружит?

Кажется, уже да :) Один индус подружил :)

https://blogs.oracle.com/arungupta/entry/java_ee_6_and_nosql

Классы Контроллеры (Servlet)

6) Модель представления view (jsp)

Ну, а вот тут JEE сливает по всем статьям.
Либо JSF, либо JSP. Ни то ни другое и рядом не валяется с адекватными фреймверками.


Сливает это да.

Да JSF - монстр на изучение которого уйдет жизнь.
Но JSP - очень гибок :) - особенно если писать в стиле php %)

Есть еще velocity. Но куму интересно представление сейчас на стороне сервера?

Сейчас все уходит на клиента , HTML5 CSS3 , AJAX ...

все что сейчас надо от сервера это отдать данные в виде json или xml
Сейчас Сервер все больше это просто набор REST сервисов.
Сейчас это набор ссылок по которым клиент получает отдельно данные и отдельно схемы как эти данные отобразить ...

Сейчас MVC - перешел (переходит) полостью на сторону клиента - локальное хранилище данных, отображение, поведение итд.
( http://www.ozon.ru/context/detail/id/8798187/ Веб-приложения на JavaScript)

и Это правильно . Задачи Сервера - отдать данные как можно большему количеству пользователей и как можно быстрее.

Со временем java форнт разработчик станет экзотической вакансией , его должен сменить JavaScript разработчик.
...
Рейтинг: 0 / 0
30.10.2013, 17:58:06
    #38447240
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн декоратор для Servlet'a
Atum1Context Dependency Injection in Java EE 6
особого упрощения от спринг я там не увидел , все тоже самое.

Всё да не всё. В любой моммент может оказаться как с интерцепторвами "ой, а мы не предусмотрели в спеке возможности инжектить в интерцепторы, поэтому наш хвалёный GF этого не умеет." В следующей версии, конечно исправят. Но в каждой всплывает что-то новое.

Atum1так что за список наоборот спасибо :) буду признателен если появится еще пара тройка действительно стоящих технологий и либ.

Ну берем список из той статьи

Web Container ✓ 53 MB (tcServer 2.6.3 Developer Edition)
т.е. как бы Web Container ничего не весит, а tcServer, ОГО! 53 MB. Можно подумать говна туда понапихано.
И почему именно tcServer. Я могу взять Jetty и прикрутить туда Spring без всяких придурошных дескрипторов и запаковать всё это в executable jar. JEE спецификация что на этот счет говорит?

Security ✓ 12 MB (Spring Security 3.1.0)
лолшто? Это он JAAS со Spring Security сравнил. Да?


Persistence ✓ 6.3 MB (Hibernate 4.1.0, required)
Окай. К 6й версии можно сказать подтянулись. JPA можно юзать. Тока накой он тут это сюда приплел? Hibernate это не Spring. Spring может юзать JPA. JEE до Spring Data ещё расти и расти.

Dependency Injection ✓ 5.3 MB (Framework)
Угу. https://java.net/jira/browse/GLASSFISH-20794
Уже писал выше. То сюда не инжектим. То туда не инжектим. То ваши POJO не понимает.

Web Services ✓ 796 KB (Spring WS 2.0.4)
Spring WS это фигня какая-то. А вот CXF рулит и заруливает голый JAXWS.

Messaging ✓ 3.4 MB (RabbitMQ Server 2.7.1)
Тоже ерунда. Берем любой MQ и пользуем. Можно подумать внутри JEE контейнера какой-то уникальный MQ живет и Spring его не может заюзать?

936 KB (Java client 936)OSGi ✓ 1.3 MB (Spring OSGi 1.2.1)
Ого! 400Кб разницы!!!

GlassFish and WebLogic (starting at 33 MB) 83.3 MB
GlassFish - глючное, тормозное говно с кучей индусского кода внутри.
А на счет WebLogic не вижу сравнения в цене с вышеуказанным tcServer.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Паттерн декоратор для Servlet'a / 25 сообщений из 47, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]