2013-06-28 2 views
0

У меня есть сервлет, используемый для создания учетной записи. У меня вопрос: мне, контроллер должен быть полностью независимым от параметров запроса, но, например, если у меня есть метод контроллера какДолжен ли контроллер или модель обрабатывать параметры?

public User signup(String pseudo, String firstname, String lastname, String password, String email) 

и я хочу, чтобы пользователю ввести свой пароль дважды, я должен пройти второй вход в качестве аргумента для регистрации (нарушение «простоты» этого метода), или я должен проверить, соответствует ли первый пароль второму в сервлете (чтобы контроллер выполнял только свою работу, но делал вход проверки сервлета)?

ответ

1

Представьте, что контроллер является клеем между вашим видом и моделью (услуги, даос и т. Д.). Контроллер должен анализировать входящие данные из представления, передавать его в модель и затем возвращать ответ.

В вашем случае я бы проверял, равны ли пароли на странице с помощью JavaScript, отправлять данные только с одним паролем в контроллер (сервлет), извлекать в требуемые параметры контроллера и вызывать метод из бизнес-логики для создания учетной записи.

+0

Хм, вы правы! Но давайте представим, что у меня есть разумные данные, поступающие от клиента, проверка должна выполняться на стороне сервера, и если это так, то сервлет, который проверяет данные? Или я мог бы создать класс, называемый сервлетом, чтобы утверждать, что входы не повреждены, и этот класс может принять запрос как аргумент (поэтому он будет строго привязан к сервлету, но это не имеет значения, потому что это его роль) –

+1

Thüzhen, конечно, проверка на стороне сервера требуется для каждого webapp, но я лично не вижу смысла в проверке того, совпадают ли оба пароли, поскольку это не угрожает моей целостности данных webapp. В вашем случае следуйте принципу высокой сплоченности ООП и создайте отдельный класс для парсера args HttpServletRequest и валидатор args. Вы когда-нибудь пытались использовать Spring MVC? Для ваших проблем есть много недостатков. – iskramac