Сервис для
сео - оптимизаторов

Найди ошибки на сайте
Ошибки мешают продвижению сайта
Исправь ошибки на сайте
Сайт без ошибок продвигать легче
Получи новых клиентов
Новые клиенты принесут больше прибыль

Введение в прослушиватель сервлетов с использованием NetBeans

Вступление

Слушатель является одной из самых популярных технологий, используемых в веб-приложении J2EE. Это часть Java-сервлета, как определено в Servlet 2.3, но у них есть свои специфические функции. Существует два наиболее широко используемых прослушивателя сервлетов, а именно ServletContextListener и HttpSessionListener.

Ожидается, что к концу этого учебного пособия вы сможете реализовать ServletContextListener, а также HttpSessionListener и настроить их в соответствии с вашими потребностями. Кроме того, было бы хорошо, если у вас есть некоторые базовые знания по общим веб-приложениям J2EE, таким как JSP, Java Servlet и NetBeans.

Дорожная карта

В этой статье мы рассмотрим, как реализовать простой ServletContextListener, а также простой HttpSessionListener. Вот подробности для этой статьи.

  1. Что такое слушатель?
  2. Создание проекта в NetBeans
  3. Реализация ServletContextListener
  4. Реализация HttpSessionListener
  5. Заключение

Что такое слушатель?

Слушатель - это в основном предопределенные интерфейсы, которые доступны разработчикам в жизненном цикле приложения для решения некоторых задач, особенно при работе с ServletContext, а также с объектами HttpSession. Хотя это экономит много времени, оно также делает приложение менее сложным и более удобным в обслуживании. В одном веб-приложении разрешено использование нескольких прослушивателей, поэтому это означает, что ServletContextListener может сосуществовать с HttpSessionListener. Как вы, возможно, знаете, широко используются два прослушивателя, а именно ServletContextListener и HttpSessionListener. Они оба имеют разные функции, но оба одинаково важны.

ServletContextListener будет выполнен, как только ваше веб-приложение будет развернуто на вашем сервере приложений (Tomcat или т. Д.). Если у вас есть какие-либо требования, которые должны быть выполнены до запуска приложения, ServletContextListener - лучшее место для вас. ServletContextListener также определяет, когда ваше веб-приложение удаляется. Например, если вы замените файл WAR в Tomcat, Tomcat автоматически повторно развернет ваше веб-приложение на основе последней WAR. Повторное развертывание означает, что Tomcat сначала удаляет веб-приложение, а затем развертывает новое веб-приложение. В этом случае ServletContextListener должен иметь возможность замечать, когда веб-приложение уничтожается (удаляется), а также когда веб-приложение запускается (развертывается). Для вашей информации, ServletContextListener создан для того, чтобы вы имели дело с ServletContext. Каждое веб-приложение в J2EE будет иметь один ServletContext, связанный с ним. Детали ServletContext не рассматриваются в этом руководстве.

В отличие от ServletContextListener, HttpSessionListener имеет дело с объектом HttpSession. Объект HttpSession всегда используется в каждом веб-приложении и очень полезен для поддержки данных, поскольку они доступны на протяжении всего жизненного цикла веб-приложения, пока они не будут аннулированы или пользователь не закроет браузер. Это определение HttpSession, взятое с веб-сайта Sun. «Предоставляет способ идентифицировать пользователя по нескольким запросам страниц или посещению веб-сайта и хранить информацию об этом пользователе». Детали объекта HttpSession не рассматриваются в этом руководстве.

Хорошо, без дальнейших задержек, давайте подготовимся к нашему уроку. Запустите свой NetBeans 5.0. После того, как он был полностью запущен, он должен выглядеть как на скриншотах ниже.

Создание проекта в NetBeans

Предполагая, что вы установили NetBeans 5.5 и имеете Java Development Kit (jdk) 1.5.

Во-первых, мы должны создать новый проект веб-приложения для нашего слушателя. Это веб-приложение содержит все страницы JSP, а также наши классы Servlet и Listener. Чтобы создать новое веб-приложение в NetBeans 5.5, вы можете перейти в меню и выбрать «Файл»> «Новый проект». Вам сразу же отобразится мастер, и вам потребуется предоставить некоторую информацию для настройки вашего веб-приложения.

Вам сразу же отобразится мастер, и вам потребуется предоставить некоторую информацию для настройки вашего веб-приложения

Когда мастер отобразится, как показано на рисунке выше, выберите «Веб» на левой панели и «Веб-приложение» на правой панели и нажмите кнопку «Далее». Все остальные параметры используются для разработки других видов проектов в NetBeans и не имеют отношения к нашему учебному пособию.

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

На следующем или втором этапе настройки нашего веб-приложения вы можете указать имя веб-приложения. Ну, пожалуйста, не стесняйтесь называть это как хотите. В этом случае, чтобы сделать это самоочевидным, я называю наше веб-приложение ListenerWebApp, как показано на рисунке ниже. В середине мастера есть опция под названием Сервер, которая имеет значение Bundled (Tomcat 5.5.16). Это демонстрирует, что NetBeans 5.5 будет использовать свой Tomcat в качестве сервера по умолчанию. Другая конфигурация должна остаться прежней и нажать кнопку Готово. Вы также можете нажать кнопку Далее, чтобы перейти на последнюю страницу, где вы можете определить рамки, которые вы хотели бы использовать, как показано на рисунке ниже. Тем не менее, мы можем пропустить последний шаг, так как мы не используем какую-либо инфраструктуру для нашего слушателя. Итак, мы завершили настройку веб-приложения и готовы реализовать наш первый прослушиватель.

После завершения настройки веб-приложения у вас должен появиться экран, подобный приведенному ниже. Он также создаст один JSP-файл по умолчанию с именем index.jsp в папке веб-страниц.

Реализация ServletContextListener

Как вы, возможно, знаете, ServletContextListener полезен, если вы хотите инициализировать ваше веб-приложение с некоторыми значениями в начале вашего веб-приложения. Хорошо, не теряя больше времени, давайте запустим наш первый слушатель, который является ServletContextListener.

Чтобы создать прослушиватель, необходимо щелкнуть правой кнопкой мыши раздел «Исходные пакеты» в веб-приложении и выбрать «Создать»> «Класс Java», как показано на рисунках ниже. Мы можем просто создать его как простой класс Java. Впоследствии нам нужно настроить его для прослушивания. Не волнуйтесь; это не будет слишком сложно. Пожалуйста, следуйте инструкциям, и вы должны увидеть, как мы конвертируем этот простой Java-класс в Listener.

В этом мастере вы можете определить пакет для вашего Java-класса. Обычно мы используем Package для группировки нескольких файлов Java с одинаковыми функциями. Например, если у меня есть StringUtil.java для манипулирования String и EncodingAlgorithmUtil.java для кодирования, я найду их в одном пакете с именем «com.mycompanyname.util», так как они на самом деле являются служебными классами. Так как это наш первый слушатель, давайте создадим один пакет с именем "com.mycompany.listener". Имя класса в основном ваше имя слушателя. Чтобы сделать это самоочевидным, я называю это ServletListener. Вы можете оставить другие настройки как есть.

Как только это будет завершено, оно должно выглядеть так, как показано ниже.

Как только это будет завершено, оно должно выглядеть так, как показано ниже

Теперь самое важное - нам нужно, чтобы класс «реализовывал» ServletContextListener. Итак, вот мой последний ServletListener.java.

java

Теперь у нас есть ошибка в нашем классе. Зачем? Потому что, как только мы пытаемся реализовать интерфейс javax.servlet.ServletContextListener, нам нужно определить несколько методов реализации для него. Вот почему я упоминал ранее, что это предопределенные интерфейсы. Это где наша работа будет начата. Вам нужно добавить два метода для этого.

  1. public void contextInitialized (ServletContextEvent arg0)
  2. public void contextDestroyed (ServletContextEvent arg0)

Так вот мой последний ServletListener.java

открытый класс ServletListener реализует javax.servlet.ServletContextListener {public void contextInitialized (ServletContextEvent arg0) {System.out.println ("Контекст сервлета инициализирован ...."); } public void contextDestroyed (ServletContextEvent arg0) {System.out.println ("Контекст сервлета уничтожен ...."); }}

Хорошо, логически, если наше веб-приложение запущено, выполняется метод contextInitialized. Если наше веб-приложение удалено (возможно, закрытие / повторное развертывание веб-приложения в Tomcat), выполняется метод contextDestroyed.

Теперь нам нужно добавить еще одну запись в наш web.xml.

<listener> <listener-class> com.mycompany.listener.ServletListener </ listener-class> </ listener>

Одна вещь, которую вы должны знать, что эта запись прослушивателя ДОЛЖНА быть до записи <servlet> (если есть). Так вот мой последний web.xml выглядит так.

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

Ниже показан браузер, который автоматически открывается NetBeans.


Если вы внимательно посмотрите на консоль Tomcat в NetBeans, вы поймете, что «Контекст сервлета инициализирован…» распечатан. Это означает, что мы успешно реализовали наш ServletContextListener. Как мы тестируем, чтобы уничтожить ServletContextListener?

Щелкните правой кнопкой мыши свой веб-проект и выберите Deploy Project. Развертывание проекта означает удаление приложения, которое в данный момент загружено, и загрузку нового последнего приложения в Tomcat. Удаление приложения также означает, что мы уничтожаем объект ServletContext, в котором должен быть обнаружен наш ServletContextListener.

Теперь снова посмотрите на консоль Tomcat. Да, мы получаем желаемые результаты. Ниже на иллюстрациях показано, что у меня есть в моей машине.

Реализация HttpSessionListener

Хорошо, теперь давайте перейдем к HttpSessionListener. HttpSessionListener в основном используется для управления сессиями. В отличие от ServletContextListener, HttpSessionListener используется для работы с объектом HttpSession.

Сеанс считается созданным, если вы назначаете ему какой-либо атрибут, и аналогичным образом он считается уничтоженным, если вы его аннулировали. Существует метод, который вы можете вызвать в классе Session для аннулирования сеанса. Вы когда-нибудь видели веб-приложение, которое попросит вас повторно войти в систему, если вы оставите сайт без изменений в течение определенных периодов времени? Он проверяет время, когда вы не активны, и отменяет действие сеанса, если неактивное время достигло предела.

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

Теперь у нас есть ошибка в нашем классе. Зачем? Поскольку, как только мы пытаемся реализовать интерфейс javax.servlet.HttpSessionListener, нам нужно определить несколько методов реализации для него. Вот почему я упоминал ранее, что это предопределенные интерфейсы. Это где наша работа будет начата. Вам нужно добавить два метода для этого.

  1. public void sessionCreated (HttpSessionEvent arg0)
  2. public void sessionDestroyed (HttpSessionEvent arg0)

Итак, вот мой последний SessionListener.java

Хорошо, если вы добавите один атрибут к сессии, сессия будет создана для вас, и она должна распечатать «Сессия создана». Как только вы лишите законной силы сеанс, сеанс должен быть уничтожен, и «Сеанс уничтожен» будет распечатан.

Теперь нам нужно добавить еще одну запись в наш web.xml.

<listener> <listener-class> com.mycompany.listener.SessionListener </ listener-class> </ listener>

Одна вещь, которую вы должны знать, что эта запись прослушивателя ДОЛЖНА быть до записи <servlet> (если есть). Так вот мой последний web.xml выглядит так. Да, слушателю нужен только <listener> </ listener>

Если вы правильно следите за нашим предыдущим слушателем, у вас должно получиться что-то похожее на иллюстрации ниже.

Это последний файл web.xml, который у меня был. Это показывает, что у меня два слушателя одновременно.

Хорошо, на самом деле мы завершили наш SessionListener. Единственное, как это проверить. Есть одна вещь, которую вы можете сделать. Создайте один JSP в вашем веб-приложении, и мы назначим некоторые атрибуты сеансам (добавление атрибута означает, что мы создаем сеанс). Создайте свой JSP с помощью мастера и назовите его как хотите. Для моего случая я хотел бы назвать его testSession.jsp.

Хорошо, теперь давайте добавим несколько кодов для добавления атрибута в сессию. Мы добьемся этого с помощью Scriptlet. Scriptlet - это в основном Java-коды, которые встроены в нашу JSP. Это помогает нам в создании динамического приложения. Поэтому, пожалуйста, добавьте ниже коды в вашем JSP.

<% System.out.println ("Добавление атрибута в сеанс ..."); request.getSession (). setAttribute ("test", "test"); System.out.println («Добавление атрибута в сессию завершено!»); System.out.println ("Удаление сеанса ..."); request.getSession () недействительными (). System.out.println («Удаление сеанса завершено!»); out.println («Успешное добавление и удаление атрибутов из сеанса»); %>

Этот скриптлет может быть размещен в любом месте вашего JSP. Для этого примера я могу просто поместить его в свой тег <body> </ body>. Если вы находитесь на правильном пути, это должно выглядеть как на скриншоте ниже.

Создайте файл JSP, щелкнув правой кнопкой мыши по своим веб-страницам и выбрав «Новый», затем «JSP».

Недавно созданная JSP должна выглядеть как на рисунке ниже.

Добавьте скриптлет для тестирования нашего HttpSessionListener.

Теперь, чтобы попробовать оба слушателя, давайте снова развернем наше веб-приложение.

Попробуйте выполнить testSession.jsp, введя URL-адрес вручную в браузере.


Это желаемый вывод, который я получил с локальной консоли Tomcat.

открытый класс SessionListener реализует javax.servlet.http.HttpSessionListener {public void sessionCreated (HttpSessionEvent arg0) {System.out.println («Сессия создана»); } public void sessionDestroyed (HttpSessionEvent arg0) {System.out.println ("Сессия уничтожена"); }}

Заключение

Ну, вы должны были успешно реализовать и ServletContextListener, и HttpSessionListener. Эти два слушателя являются наиболее широко используемыми, и я надеюсь, что, прочитав учебник, у вас будет четкий путь и цель, когда вы продвигаетесь в программировании на J2EE. Есть еще много, чтобы узнать, и, пожалуйста, не волнуйтесь, это не сложно. Мое предложение состоит в том, чтобы попробовать образец в этом уроке и попытаться настроить его. Ваши навыки будут значительно улучшены, если вы будете больше практиковаться. Есть также два дополнительных Слушателя, которые не упомянуты в этом руководстве, это ServletContextAttributeListener и HttpSessionAttributeListener. Они просто немного отличаются от нашего урока. Посмотрите на них и опробуйте их.

Вы можете найти проект NetBeans для исходных кодов учебника. Вот ,
Файл README для исходных кодов доступен Вот ,

Похожие

LG G3S LG-D722 - мир цифровых технологий
Введение и обработка Запущенный всего несколько недель спустя, который по-прежнему является флагманом бренда LG, смартфон G3S представляет собой модель среднего класса, вдохновленную его старшим братом, знаменитым LG G3 , Он включает в себя линии дизайна и несколько функций, включая пользовательский интерфейс Android, связанный с несколькими инструментами приложений, разработанными южнокорейской фирмой.
Что такое слушатель?
Зачем?
Как мы тестируем, чтобы уничтожить ServletContextListener?
Вы когда-нибудь видели веб-приложение, которое попросит вас повторно войти в систему, если вы оставите сайт без изменений в течение определенных периодов времени?
Зачем?