Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Фильтры сервлетов (от параметра к атрибуту)

Автор вопроса: TristianОтветов: 1

У меня есть этот "зуд", я думаю о написании фильтра, который будет перехватывать запросы и извлекать параметры, а затем преобразовывать эти параметры в атрибуты, чтобы они поступали на уровень BusinessLogic (BO) как тип объектов, которыми они должны быть (например, Long, ObjectDTO, String и т. д.), в настоящее время я обрабатываю это так, что BO получает запрос, извлекает параметры, выполняет проверку nulls и преобразует их соответствующим образом в соответствующий тип. Является ли мой новый подход более удобным, я прочитал это Основы фильтров а также хотелось бы услышать больше об использовании фильтров, чем упомянуто в статье. Причина, по которой я подумал об этом, заключается в том, что при работе с doGet пользователь может опустить параметры, поэтому я буду использовать фильтр, чтобы установить их, если они отсутствуют, есть мнения?

javaservletsservlet-filters

Ответы

Ответ 1 · рейтинг 2 · erickson

Многие веб-фреймворки делают что-то подобное.

Например, наряду со многими другими функциями фильтр Struts определяет, что Action вызывается запросом. Он использует отражение, чтобы определить свойства Action, доступность для записи и их тип. Затем он обрабатывает имя каждого параметра и, если оно соответствует свойству действия, пытается привести значение параметра к экземпляру типа свойства. В случае успеха свойство Action устанавливается с результирующим значением. После правильной настройки Action фильтр вызывает его.

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы