2010-01-07 10 views

Odpowiedz

13

Serwlety są zaprojektowane do uruchamiania wewnątrz kontenera serwletów (np. Apache Tomcat). Wykonanie serwletu odbywa się w następujący sposób: Kontener serwletu wywołuje metodę GenericServlet.service() w aplecie, który zwykle wywołuje odpowiednią metodę doXxx(), np. doGet(), doPost(), itp. Metoda doXxx() jest odpowiedzialna za interpretację żądania HTTP i podanie odpowiedniej odpowiedzi. GenericServlet.service() jest z grubsza analagiczne do main() w zwykłej starej klasie java.

+3

.. i podczas uruchamiania kontener serwletów robi 'HttpServlet servletName = new ServletClass();' oparty na 'web.xml' lub' @ WebServlet' i przechowuje go w pamięci. Ilekroć skonfigurowany "wzorzec adresu URL" pasuje do wzorca apletu, wówczas na konkretnej instancji zostanie wywołana metoda 'service()'. – BalusC

1

Serwlety są wdrażane na serwerze aplikacji Java (kontener serwletu). Są trochę "pasywni". Kiedy piszesz serwlet, twój kod serwletu jest wywoływany przez kontener, gdy tylko pojawi się żądanie lub potrzeba. Więc nie widzisz "głównego" w twoim serwecie (cała sprawa nie jest uruchamiana z serwletu), który jest wewnątrz serwera aplikacji (możesz sobie wyobrazić, że start serwera aplikacji zaczyna się od jakiegoś głównego).

1

Jeśli szukasz obszaru w serwlecie do umieszczenia kodu uruchamianego przy starcie (podobnie jak main()), spójrz na implementację interfejsu ServletContextListener.

Jego dwie metody są wywoływane przy uruchamianiu i zamykaniu aplikacji.

+0

@jbruce - to prawie nie jest równoważne z głównym, IMO. –

+0

@Stephen - założyłem, że pytanie zostało zadane z koniecznością wykonania kodowania, jak w metodzie main() (takich jak inicjalizacje, połączenia itp.), Zdaję sobie sprawę, że moja odpowiedź tak naprawdę nie odzwierciedla tego, więc opracowałem . – jbruce2112

0

W serwletce Java nie ma żadnej głównej metody, niż metoda ActionListener w Swing JButton ma główną metodę. To, co oni mają, to metody, do których można się podłączyć po wystąpieniu określonego zdarzenia (kliknięcie na przykład w JButton lub żądanie HTTP PUT w HttpServlet). W obu przypadkach dostaniesz informacje o zdarzeniu, które wywołało wywołanie - ActionEvent dla JButton i ServletRequest dla serwletu.

Myślenie o serwletach w kategoriach programów obsługi zdarzeń jest prawdopodobnie bardziej przydatne niż próba pomyślenia o nich jak o autonomicznej aplikacji Java, w której jesteś odpowiedzialny za cały przepływ sterowania.

2

Serwlet działa wewnątrz kontenera (np. Tomcat). Ten kontener wykonuje swoją pracę pod jvm. Tutaj pojemnik przyjmuje "brak głównej metody". W samym programie java główna metoda programu mówi o uruchomieniu strumienia kontrolnego wykonania. Ale w przypadku aplikacji bazowej serwletu, aplikacja jvm nie musi przeszukiwać głównej metody. Zbiornik serwletu informuje jvm o początkowym strumieniu kontrolnym .

+0

Kontener serwletu tworzy obiekt określonego serwletu w zależności od adresu URL żądania i inicjuje go poprzez dostarczenie obiektów config/context, a następnie wykonuje swoją metodę usługi (lub doXXX zależy od wywołania metody HTTP) – Patriks

Powiązane problemy