Создание объектов из запроса - PullRequest
0 голосов
/ 16 октября 2010

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

User toRegister = new User(request.getParameter("name"),
        request.getParameter("lastName"));

Есть больше параметров, но вы понимаете.

Таким образом, этот вид кода повторно используется в куче различных сервлетов (регистрация, добавление пользователя администратором, обновление пользователя самостоятельно, обновление пользователя администратора и т. Д.), И это довольно уродливо, поэтому я хотел его почистить. Две альтернативы, о которых я мог подумать, - это конструктор, который принимает объект запроса или статический метод в классе User для создания и возврата нового пользователя на основе запроса.

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

Ответы [ 2 ]

0 голосов
/ 19 октября 2010

Вместо того чтобы кодировать всю бизнес-логику в сервлете, почему бы вам не использовать базовую инфраструктуру MVCИспользование фреймворка значительно облегчит кодирование и тестирование.

0 голосов
/ 16 октября 2010

НЕ добавляйте c'or, который принимает Request в качестве аргумента. Таким способом вы только связываете свой класс User с Servlet API.

Вместо этого используйте Web Framework, как подсказывает @skaffman. Их много, и это облегчит вашу жизнь.

РЕДАКТИРОВАТЬ: Если вы отказываетесь изучать новую платформу, вы можете, по крайней мере, использовать BeanUtils какой-то подобной платформы для связывания данных. Однако я рекомендую вариант Web Framework.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...