Система стилей голосования с использованием технологии Jsp/Servlet
Вопрос
Кто-нибудь реализовал систему голосования stackoveflow/digg, используя технологию JSP/Servlet/Java?Если да, не могли бы вы перенаправить меня к книгам или онлайн-материалам?А также, есть ли уже какие-нибудь плагины для учебных целей?
Решение
Главное ключевое слово здесь Аякс.По сути, это сводится к тому, чтобы позволить Javascript код запускает асинхронный запрос (запрос в «фоновом режиме», чтобы клиент не видел никакой «вспышки контента») на стороне сервера и, в конечном итоге, проходит/изменяет элементы в HTML-ДОМ дерево (которое доступно через document
объект в Javascript) после получения ответа.
Для начала подключите некоторые функции JS к файлу click
событие элементов, представляющих кнопки голосования вверх и вниз.Пусть эти функции JS отправят асинхронный запрос на сервер с идентификатором сообщения и статусом голосования (вверх или вниз) и соответствующим образом изменят элемент, представляющий число, пройдя через HTML DOM.Это в принципе все.
Чтобы избежать проблем, связанных с поведением браузера, лучше всего использовать тщательно разработанную и поддерживаемую стороннюю среду Javascript с аяксическими возможностями, например jQuery.
Вы просто используете JSP/Servlet обычным способом:JSP как технология представления/шаблона можно просто использовать для записи необходимого HTML/CSS/JS, а вывод можно динамически контролировать с помощью библиотек тегов (таких как JSTL) и EL.Сервлет как контроллер запросов/ответов может использоваться просто для управления запросами и, в конечном итоге, для выполнения действий, специфичных для запроса.Не только для JSP-страниц, но и для аяксических запросов.Я рекомендую использовать Гсон в сервлете, чтобы иметь возможность отправлять и/или получать JSON строки, чтобы Javascript мог обрабатывать их дальше без каких-либо проблем с преобразованием.
На сайте jQuery вы можете найти множество плагинов «4-х сторон». Здесь вы можете найти все плагины, соответствующие ключевому слову vote
.Один из них может быть вам полезен.
Надеюсь это поможет.