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

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


person Tristian    schedule 23.12.2010    source источник


Ответы (1)


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

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

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

person erickson    schedule 23.12.2010
comment
Спасибо за ответ. Я согласен с вами, хотя мне нравится учиться горьким путем, в тот момент, когда мне пришла в голову идея, я знал, что потребуется много кода, чтобы покрыть это более похожим на структуру способом вместо того, чтобы делать это для единственный сервлет, который заставил меня задуматься о создании фильтра. В любом случае, я пытался попасть в Spring-MVC и Hibernate, но я не так много читал о его настройке в идее Intellij. - person Tristian; 23.12.2010