Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Общий доступ к объекту, сохраненному в сессии


Автор: Barvetal 26.9.2006, 13:53
Всем привет!

Мне нужно в коде запихнуть мой объект в сессию, реквест или куда-нибудь таким образом, чтобы к его значениям можно было получить доступ через любые request'ы любых пользователей в пределах как минимум всего веб-приложения. Именно через request!

Например, я в коде у себя запихнул куда-то мой объект, который содержит title страницы. Я хочу, чтобы к объекту с именно этим значением title можно было добраться через request (HttpServletRequest) и для Васи Пупкина, который находится в Москве, и для Джона Брауна из США.

Как я могу это сделать?

Всем заранее спасибо!


P.S.: У Вас может возникнуть вопрос, почему мне нужно получать доступ к моему объекту именно через request? А вот зачем:

Я разрабатываю портал на jetspeed-2. Мне нужно иметь возможность в дизайне (velocity-шаблон) получать доступ к объекту моего собственного класса, который содержит динамически генерируемые title для страниц. А из velocity-шаблона можно получить доступ только к текущему request. Вот я и хотел бы иметь возможность через request добраться до объекта, который был сохранен где-то при инициализации моего кода. То-есть, мой объект должны быть общим для всех пользователей.

Автор: batigoal 26.9.2006, 14:57
Цитата(Barvetal @  26.9.2006,  14:53 Найти цитируемый пост)
Мне нужно в коде запихнуть мой объект в сессию, реквест или куда-нибудь таким образом, чтобы к его значениям можно было получить доступ через любые request'ы любых пользователей в пределах как минимум всего веб-приложения. Именно через request!

Через контекст приложения?

Автор: 3x3 26.9.2006, 15:19
Цитата(Barvetal @ 26.9.2006,  13:53)
из velocity-шаблона можно получить доступ только к текущему request. 

Это, видимо, потому, что кто-то ничего не запихал в VelocityContext при его создании.

Автор: sergakrem 26.9.2006, 17:46
А может быть просто singleton объект тебе поможет?


Код

public class MySingletonClass {
  
  private static MySingletonClass instance = new MySingletonClass();
  
  private String field1 = "";
  private String field2 = "";
  
  /** Creates a new instance of MySingletonClass */
  private MySingletonClass() {
  }
  
  public static MySingletonClass getInstance() {
    return instance;
  }
  
  public String getField1() {
    return field1;
  }
  
  public void setField1(String field1) {
    this.field1 = field1;
  }
  
  public String getField2() {
    return field2;
  }
  
  public void setField2(String field2) {
    this.field2 = field2;
  }
  
  
}



Конструктор приватный, метод getInstance стаетический - вот расположи его в каком-то видимом пакете и вызывай его когда тебе надо и откуда тебе надо - устанавливай/читай свойства.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)