![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
Добрый вечер! Пишу на JSP гостевую книгу ... сделал класс Сообщение и класс который хранит в себе коллекции сообщений. Возник вопрос ... как сделать так что бы список сообщений постоянно пополнялся ? Базу данных решил не использовать. Сохраняю все в xml файл. При добавлении нового сообщения получается так что я создаю новый экземпляр класса CommentsDB (класс который хранит в себе коллекцию сообщений) и все сообщения которые были до этого удаляются ... Как сделать 1 глобальный экземпляр класса CommentsDB который будет заполнятся 1 раз при создании новой сессии и удаляться при ее завершении?
Надеюсь понятно изложил суть проблемы) |
|||
|
||||
Prof_2000 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 26.3.2005 Где: Харьков, Украина Репутация: нет Всего: 1 |
А Singleton не подходит?
А вообще, по-моему, правильнее реализовывать паттерн Data Access Object - т.е. интерфейс типа MessageDAO чтоб сохранять и читать сообщения, его реализацию XMLMessageDAO, и синглтоновую фабрику для создания экземпляров. Так в любой момент можно будет перейти к использованию базы(если, например, количество пользователей сильно возрастёт) Это сообщение отредактировал(а) Prof_2000 - 30.8.2010, 17:06 --------------------
Pereant qui ante nos nostra dixerunt! (лат.) Да погибнут те, кто раньше нас высказал наши мысли! |
|||
|
||||
4epT |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
Почитал насчет Singleton, думаю такой вариант подойдет ) Единственное что будет в такой ситуации: Клиент заходит на JSP страницу, стартует его сессия, создается экзепляр класса Singleton ... что произойдет когда в это же время на страницу зайдет другой клиент? В статье в которой я читал там был приведен самый простой вариант:
Наверное можно было попроще задать вопрос) нужно ли реализовывать этот класс "для много поточных приложений" ? И еще один вопрос) не будет ли конфликтов когда в одно и то же время N пользователей начнут читать и писать в один и тот же файл? За это будет отвечать веб сервер? Это сообщение отредактировал(а) 4epT - 30.8.2010, 13:56 |
||||
|
|||||
Prof_2000 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 26.3.2005 Где: Харьков, Украина Репутация: нет Всего: 1 |
Синглтон - общий для всего контекста веб-приложения. Соответственно каждый пользовательский запрос типа "добавить сообщение" обратится к одному и тому же экземпляру. А насчёт конфликтов - сделайте нужные методы synchronized.
--------------------
Pereant qui ante nos nostra dixerunt! (лат.) Да погибнут те, кто раньше нас высказал наши мысли! |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
Как тогда лучше реализовать Сингелтон? И вообще походу плохая была идея вместо БД использовать XML ... да? Это сообщение отредактировал(а) 4epT - 30.8.2010, 18:16 |
|||
|
||||
5ad1sT |
|
||||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 10.2.2009 Репутация: нет Всего: нет |
Вообще все равно что использовать. Если ты реализуешь DAO. |
||||
|
|||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
А что такое DAO ? можно какой то пример?
|
|||
|
||||
rang3r |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 2.4.2009 Репутация: нет Всего: нет |
DAO паттерн(хотя наверно анти-паттерн) который закрывает прямой доступ к данным.
Прочитай про это в книге "Шаблоны проектирования" М.Гранда, там и пример и суть. |
|||
|
||||
5ad1sT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 10.2.2009 Репутация: нет Всего: нет |
http://www.ibm.com/developerworks/ru/library/j-genericdao/ Вот хороший пример. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |