2010-01-07 18 views

Antwort

13

Servlets können in einem Servlet-Container (z. B. Apache Tomcat) ausgeführt werden. Die Ausführung eines Servlets erfolgt auf folgende Weise: Der Servlet-Container ruft die Methode GenericServlet.service() auf einem Servlet auf, das normalerweise die entsprechende Methode doXxx() aufruft, z. doGet(), doPost(), etc. Die doXxx() Methode ist verantwortlich für die Interpretation der HTTP-Anfrage und die Bereitstellung einer entsprechenden Antwort. GenericServlet.service() ist ungefähr analog zu main() in einer einfachen alten Java-Klasse.

+3

.. und während des Starts der Servlet-Container 'HttpServlet servletName = new ServletClass();' basierend auf der 'web.xml' oder dem' @ WebServlet' und speichert es im Speicher. Wenn das konfigurierte URL-Muster mit dem des Servlets übereinstimmt, wird die 'service()' -Methode für die jeweilige Instanz aufgerufen. – BalusC

1

Servlet werden auf einem Java-Anwendungsserver (Servlet-Container) bereitgestellt. Sie sind irgendwie "passiv". Wenn Sie ein Servlet schreiben, wird Ihr Servlet-Code immer dann vom Container aufgerufen, wenn eine Anfrage oder ein Bedarf vorliegt. Sie sehen also nicht "main" in Ihrem Servlet (die ganze Sache wird nicht vom Servlet aus gestartet), das sich innerhalb des Anwendungsservers befindet (Sie können sich vorstellen, dass der Start des Anwendungsservers von einer Art von main aus startet).

1

Wenn Sie nach einem Bereich in einem Servlet suchen, um Code zu platzieren, der beim Start ausgeführt wird (ähnlich wie main()), sehen Sie sich die Implementierung der ServletContextListener-Schnittstelle an.

Die beiden Methoden werden beim Starten und Beenden der Anwendung aufgerufen.

+0

@jbruce - das ist kaum gleichbedeutend mit Main, IMO. –

+0

@Stephen - Ich nahm an, dass die Frage mit der Notwendigkeit einer Codierung wie in einer main() - Methode (wie Initialisierungen, Verbindungen usw.) gestellt wurde . – jbruce2112

0

Es gibt keine Hauptmethode in einem Java-Servlet mehr als ein ActionListener in einer Swing JButton hat eine Hauptmethode. Was sie beide haben, sind Methoden, in die Sie sich einklinken können, wenn ein bestimmtes Ereignis eintritt (zum Beispiel ein Klick auf das JButton oder eine HTTP PUT Anfrage auf einem HttpServlet). In beiden Fällen erhalten Sie Informationen zu dem Ereignis, das den Aufruf ausgelöst hat: ActionEvent für die JButton-Anweisung und ServletRequest für ein Servlet.

Das Denken an Servlets in Bezug auf Event-Handler ist wahrscheinlich nützlicher als der Versuch, sie als eigenständige Java-Anwendung zu betrachten, in der Sie für den gesamten Kontrollfluss verantwortlich sind.

2

Servlet läuft in einem Behälter (zB: Tomcat). Dieser Container führt seine Arbeit unter jvm durch. Hier Container nimmt "das Fehlen der Hauptmethode". In simplple teilt javas Programm main method den Startkontrollfluss der Ausführung mit. Aber im Falle von Servlet-Basis-Web-Anwendung jvm Dosis muss nicht die Hauptmethode suchen. Der Servlet-Container teilt jvm den Start- -Steuerungsfluss mit.

+0

Servlet-Container erstellt je nach Anforderungs-URL ein Objekt eines bestimmten Servlets und initialisiert es durch Bereitstellung von Konfigurations-/Kontextobjekten und führt dann dessen Servicemethode aus (oder doXXX hängt vom Aufruf der HTTP-Methode ab) – Patriks

Verwandte Themen