powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Паттерн декоратор для Servlet'a
25 сообщений из 47, страница 1 из 2
Паттерн декоратор для Servlet'a
    #38446269
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день !
Есть такой вопрос :

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
Паттерн декоратор для Servlet'a
    #38446286
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что мешает взять любой web framework с нужными возможностями?
...
Рейтинг: 0 / 0
Паттерн декоратор для Servlet'a
    #38446359
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczЧто мешает взять любой web framework с нужными возможностями?
Например спринг :)

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

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

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

а потом в теле processRequest - смапить urlPatterns и RequestMapping.
...
Рейтинг: 0 / 0
Паттерн декоратор для Servlet'a
    #38446384
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как в рантайме получить все значения urlPatterns ?
...
Рейтинг: 0 / 0
Паттерн декоратор для Servlet'a
    #38446566
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1Сейчас севрлет , если на него замаплено больше одного url
какая цель вызывать один сервлет на несколько разных URL?
...
Рейтинг: 0 / 0
Паттерн декоратор для Servlet'a
    #38446735
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Паттерн декоратор для Servlet'a
    #38446741
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123какая цель вызывать один сервлет на несколько разных URL? например так работает REST и я тоже так делаю))
...
Рейтинг: 0 / 0
Паттерн декоратор для Servlet'a
    #38446743
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочется создать "обертку" , чтобы вызовы из

processRequest

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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


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

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

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

Но еще не все реализовано.
...
Рейтинг: 0 / 0
Паттерн декоратор для Servlet'a
    #38446947
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Паттерн декоратор для Servlet'a
    #38446988
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1Да самое простое - одни сервлет один URL - это вырожденный вариант REST служб.
я бы сказала, что это - архитектура или принципы построения клиент-сервера в вебе.
Т.е. REST никак не относится к тому, один кусок кода вызывается по урл на Java (\\servlet_Name), или несколько кусков по If URL (surep_puper_servlet).

В том и был вопрос, какая разница аффтару делать один сервлет или несколько на каждый url.
Доводы у всех разные.
imho
...
Рейтинг: 0 / 0
Паттерн декоратор для Servlet'a
    #38447075
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Паттерн декоратор для Servlet'a
    #38447120
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Паттерн декоратор для Servlet'a
    #38447125
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczAtum1Если есть аргументы типа - это есть в Спринг, но этого нет в Java EE и это очень нужно - буду признателен.
Spring MVC, Spring Data, Http Invoker, JDBC Template. Это даже вообще не заглядывая в список проектов Spring.
Предвижу коментарии в стиле "а это мне не нужно"
...
Рейтинг: 0 / 0
Паттерн декоратор для Servlet'a
    #38447180
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczНе смешно. EJB 3 этот тот же EJB 2 только с куцым CDI и упрощеным API

Нашел хорошее видео по поводу
Context Dependency Injection in Java EE 6
YouTube Video
...
Рейтинг: 0 / 0
Паттерн декоратор для Servlet'a
    #38447231
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Паттерн декоратор для Servlet'a
    #38447240
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
25 сообщений из 47, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Паттерн декоратор для Servlet'a
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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