sirs правильно сказал. Разбейте задачу на более мелкие задачи.
Если я правильно понял вашу проблему, то решение может быть таким.
Пользователь ввел данные, нажал кнопку login/sing up у вас отправился POST запрос на сервер. Данный запрос будет обрабатывать какой-то конкретный Action в нем уже будет вызываться Service -> Dao -> BD. Design pattern: Front Controller + Strategy (
stackoverflow.com/a/3542297/6099067). В сервисе мы дергаем запись из таблицы User смотрим, если такой есть, проверяем пароль и переадресовываем его куда нужно. Если такого пользователя не существует или пароль не совпадает, то переадресовываем пользователя на ту же страницу входа но уже с ошибкой, мол, сори друг такого пользователя у меня в БД нет.
В случае когда пользователь хочет зарегистрироваться с уже имеющимся в БД логином, то есть несколько вариантов. Можно что-бы когда он нажмет sing up на сервак отправился запрос, этот запрос будет обрабатываться каким-то RegistrationAction и он уже будет решать как и что делать. Варианты: Action дергает Service и сперва спрашивает, существует ли пользователь с таким логином, если нет, то ок -> добавь его в бд, если есть, то переадресовываем пользователя на ту же страницу регистрации и кидаем ему message мол сори такой логин уже занят. Это все произойдет при нажатии на кнопку login/sing up..... Если необходимо сделать проверку на вхождение логина в бд еще до того как пользователь нажмет кнопку, т.е. как только он введет логин и переключится на другое поле, то мы в JS создаем скрипт который по технологии AJAX пошлет запрос на сервер, к примеру в CheckLoginAction, который возьмет логин и проверит его на вхождение в бд, если входит, то пересылаем назад пользователю message мол сори такой логин занят, если все хорошо и не входит, то ничего не посылаем. Затем этот message при выходе из JS функции отображаем. JS позволяет редактировать код страницы налету.