Servlet ist auch Java-Programm, aber es gibt keine Haupt-Methode in Servlet.Who wird Rolle der Haupt-Methode auf Servet nehmen.Was wirkt in einem Servlet als "Hauptmethode"?
Antwort
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.
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).
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.
@jbruce - das ist kaum gleichbedeutend mit Main, IMO. –
@Stephen - Ich nahm an, dass die Frage mit der Notwendigkeit einer Codierung wie in einer main() - Methode (wie Initialisierungen, Verbindungen usw.) gestellt wurde . – jbruce2112
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.
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.
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
- 1. Dateinamen als Parameter zur Hauptmethode
- 2. Aktivität wirkt als REAL Dialog
- 3. Hauptmethode in Scala
- 4. Servlet Programm als Dienst
- 5. scala Ide Nicht meine Klasse als Hauptmethode
- 6. Warum nicht Void als Rückgabetyp für Hauptmethode
- 7. Renjin in einem Servlet verwenden
- 8. threadlocal-Variablen in einem Servlet
- 9. Hauptmethode in IJavaProject finden
- 10. D3 Linie als geschlossener Pfad wirkt
- 11. Bitmap.SetPixel wirkt in f # langsamer als in C#
- 12. Wie Eingabewert als Anforderungsparameter einer Verbindung zu einem Servlet senden?
- 13. Übergeben eines Arrays von einem Servlet zu einem anderen Servlet
- 14. Mehr als zwei Hauptmethode in Visual Studio-Anwendung?
- 15. Was entspricht einem Servlet (Java-Klasse, die HttpServlet in Tomcat erweitert) in einem ASP.net-Projekt?
- 16. Was ist die Hauptmethode in der abstrakten Klasse?
- 17. Asynchrone Verarbeitung in Java von einem Servlet
- 18. Endlosschleife in einem Servlet - Recovery möglich?
- 19. Werfen Ausnahme in der Hauptmethode
- 20. RESTful-Servlet-URLs - Servlet-Mapping in web.xml
- 21. Spring Boot-Anwendung War in einem eigenständigen Servlet-Container
- 22. Den Klassenpfad in einem Servlet steuern
- 23. JSF-verwaltete Bohnen in einem Servlet
- 24. Ausgabe eine Variable in einem Servlet-Speichern
- 25. Ignorieren SSL-Zertifikat in einem Servlet
- 26. Integration zwischen einem compositeComponent Attribut und einem Servlet in JSF
- 27. Java 8 Stream in der Hauptmethode
- 28. Test Hauptmethode von Junit
- 29. Reluctant quantifier wirkt gierig
- 30. Was ist der Zweck von AsyncContext.start (...) in Servlet 3.0?
.. 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