Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> подключение файла *.properties 
:(
    Опции темы
katala
Дата 14.5.2006, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 15.4.2006

Репутация: нет
Всего: нет



Цитата

Твой объект Properties p изменяется в программе ? 

нет я только беру оттуда данные.
а по поводу этого 
Цитата

З.Ы. Я считаю, что хранить сами объекты в сессии нехорошо. И тому есть причины. Чтобы изменить объект, который храниться в сессии, ты должен:
1. Достать его из сессии.
2. Изменить объект
3. Опять записать уже измененый объект обратно в сессию.

Слишком накладно. Как насчет того, чтоб хранить в сессии не сам объект, а некоторый его идентефикатор. Тогда, чтоб изменить объект тебе надо будет:
1. Достать идентефикатор из сессии
2. Найти объек через идентефикатор
3. Изменить объект

я тоже только беру объек.  поэтому на скорость не влияет 
PM MAIL   Вверх
Tirael
Дата 14.5.2006, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 31.1.2006
Где: Москва

Репутация: 1
Всего: 7



Цитата(katala @  14.5.2006,  22:51 Найти цитируемый пост)
нет я только беру оттуда данные.

Ну тогда зачем хранить эти данные в КАЖДОЙ сессии ? 
Сохрани из в КОНТЕКСТЕ. 
Один раз.
На все времена.
И будет тебе счастье .....  smile  smile 

Вот полный пример листенера, который, в моем случае, читает данные из файла .properties (а именно: имена и описания комнат чата), создает соответствующие объекты (комнаты чата, список комнат чата) и сохраняет нужный объект в контексте ( список комнат чата)
Код

import ru.vchat.web.ChatRoomList;
import ru.vchat.web.ChatRoom;

import javax.servlet.ServletContextListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletException;
import java.util.ResourceBundle;
import java.util.Properties;
import java.util.Enumeration;
import java.io.InputStream;
import java.io.FileInputStream;

public class LocalePropertiesListener implements ServletContextListener {

    public void contextDestroyed(ServletContextEvent sce) {

    }
    public void contextInitialized(ServletContextEvent sce) {
        String bundle = sce.getServletContext().getInitParameter("VChatBundle");
        ResourceBundle resourceBundle = ResourceBundle.getBundle(bundle);
        sce.getServletContext().setAttribute("VChatBundle",resourceBundle);

        ChatRoomList roomList = new ChatRoomList();
        Properties props;
        String path = "/WEB-INF/classes/" + sce.getServletContext().getInitParameter("ChatPropertyFileName");
        path = sce.getServletContext().getRealPath(path);
        int maxOfMessages = Integer.parseInt(sce.getServletContext().getInitParameter("MaxOfMessages"));
        //System.out.println("MaxOfMessages: " + maxOfMessages);
        //System.out.println("path: "+ path);
        try {
            if (path != null) {
                InputStream fis = new FileInputStream(path);
                props=new Properties();
                props.load(fis);

                String roomName;
                String roomDescr;
                Enumeration keys = props.keys();
                while(keys.hasMoreElements()) {
                    roomName = (String)keys.nextElement();
                    roomDescr = (String)props.getProperty(roomName);
                    ChatRoom chatRoom = new ChatRoom(roomName, roomDescr);
                    chatRoom.setMaximumNumberOfMessages(maxOfMessages);
                    //System.out.println(roomName+" = "+ roomDescr);
                    roomList.addRoom(chatRoom);
                }
                fis.close();
                sce.getServletContext().setAttribute("roomList", roomList);
            } else {

            }
        } catch(Exception e) {};
    }
}
 

Потом можно легко получить данный объект. Например (из сервлета) вот так :
Код

ChatRoomList roomList = (ChatRoomList)getServletContext().getAttribute("roomList");
 

Это сообщение отредактировал(а) Tirael - 14.5.2006, 23:12
--------------------
 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0688 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.