Есть ли способ поделиться одной переменной всеми классами сервлетов в Java - PullRequest
0 голосов
/ 25 февраля 2009

Мне нужно знать, есть ли способ изменить значение одной переменной двумя классами сервлетов. в одном сервлете мне нужно сделать переменную = true, а в другом сервлете мне нужно сделать переменную = false

Ответы [ 4 ]

4 голосов
/ 25 февраля 2009

Если вам нужна глобальная переменная для всего веб-приложения, для этого нужны атрибуты в ServletContext - обязательно внимательно прочитайте документ, чтобы понять, насколько «глобальными» являются эти атрибуты.

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

0 голосов
/ 25 февраля 2009

Вставьте данные в вашу базу данных (или другое постоянное хранилище).

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

0 голосов
/ 25 февраля 2009

Что именно вы хотите?

Вы можете использовать singleton и хранить эту переменную там, или использовать сеанс или запрос или что-то еще ...

0 голосов
/ 25 февраля 2009

Если вы хотите сохранить его, вы можете использовать HTTPSession, и тогда любой из сервлетов сможет получить доступ к переменной.

HttpSession session = request.getSession();
session.setAttribute("hello", "test");

http://www.exforsys.com/tutorials/jsp/jsp-session-object-methods.html

Взгляните на эту страницу, некоторую базовую информацию о сессиях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...