Как передать информацию из сервлета в обычный класс Java или Java bean

#java #servlets

#java #сервлеты

Вопрос:

Как получить информацию, которая хранится в сеансе сервлета, из обычного класса Java..

Комментарии:

1. Вызов общедоступных методов класса java.

2. Что здесь подразумевается под нормальным? Не является ли этот класс частью того же веб-приложения, что и сервлет?

3. он находится в том же веб-приложении

4. Я думаю, что обычный класс Java означает класс, который не расширяет класс Httpservlet или не реализует какой-либо интерфейс сервлета. У меня такая же проблема @saury ,

Ответ №1:

Как и в случае с любым другим классом: передавая его в качестве аргумента конструктора или метода:

 MyJavaClass c1 = new MyJavaClass(session.getAttribute("foo"));
MyOtherJavaClass c2 = new MyOtherJavaClass();
c2.doSomethingWithSession(session);
  

Ответ №2:

Обычно я бы передавал информацию из сервлета в класс: сервлет инициирует требуемые действия, передавая любую информацию, необходимую для выполнения этих действий.

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

(Если это не помогает в вашей конкретной ситуации, пожалуйста, расскажите нам подробнее о том, что вы пытаетесь сделать.)

Комментарии:

1. на самом деле у меня есть значение, которое сохраняется в сеансе при входе в приложение. я хочу получить это значение сеанса в классе Java того же приложения

2. @pmad: Извините, честно говоря, не совсем понятно, что вы имеете в виду.

3. : На самом деле моему приложению необходимо подключаться к разным базам данных на основе одного параметра, т.е. Имени учетной записи. У меня есть этот параметр в сеансе. Но как я могу получить этот параметр в обычных классах Java.

4. @pmad: Как я уже сказал: вы передаете ее из сервлета. Предположительно, вы выполняете какое-то действие в ответ на запрос, верно? Итак, ваш код сервлета вызывает ваш код, отличный от сервлета, поэтому передайте значения в этот момент.

Ответ №3:

HttpSession objHttpSession=request.getSession().getAttribute(@argument@);