Servlet-levenscyclus kan worden beschreven als een reeks stappen die een servlet doorloopt tijdens zijn levensduur, beginnend bij het laden totdat deze wordt vernietigd.
Voordat ik de levenscyclus van Servlet begin uit te leggen, laten we enkele terminologieën bespreken die u tegenkomt tijdens het lezen van deze handleiding. Het is be>
Webserver : het wordt ook wel HTTP-server genoemd, het kan HTTP-aanvragen verwerken die door de client zijn verzonden en beantwoordt de aanvraag met een HTTP-reactie.
Web Container : ook bekend als Servlet Container en Servlet Engine. Het is een onderdeel van Web Server dat interacteert met Servlets. Dit is het hoofdonderdeel van Web Server dat de levenscyclus van Servlets beheert.
Opmerking: de servlet-tutorials die u op deze website vindt, maken gebruik van een apache tomcat-webserver. Hoewel ik het als webserver heb genoemd, is het in feite een webserver en webcontainer. (Zoals hierboven vermeld is webcontainer een onderdeel van webserver).
Levenscyclus van servlet
Servlet-levenscyclus bestaat uit vijf stappen: 1) Laden van Servlet 2) Creëren van exemplaar van Servlet 3) Roep init () eenmaal op 4) Roep service () herhaaldelijk op voor elke clientaanvraag 5) Roep vernietiging aan ()
Voor degenen die zich afvragen wat instantie is en aanroept, betekent: instantie en objecten zijn hetzelfde. Het aanroepen van een methode betekent het aanroepen van een methode, het is gewoon een mooi woord dat we in de programmeerwereld gebruiken in plaats van bellen :)
Laten we teruggaan naar het hoofdonderwerp. Hier zijn de vijf stappen van servletlevenscyclus.
Stap 1: Laden van Servlet
Wanneer de webserver (bijv. Apache Tomcat) opstart, wordt de servletcontainer ingezet en worden alle servlets geladen.
Stap 2: instantie van Servlet maken
Nadat alle Servlet-klassen zijn geladen, maakt de servlet-container instanties van elke servlet-klasse. Servlet-container maakt slechts één exemplaar per servletklasse en alle aanvragen voor de servlet worden op dezelfde servlet-instantie uitgevoerd.
Stap 3: Roep de methode init () aan
Nadat alle servlet-klassen zijn geïnstantieerd, wordt de methode init () aangeroepen voor elke geïnstantieerde servlet. Met deze methode wordt de servlet geïnitialiseerd. Er zijn bepaalde init-parameters die u kunt opgeven in het bestand met de deployment descriptor (web.xml). Als een servlet bijvoorbeeld waarde> = 0 heeft, wordt de methode init () onmiddellijk aangeroepen tijdens het opstarten van de webcontainer.
U kunt het element als volgt in het web.xml-bestand opgeven:
<Servlet> <Servlet-name> myServlet </ servlet-name> <Servlet-class> com.beginnersbook.MyServletDemo </ servlet-class> <Load-on-startup> 1 </ load-on-opstarten> </ Servlet>
Nu zou de methode init () voor de overeenkomstige servletklasse com.beginnersbook.MyServletDemo worden aangeroepen tijdens het opstarten van de webcontainer.
Opmerking: De methode init () wordt slechts eenmaal tijdens de levenscyclus van servlet aangeroepen.
Stap 4: Roep de methode service () aan
Elke keer dat de webserver een verzoek ontvangt voor een servlet, wordt een nieuwe thread gegenereerd die de methode service () aanroept. Als de servlet GenericServlet is, wordt het verzoek bediend door de service () -methode zelf, als de servlet HttpServlet is, ontvangt de service () -methode het verzoek en verzendt het naar de juiste handlermethode op basis van het type verzoek.
Als het bijvoorbeeld een Get Request is, verzendt de methode service () het verzoek naar de methode doGet () door de methode doGet () aan te roepen met aanvraagparameters. Op dezelfde manier worden de verzoeken zoals Post, Head, Put etc. verzonden naar de overeenkomstige handlers doPost (), doHead (), doPut () enz. Door service () servlet.
Opmerking : in tegenstelling tot init () en destroy () die slechts één keer worden aangeroepen, kan de methode service () een willekeurig aantal keren worden aangeroepen tijdens de levenscyclus van servlet. Zo>
Van alle 5 stappen in de levenscyclus is dit de enige stap die meerdere keren wordt uitgevoerd.
Stap 5: Roep de methode destroy () aan
Wanneer de servlet-container wordt afgesloten (dit gebeurt meestal wanneer we de webserver stoppen), worden alle servlets en de methode destroy () voor elke geïnitialiseerde servlets verwijderd.
voeg filterconcept toe aan servlets
Hallo meneer,
We willen dat je een bericht plaatst over Spring Framework.
Ik ben alle concepten tegengekomen die je hebt uitgelegd en ik was zo onder de indruk en begreep het goed.
Dus plaats alsjeblieft steeds meer over nieuwe technologieën.
Dank je
ja, een goed punt gemaakt