2010-05-07 13 views
2

Предположим, я использую Tomcat в качестве веб-контейнера.Просьба пояснить несколько моментов относительно Java Servlets

Верно ли, что когда-то все сервлеты найти в веб-приложение/WEBAPPNAME

являются Init (IALIZED), то каждое изменение собственности сервлета будет рассматриваться каждой сессии.

Так сессия 1 изменяет свойство имя пользователя, в servlet1 от "user1" в "user2"

сессии 1 закрыт.

сеанс 2 начинается. Он увидит «user2» как единственное значение свойства Servlet1.userName?

Любое изменение поля сервлета будет видно на всех последующих сеансах?

Являются ли сервлеты одиночными, не так ли?

ответ

3

Любое изменение поля сервлета будет видно на всех последующих сеансах?

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

Являются ли сервлеты одиночными, не так ли?

Сортировка да, в том смысле, что есть один экземпляр каждого сконфигурированного сервлета в одном контейнере сервлетов.

2

Да, если вы не используете SingleThreadModel, в этом случае может быть несколькими экземплярами сервлета. См. E. г. http://docstore.mik.ua/orelly/java-ent/servlet/ch03_04.htm

В любом случае, я бы не стал полагаться на это. Гораздо лучше написать сервлеты таким образом, чтобы они не зависели от этого.

Смежные вопросы