Простой web Java чат. Часть 2 – Создание Servlet и JavaServer Pages (JSPs). Результаты тестирования простого чата

Создание Servlet

1)       Создадим пакет levkat.chatfilews.jsp.controller в папке src нашего Web Dynamic проекта

2)       Создадим Servlet в этом пакете с названием Controller

Создание Servlet - шаг 1
Создание Servlet - шаг 2
Создание Servlet - шаг 3

Контроллер будет проверять, какие параметры были переданы в сервлет, а затем перенаправит запрос на правильный JSP.

Таки же образом создаем и второй сервлет – MessageLog.java .

Создание Views (JSP)

1)    Выберите папку «WebContent», в контекстном меню New > JSP

Создание JSP - шаг 1
Создание JSP страницы - шаг 2
Создание JSP страницы - шаг 3

2)    Аналогично создаем Chat.jsp

3)    Выберите Login.jsp, выполните Run As… > Run on Server.

Далее реализовываем метод doPost() классов Servlet и модифицируем Login.jsp и Chat.jsp (исходники скачать можно здесь , не забудьте удалить разширение .doc).

Примеры таблиц базы данных и работы чата

Таблица User
Таблица Message
Вход в чат при помощи существующего аккаунта - Sofia
Пример вывода ошибки при попытке войти в чат с неправильным именем или паролем
Простой чат после входа в систему
Пример отправки сообщения только что вошедшим пользователем - Sofia
Пример добавления записи в таблицу Message (ведение log журнала)

Использованные источники:

  1. http://www.ibm.com/developerworks/ru/library/os-dw-os-wtpservice-i/index.html
  2. http://www.toodlepip.co.uk/blog/2008/08/using-sqlite-eclipse-and-dbedit
  3. http://en.wikibooks.org/wiki/An_Introduction_to_Java_JDBC_using_SqLite/Example_base_class
  4. http://www.vogella.de/articles/EclipseWTP/article.html
  5. http://www.devirtuoso.com/2009/07/beginners-guide-to-using-ajax-with-jquery/
  6. http://ru.wikipedia.org/wiki/JQuery
  7. http://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%80%D0%B2%D0%BB%D0%B5%D1%82

Простой web Java чат. Часть 1 – Настройка Eclipse, подлючение провайдера базы данных, создание и тестирование web-сервиса

Пост описывает выполнение контрольной работы по дисциплине “Internet-технологии и язык Java ”

на тему: “ Реализация корпоративной системы передачи мгновенных сообщений между сотрудниками корпорации”.

Конечно же тема звучит очень серьезно как это часто бывает в институтах, но сам чат на самом деле выглядит простым. Хотя с его помощью можно будет разобраться с такими вопросами:

  1. Какое необходимо программное обеспечение для реализации web чата на Java ?
  2. Как настроить Eclipse для Tomcat ?
  3. С чего начать создание web сирвиса?
  4. Как добавить драйвер базы данных?
  5. Как создать Servlet и JSP ?
  6. Как реализовать нажатие кнопки мыши (click) по кнопке на JSP странице?
  7. Как отображать информацию без перезагрузки страницы?
  8. Как получить доступ к любому элементу DOM?
Исходники вы можете скачать здесь – SimpleChatAndFileSharing.zip (не забудьте удалить разширение .doc).

Чтобы запустить приложение вам понадобиться выполнить некоторые шаги, которые будут описаны ниже и поменять путь, присвоенный константе JDBC_URL (класс DataAccessLayer, строка 24).

Итак, для начала само задание:

1. Реализовать сервер, который:

а) регистрирует пользователя;

б) передает список on-line пользователей клиенту и поддерживает его в активном состоянии;

в) фиксирует время передаваемых сообщений, ведет log журнал.

2. Реализовать клиент, который:

а) отправляет запрос об регистрации пользователя на сервер;

б) получает список on-line пользователей с сервера и обновляет его в реальном времени;

в) передает и отправляет сообщение другому клиенту.

Необходимое программное обеспечение

1. Eclipse Galileo
2. Apache-tomcat
3. Java SDK
4. sqlitejdbc-v056.jar
5. jQuery.js

В моем случае библиотеку можно будет найти по пути SimpleChatAndFileSharingChatAndFileSharingWebContentassetsjQuery.js

6. jquery.timers-1.2.js

В моем случае библиотеку можно будет найти по пути SimpleChatAndFileSharingChatAndFileSharingWebContentassets jquery.timers-1.2.js

Настройка переменных среды окружения (Vista)

1)       Выполнить Пуск/Компьютер, Свойства Компьютера, Дополнительные параметры системы.

2)       В окне «Свойства системы» выполнить «Переменные среды…».

3)       В окне «Переменные среды» выбрать переменную PATH и выполнить «Изменить…». Установить значение переменной C:SunSDKbin;C:SunSDKjdkjrebin

4)       В окне «Переменные среды» создать переменную JAVA_HOME, установить значение C:SunSDKjdk

Настройка Eclipse для Tomcat

1)       Запустите Eclipse.

2)       Выберите Window > Preferences.

3)       Выберите Server >Runtime Environments

4)       Нажмите Add…

5)       Выберите Apache > Apache Tomcat v6.0 и нажмите Next.

6)       Задайте свойства (ниже представлены примерные свойства) и нажмите Finish.

Name: Apache Tomcat v6.0

Tomcat installation directory: D:SoftApache-tomcat-6.0.24

JRE: jdk

7)       Диалоговое окно Preferences должно выглядеть следующим образом:

Preferences > Server > Runtime Environments > Edit...

8)        Выполните Ok в окне Preferences.

Создание нового динамического Web-проекта

Следующим шагом будет создание динамического Web-проекта. В конечном итоге проект будет содержать Java-код, вызываемый Web-сервисом.

1)       Выберите File > New > Other.

2)       Выберите Web > Dynamic Web Project и нажмите Next.

Создание динамического web проекта

3)       Укажите следующие параметры и нажмите Finish.

Project name: ChatAndFileSharing

Target runtime: Apache Tomcat v6.0

Dynamic web module version: 2.5

Configuration: Default Configuration for Apache Tomcat v6.0

Параметры динамического web проекта

Настройка Data Management

1)       Скопируйте sqlitejdbc-v056.jar в папку WebContentWEB-INFlib

2)       Выберите Window > Preferences.

3)       Data Management > Connectivity > Driver Definitions

4)       Выполнить настройки как показано на скриншотах ниже

Настройка Data Management
Настройки Name/Type
Настройки Jar List
Настройки Properties

Настройка параметров Debug

Контекстное меню кнопки Debug As...

1)       Запустить дебаг приложения использую кпопку «Debug».

2)       В контекстном меню кнопки Debug As… (выглядит как жук) выбираем Debug Configurations…

3)       Выбираем пункт Tomcat v6.0 Server at localhost и переходим на закладку Classpath

4)       Выполняем «Add External JARs…», указываем путь к файлу sqlitejdbc-v056.jar, выполняем «Открыть»

Настройка параметров Debug

Работа с базой данных в перспективе Database Development

1)       Откройте перспективу Database Development.

2)       В окне Data Source Explorer выберите пункт Database Connections, в конекстном меню выполнить New…

3)       В окне Connection Profile выбрать SQLite

Name: SQLite DB

4)       На следующем шаге должно появиться окно Specify a Driver and Connection Details

5)       Выполните «Test Connection». В случае успеха должно появится сообщение как показано ниже

Успешное соединение

6)       В окне Data Source Explorer должна отобразится структура базы данных

Структура базы данных

Создаем основные Java-файлы

1)    IChatSercice.java

2)    Chat.java

3)    ChatMessage.java

4)    ChatPerson.java

5)    DataAccessLayer.java

Файлы для скачивания доступны в начале данного поста.

Создание Web-сервиса из Java-файлов

Теперь мы опишем шаги, позволяющие Web-сервису вызывать Java-код.

1)       Убедитесь в том, что файлы .java скомпилированы. Для этой цели нажмите Project > Clean…, выберите Clean all projects и нажмите OK.

2)       В пакете levkat.chatfilews.core правой кнопкой выберите класс с расширением *.java и нажмите Web Services > Create Web Service.

3)       Оставьте значения, заданные по умолчанию и нажмите Next.


Создание web-сервиса

Тестирование Web-сервиса при помощи Web Services Explorer

1)       Выберите файл *.wsdl

2)       В контекстном меню выбрать Web Services/Test with Web Service Explorer

3)       Раскрыть дерево TestService

4)       Выбрать необходимый метод, ввести параметры при необходимости и выполнить Go.

5)       Просмотреть *.wsdl файл можно в окне браузера по ссылке, например http://localhost:8080/ChatAndFileSharing/services/Chat?wsdl. Сервер должен быть запущен.

Продолжение выполнения работы будет описано в посте Простой web Java чат. Часть 2

Использованные источники:

  1. http://www.ibm.com/developerworks/ru/library/os-dw-os-wtpservice-i/index.html
  2. http://www.toodlepip.co.uk/blog/2008/08/using-sqlite-eclipse-and-dbedit
  3. http://en.wikibooks.org/wiki/An_Introduction_to_Java_JDBC_using_SqLite/Example_base_class
  4. http://www.vogella.de/articles/EclipseWTP/article.html
  5. http://www.devirtuoso.com/2009/07/beginners-guide-to-using-ajax-with-jquery/
  6. http://ru.wikipedia.org/wiki/JQuery
  7. http://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%80%D0%B2%D0%BB%D0%B5%D1%82