Контексты
От: Soloik  
Дата: 31.05.07 15:53
Оценка:
Я начинаю разработку приложения используя следующие технологии STRUTS2 HIBERNATE SPRING POSTHRESQL TOMCAT. Сейчас идет этап планирования, опыта разработки самостоятельных крупных проектов нет. Подскажите какие контексты существуют и какие из них для чего использовать. Например в каком контексте хранить данные для отображения на странице (последний пост форума, последняя размещенная статья), в каком контексте хранить настройки по пользователю (количество посещений, права доступа, группы). Ну и конечно какие вообще есть контексты.
Re: Контексты
От: Igor.K США  
Дата: 31.05.07 18:27
Оценка: +1
Здравствуйте, Soloik, Вы писали:

S>Я начинаю разработку приложения используя следующие технологии STRUTS2 HIBERNATE SPRING POSTHRESQL TOMCAT. Сейчас идет этап планирования, опыта разработки самостоятельных крупных проектов нет. Подскажите какие контексты существуют и какие из них для чего использовать. Например в каком контексте хранить данные для отображения на странице (последний пост форума, последняя размещенная статья), в каком контексте хранить настройки по пользователю (количество посещений, права доступа, группы). Ну и конечно какие вообще есть контексты.

Что такое "контекст" по Вашему?
"СССР — четыре слова и все лживые" — Вагрич Бахчанян
Re[2]: Контексты
От: Soloik  
Дата: 01.06.07 10:47
Оценка:
Здравствуйте, Igor.K, Вы писали:
IK>Что такое "контекст" по Вашему?

1. ServletContext — Общесерверный контекст, который хранит в себе информацию о
различных сервлетах, их инициализациооных данных и прочие. Время жизни =
времени жизни сервера.
2. Session (Context) — Серверный контекст, хранящий информацию предназначенного
для конкретного пользователя. Время жизни = время сеанса работы пользователя
+ максимальный таймаут(проставляется в настройках сервера).
3. Request (Context) — Серверный контекст содержащий информацию, необходимую
передать пользователю(или следующему сервлету) по запросу пользователя.
Время жизни = запрос клиента (время между вызовами двух сервлетов).

Судя по Вашему вопросу я неточно обьяснил, это потому что теория есть а практики нет. Как организуются вышеописанные контексты, нужны ли они вообще. В общем по простому где нужно хранить данные о приложении.
Re: Контексты
От: aka50 Россия  
Дата: 01.06.07 10:58
Оценка:
Здравствуйте, Soloik, Вы писали:

S>Я начинаю разработку приложения используя следующие технологии STRUTS2 HIBERNATE SPRING POSTHRESQL TOMCAT. Сейчас идет этап планирования, опыта разработки самостоятельных крупных проектов нет. Подскажите какие контексты существуют и какие из них для чего использовать. Например в каком контексте хранить данные для отображения на странице (последний пост форума, последняя размещенная статья), в каком контексте хранить настройки по пользователю (количество посещений, права доступа, группы). Ну и конечно какие вообще есть контексты.


Все зависит от задачи. Но основное правило: минимизация времени хранения. Т.е. если что-то нужно только на время рендеринга страницы — это в Request, если на время жизни сессии (в том числе и в случае с multipage визардами) — можно повесить в сессии. Но если данных много — придется в сессии оставлять некий ID, а все состояние сбрасывать в бд.

Такие вещи как "последний пост форума, последняя размещенная статья" должны лежать в БД (возможно кешируемой). Иначе будет соревнование за одно/два поля в например servlet context и получишь вместо многопоточного сервера — однопоточный.
Re[3]: Контексты
От: Igor.K США  
Дата: 01.06.07 17:11
Оценка:
Здравствуйте, Soloik, Вы писали:

S>Здравствуйте, Igor.K, Вы писали:

IK>>Что такое "контекст" по Вашему?

S>Подскажите какие контексты существуют и какие из них для чего использовать.

Ну вот, на этот вопрос Вы уже себе, практически, ответили.

S>Например в каком контексте хранить данные для отображения на странице (последний пост форума, последняя размещенная статья)

Application — если последний пост форума для всех пользователей этого форума. И в Session, если это последний пост для конкретного пользователя. Хотя, если пользователь не авторизовался, то это, в общем то, не имеет смысла. То же самое для последней размещенной статьи.

S>в каком контексте хранить настройки по пользователю (количество посещений, права доступа, группы).

Session.

S>Ну и конечно какие вообще есть контексты.

Я, тут вот, начал знакомится с Seam framework http://www.jboss.com/products/seam. Так они поддерживают еще ряд контекстов:
— Stateless context
— Event context, хотя, это, фактически request context.
— Page context
— Conversation context
— Business process context
"СССР — четыре слова и все лживые" — Вагрич Бахчанян
Re[4]: Контексты
От: Igor.K США  
Дата: 01.06.07 17:33
Оценка:
S>>Например в каком контексте хранить данные для отображения на странице
Уточнение: данные, которые вы собираетесь показывать на страничке, могут хранится в любых "контекстах". aka50 упомянул даже еще один "контекст" — базы данных.
"СССР — четыре слова и все лживые" — Вагрич Бахчанян
Re[4]: Контексты
От: Igor.K США  
Дата: 01.06.07 17:42
Оценка: +1
S>>Например в каком контексте хранить данные для отображения на странице
Уточнение: данные, которые вы собираетесь показывать на страничке, могут хранится в любых "контекстах". aka50 упомянул даже еще один "контекст" — базы данных, хотя к servlet контейнерам это и не относится.
"СССР — четыре слова и все лживые" — Вагрич Бахчанян
Re[4]: Контексты
От: Аноним  
Дата: 02.06.07 12:53
Оценка:
Здравствуйте, Igor.K, Вы писали:


IK>Ну вот, на этот вопрос Вы уже себе, практически, ответили.

Не совсем. Я еще не до конца понял какими обьектами или классами реализуются контексты.
1. Application — javax.servlet.ServletContext — правильно?
2. Session — javax.servlet.http.HttpSession — так?

А астальные.
Re[5]: Контексты
От: Igor.K США  
Дата: 04.06.07 05:19
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Здравствуйте, Igor.K, Вы писали:



IK>>Ну вот, на этот вопрос Вы уже себе, практически, ответили.

А>Не совсем. Я еще не до конца понял какими обьектами или классами реализуются контексты.
А>1. Application — javax.servlet.ServletContext — правильно?
да.
А>2. Session — javax.servlet.http.HttpSession — так?
да.

А>А астальные.

javax.servlet.ServletRequest

Только это интерфейсы, а не классы. Реализация уже зависит от конкретного контейнера.
... << RSDN@Home 1.2.0 alpha rev. 653>>
"СССР — четыре слова и все лживые" — Вагрич Бахчанян
Re[6]: Контексты
От: Soloik  
Дата: 04.06.07 08:26
Оценка:
Здравствуйте, Igor.K, Вы писали:

Спасибо всем — вот теперь все улеглось в голове.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.