Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
 Передача объектов между сервлетами  [new]
Molasar
Member

Откуда:
Сообщений: 767
Всем привет!

При старте web-приложения создаю объект MessageService.
Как мне передать объект MessageService в сервлет EventSender и запустить сам сервлет?

@WebListener
public class SCJMSProducerSCL implements ServletContextListener {

    private MessageService messageService;

    @Override
    public void contextInitialized(ServletContextEvent sce) {
           messageService = new MessageService();
           messageService.connect();
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
           messageService.close();
    }

}
@WebServlet(name = "sender", urlPatterns = {"/send"})
public class EventSender extends HttpServlet {
    
    private final MessageService messageService;

    public EventSender(MessageService messageService) {
        this.messageService = messageService;
    }
    
    @Override
    protected void doGet(
            HttpServletRequest req, 
            HttpServletResponse resp) throws ServletException, IOException {
        Event event = new Event();
        messageService.send(event);
        
        try (PrintWriter printWriter = resp.getWriter()) {
            printWriter.println("Message sent");
        }
    }

}
1 авг 19, 14:03    [21939857]     Ответить | Цитировать Сообщить модератору
 Re: Передача объектов между сервлетами  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3334
Molasar,

вот здесь:

    @Override
    public void contextInitialized(ServletContextEvent sce) {
           messageService = new MessageService();
           messageService.connect();
    }


добавить:

     sce.getServletContext().setAttribute("attrname", messageService);


в EventSender:

   public void init(ServletConfig config) throws ServletException {
       super.init(config);
       messageService = (MessageService) config.getServletContext().getAttribute("attrname");
   }
1 авг 19, 14:17    [21939874]     Ответить | Цитировать Сообщить модератору
 Re: Передача объектов между сервлетами  [new]
Molasar
Member

Откуда:
Сообщений: 767
Работает с 1-го раза!
Благодарю за конкретный ответ!
Андрей Панфилов
Molasar,

вот здесь:

    @Override
    public void contextInitialized(ServletContextEvent sce) {
           messageService = new MessageService();
           messageService.connect();
    }


добавить:

     sce.getServletContext().setAttribute("attrname", messageService);


в EventSender:

   public void init(ServletConfig config) throws ServletException {
       super.init(config);
       messageService = (MessageService) config.getServletContext().getAttribute("attrname");
   }
1 авг 19, 14:22    [21939885]     Ответить | Цитировать Сообщить модератору
 Re: Передача объектов между сервлетами  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2561
Molasar
Всем привет!

При старте web-приложения создаю объект MessageService.
Как мне передать объект MessageService в сервлет EventSender и запустить сам сервлет?

а как ты что то пишешь ,даже не понимая как это работает и самое элементарное не можешь передать атрибут ?)
тебе бы хлопец изначально почитать про HTTP протокол
далее почитать что такое сервлет
и все встанет на свои места

пс.ну и есл и начал с сервлетов для начала нужно научится конфигурировать их в xml а уж потом анотациями
1 авг 19, 15:44    [21939988]     Ответить | Цитировать Сообщить модератору
 Re: Передача объектов между сервлетами  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2149
asv79,
Просто он начал с микросервисов))
1 авг 19, 15:56    [21940010]     Ответить | Цитировать Сообщить модератору
 Re: Передача объектов между сервлетами  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2561
закончит пузырьковой сортировкой
1 авг 19, 15:59    [21940014]     Ответить | Цитировать Сообщить модератору
Все форумы / Java Ответить