2016-03-08 3 views
0

Я новичок в Tomcat (& веб-программировании в целом), и я создаю простое веб-приложение, которое должно вернуть определенный счетчик. Единственная проблема, с которой я столкнулся, заключается в том, чтобы эта переменная-счетчик оставалась в живых во время полной работы Tomcat. Может кто-то, пожалуйста, укажите мне в хорошем направлении (хорошая ссылка будет очень приятной :)), потому что я, очевидно, искал неправильные ключевые слова.Сохранение переменной во время полной работы Tomcat

Итак, идея состоит в том, чтобы иметь класс, который содержит переменную счетчика, и каждый раз, когда кто-то отправляет запрос на определенный URL-адрес, счетчик увеличивается и отправляется обратно в качестве ответа. Этот счетчик должен будет отслеживать все запросы на этот URL, пока Tomcat жив, и создание таблицы mysql просто для этого кажется огромным излишеством.

Заранее благодарим за любой ответ.

+0

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

+0

У меня нет кода, который касается описанной проблемы, потому что я не знаю, как с этим бороться. Я не ищу, чтобы кто-то написал код для меня, я просто спросил, есть ли способ сохранить переменную во время выполнения Tomcat в веб-приложении. – paperplane

ответ

0

Я дам вам быстрый и грязный ответ, так как в идеале вы бы использовали фреймворк, который позволяет создавать экземпляр класса и вводить его в любые контроллеры, которые у вас есть (я предполагаю, что вы не используете фреймворк, как вы ничего на ваш вопрос)

не говоря уже о Но собирается усеченный j2ee (боги хорошего программного обеспечения, пожалуйста, прости меня!)

  • на сервлет, вы будете иметь экземпляр HttpServletRequest на вашем doPost или doGet метод.
  • Позвоните HttpServletRequest.getServletContext, который вернет экземпляр ServletContext, который вы можете использовать в качестве карты для хранения всех вещей. Этот экземпляр является общим для всех запросов, поступающих в ваше приложение.
  • Звоните ServletContext.getAttribute(name), чтобы получить ваш счетный класс (я бы предложил что-то вроде AtomicLong, если у вас много посетителей: D).
+0

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

+0

Рад помочь! Как только вы познакомитесь со спецификацией Servlet, я предлагаю вам потратить некоторое время на изучение одной из сред MVC для Java. Спецификация Servlet была написана давно и полностью совместима с обратной связью ... что означает, что многие вещи там не идеальны. – Augusto

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