Nano Hash - криптовалюты, майнинг, программирование

Что выступает в роли «основного метода» в сервлете?

Сервлет также является программой Java, но в сервлете нет основного метода. Кто возьмет на себя роль основного метода на сервете.

07.01.2010

Ответы:


1

Сервлеты предназначены для работы внутри контейнера сервлетов (например, Apache Tomcat). Выполнение сервлета происходит следующим образом: Контейнер сервлета вызывает файл GenericServlet.service() в сервлете, который обычно вызывает соответствующий метод doXxx(), например. doGet(), doPost() и т. д. Метод doXxx() отвечает за интерпретация HTTP-запроса и предоставление соответствующего ответа. GenericServlet.service() примерно аналогичен main() в простом старом классе Java.

07.01.2010
  • .. и во время запуска контейнер сервлета выполняет HttpServlet servletName = new ServletClass(); на основе web.xml или @WebServlet и сохраняет его в памяти. Всякий раз, когда настроенный url-pattern совпадает с сервлетом, метод service() будет вызываться для конкретного экземпляра. 07.01.2010

  • 2

    Сервлет работает внутри контейнера (например: tomcat). Этот контейнер выполняет свою работу под jvm. Здесь контейнер принимает «отсутствие основного метода». В простой Java-программе основной метод сообщает начальный поток управления выполнением. Но в случае базового веб-приложения сервлета jvm не нужно искать основной метод. Контейнер сервлета сообщает jvm о запуске потока управления.

    19.10.2012
  • Контейнер сервлета создает объект определенного сервлета в зависимости от URL-адреса запроса и инициализирует его, предоставляя объекты конфигурации/контекста, а затем выполняет свой метод службы (или doXXX зависит от вызова метода HTTP) 19.10.2012

  • 3

    Сервлет развернут на сервере приложений Java (контейнер сервлетов). Они какие-то "пассивные". Когда вы пишете сервлет, ваш код сервлета вызывается контейнером всякий раз, когда есть запрос или потребность. Таким образом, вы не видите «основной» в своем сервлете (все это не запускается из сервлета), который находится внутри сервера приложений (вы можете представить, что запуск сервера приложений начинается с какого-то основного).

    07.01.2010

    4

    Если вы ищете область в сервлете для размещения кода, который запускается при запуске (аналогично main()), взгляните на реализацию ServletContextListener.

    Два его метода вызываются при запуске и завершении работы приложения.

    16.01.2010
  • @jbruce - это вряд ли эквивалентно main, ИМО. 16.01.2010
  • @Stephen - я предположил, что вопрос был задан из-за необходимости выполнить некоторое кодирование, как в методе main() (например, инициализации, соединения и т. д.), я понимаю, что мой ответ на самом деле не отражает этого, поэтому я уточнил. 16.01.2010

  • 5

    В сервлете Java нет основного метода, так же как и у ActionListener на Swing JButton нет основного метода. У них обоих есть методы, к которым вы можете подключиться, когда происходит определенное событие (например, щелчок по JButton или HTTP-запрос PUT на HttpServlet). И в обоих случаях вам предоставляется информация о событии, вызвавшем вызов — ActionEvent для JButton и ServletRequest для сервлета.

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

    16.01.2010
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..