|
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
|
|
Регистрация/Вход просмотр сообщений Servlet?24.03.2016, 21:31. Показов 3647. Ответов 38
Всем доброго времени суток, подскажите, как правильно реализовать регистрацию новых абонентов?
Есть БД с таблицей registr и полями login, pass, message, online. Главный вопрос как проверять существует данный пользователь в БД или нет, потому как сейчас один и тот-же login можно создавать n-раз, на просторах читал что нужно обрабатывать через js? Как тогда связать servlet с js или нужно связывать jsp с js? или всё вместе? Как собственно это происходит? Может у кого есть пример? Я думаю не одному мне будет полезна данная статья. Дальше, интересно, если пользователь такой есть, как выводить tooltip с сообщением, что такой есть в базе? Затем интересно как работает вход в систему, а именно как запоминать, что пользователь авторизовался. Тут я думаю spring security справиться с этим вопросом? Далее, хотелось бы знать как вести подсчет пользователей, сколько зарегистрировано (тут я думаю можно sql - запросом посчитать сколько полей в бд ну или по id), как определить, сколько человек на данный момент онлайн? И, конечно, пункт обратной связи, или сообщения, как сделать аналогично сообщениям на этом ресурсе или как в вк, то есть, если пришло сообщение определенному пользователю (я так понимаю тут формируем sql запрос для поиска человека в бд, и если такой есть, то в его поле message помещаем текст после нажатия на кнопку отправить), как сделать что бы оно отображалось сразу без обновления страницы. Поделитесь пожалуйста своим опытом, интересными статьями, буду очень благодарен любым вашим советам, и вашим мнениям, помогите разобраться, может вы как специалисты видите эту реализацию иначе. Всем большое спасибо
0
|
|
| 24.03.2016, 21:31 | |
|
Ответы с готовыми решениями:
38
Ошибка javax.servlet.ServletException: Error instantiating servlet class myclasses.StudentServlet
Не работает import javax.servlet.*, javax.servlet.http.* в J2EE |
|
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
|
||||
| 24.03.2016, 22:30 | ||||
|
При обработке на сервере запроса в свою очередь тоже нужно проверить существует ли зарегистрированный пользователь, либо установить поле unique=true, и обработать соответствующий эксепшен. Иногда пропускают 1й вариант и делают сразу 2й, но тогда пользователь не узнает что ник уже занят, пока не нажмет кнопку сабмита. Добавлено через 5 минут
1
|
||||
|
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
|
|
| 24.03.2016, 22:33 [ТС] | |
|
Любопытный, мне хотелось бы без обновления страницы пользователь уже был проинформирован, я так понимаю что для такой реализации нужно использовать ajax который будет общаться с servlet'ом ? читал что ajax может при вводе в input обращаться к базе не чаще 100мс. а далее уже servlet смотрит бд и сравнивает данные и передает в ajax ?
0
|
|
|
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
|
|
| 24.03.2016, 22:35 | |
|
Насчет остального - ты пока с этим разберись. Почитай про AJAX, поищи примеры. Без него той интерактивности, о которой ты говоришь, не добиться(если не брать в расчет websocket)
1
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 24.03.2016, 22:35 | |
|
Dostik, вы тут задавали вопросов на месяц разработки функционала. Постарайтесь задвать более конкретные и узконаправленные вопросы. Отвечать на эту простыню мне нарпимер лень т.к развернутый ответ займет не одну страницу.
0
|
|
|
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
|
|
| 24.03.2016, 22:38 | |
|
Dostik,
AJAX отправляет асинхронные запросы серверу, что позволяет получить актуальную информацию и обновить данные на странице, не обновляя саму страницу. В сети информации масса, в том числе и на русском.
1
|
|
|
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
|
||
| 24.03.2016, 22:40 [ТС] | ||
). Большое спасибо за ответ
0
|
||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||
| 24.03.2016, 22:43 | ||
|
1
|
||
|
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
|
|
| 24.03.2016, 22:45 [ТС] | |
|
KEKCoGEN, Прошу прощения, если у вас есть возможность, вы не могли бы убрать лишнее ? А именно оставить только вопрос про регистрацию, и переименовать тему, регистрация + ajax (я учту ваши пожелания и впредь буду формулировать вопросы по другому. С ув Dostik), если такой возможности нет, то заранее у всех прошу прощения
просто вопросов действительно много Всем спасибо за ответ
0
|
|
|
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
|
|
| 24.03.2016, 22:46 | |
|
Dostik,
При использовании SS это все можно отконфигурировать его штатными настройками. Использовать SS не обязательно, но тогда тебе придется описывать самому массу функционала, который он предоставляет, что для новичка вызовет не мало проблем, и ничего сложного с его настройкой на самом деле нет. Офф документация спринга отлично все описывает.
1
|
|
|
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
|
||
| 24.03.2016, 22:51 [ТС] | ||
|
Добавлено через 4 минуты Любопытный, На просторах примеров хватает, но только для авторизации из конфига SS, а как авторизовать из БД не совсем раскрывают суть, из-за этого возникает еще больше вопросов, а копи-пастить без понимания на первый взгляд элементарных вещей я думаю глупо...
0
|
||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||
| 24.03.2016, 22:52 | ||
Сообщение было отмечено Dostik как решение
Решение
1
|
||
|
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
|
|
| 24.03.2016, 22:59 [ТС] | |
|
KEKCoGEN, кратко но именно этой краткости и не хватало ... Спасибо, я тут обратился к великому гуглу и вот что он мне насоветовал для моей задачи использовать COMET - так как это непрерывный канал, то при вводе logina при регистрации абонент сразу будет видеть занято имя или свободно, правильно гугл насоветовал или ajax'a хватит с головой ? Опять же вопрос на чистом js писать или на jquery ? говорят вроде как на jquery запросы в 2 раза меньше, к чему склоняетесь вы ?
0
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 24.03.2016, 23:04 | |
Сообщение было отмечено Dostik как решение
Решение
Dostik, jquery и аjax вполне хватит для ваших целей. Я бы на вашем месте вообще сначала не заморачивался с красивостями и возвращал бы инфу, о том что логин занят, после сабмита формы. Когда все будет работать, добавить то что вы хотите будет не так трудно.
1
|
|
|
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
|
||
| 24.03.2016, 23:07 | ||
Сообщение было отмечено Dostik как решение
Решение
http://docs.spring.io/spring-s... tmlsingle/ тут все есть. Читать много но полезно.
Добавлено через 2 минуты Тем более эту проверку нужно будет делать в любом случае, не зависимо от того будет ли проверка через ajax во время ввода данных или нет.
1
|
||
|
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
|
||
| 24.03.2016, 23:13 [ТС] | ||
|
Всем большое спасибо, завтра приступлю к практике, ждите новых вопросов в теме. С Ув. Dostik
![]() Добавлено через 1 минуту Любопытный,
0
|
||
|
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
|
|
| 24.03.2016, 23:15 | |
|
Dostik,
Принял запрос на регу, сделал выборку из бд по этому нику, если результатов нет создаешь запись, если есть - возвращаешь ошибку. Второй вариант, делаешь поле уникальным, пытаешься сразу запостить запись, перехватываешь эксепшен, если нарушение уникальности - возвращаешь ошибку, но мне этот вариант не нравится.
1
|
|
|
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
|
|
| 24.03.2016, 23:19 [ТС] | |
|
Любопытный, Значит я правильно обдумал вариант поиска совпадений по бд. Еще раз большое вам спасибо.
0
|
|
|
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
|
|
| 25.03.2016, 08:46 | |
|
Dostik, или как вариант просто можете воспользоваться с Set'ами вот, т.е. при успешной авторизации (проверка по сету и если там нет такой записи то дальше, иначе эксепшн типа "такой пользователь уже авторизовался...") записываете например в TreeSet и все. а при выходе или же при окончание сессии уничтожаете/удаляете этот запись.
вроде так, могу ошибиться
0
|
|
|
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
|
|
| 25.03.2016, 08:55 | |
|
asus,
Регистрация не настолько частая процедура, что бы в памяти хранить полный список юзеров. Выборка при реге решает все проблемы.
0
|
|
| 25.03.2016, 08:55 | |
|
Помогаю со студенческими работами здесь
20
Регистрация/Вход Регистрация и вход Регистрация и Вход Регистрация и вход пользователя Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|