Что играет роль «основного метода» в сервлете? - PullRequest
10 голосов
/ 07 января 2010

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

Ответы [ 5 ]

13 голосов
/ 07 января 2010

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

2 голосов
/ 19 октября 2012

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

1 голос
/ 16 января 2010

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

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

1 голос
/ 07 января 2010

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

0 голосов
/ 16 января 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...