Tegenwoordig zijn we ons allemaal bewust van de noodzaak om te creëren dynamische webpagina's dat wil zeggen degenen die de inhoud van de site kunnen veranderen op basis van de tijd of die de inhoud kunnen genereren op basis van het verzoek ontvangen van de klant. Als u van coderen in Java houdt, dan zult u blij zijn te weten dat er met Java ook een manier bestaat om dynamische webpagina's te genereren en die manier is Java-servlet . Maar voordat we verder gaan met ons onderwerp, moeten we eerst de noodzaak van server-side extensies begrijpen.
Wat is Java-servlet?
Java-servlets zijn de Java-programma's die worden uitgevoerd op de Java-compatibele webserver of applicatieserver. Ze worden gebruikt om het verzoek van de webserver af te handelen, het verzoek te verwerken, het antwoord te produceren en vervolgens een antwoord terug te sturen naar de webserver.
Eigenschappen van Java-servlet
De eigenschappen van Servlets zijn als volgt:
- Servlets werken aan de serverkant.
- Servlets zijn in staat complexe verzoeken van de webserver af te handelen.
Java Servlets-architectuur
Servlet-architectuur kan als volgt vanuit de afbeelding zelf worden weergegeven, zoals hieronder aangegeven:
java lang naar int

Uitvoering van Java-servlets
Uitvoering van servlets in principe omvat zes basisstappen:
- De clients sturen het verzoek naar de webserver.
- De webserver ontvangt het verzoek.
- De webserver geeft het verzoek door aan de bijbehorende servlet.
- De Servlet verwerkt het verzoek en genereert het antwoord in de vorm van uitvoer.
- De Servlet stuurt het antwoord terug naar de webserver.
- De webserver stuurt het antwoord terug naar de client en de clientbrowser geeft het op het scherm weer.
Laten we nu het excentrieke punt bespreken: waarom hebben we For Server-Side-extensies nodig?
Noodzaak van server-side extensies
De Uitbreidingen aan de serverzijde zijn niets anders dan de technologieën die worden gebruikt om dynamische webpagina's te maken. Om de mogelijkheid van dynamische webpagina's te bieden, hebben webpagina's eigenlijk een container of webserver nodig. Om aan deze eis te voldoen, bieden onafhankelijke webserverproviders een aantal eigen oplossingen in de vorm van API's ( Applicatieprogrammeringsinterface).
Deze API's stellen ons in staat programma's te bouwen die op een webserver kunnen draaien. In dit geval, Java-servlet is ook een van de component-API's van Java Platform Enterprise Edition (tegenwoordig bekend als – ‘Jakarta EE’) die normen stelt voor het creëren van dynamische webapplicaties in Java.
java sorteer arraylist
Voordat je iets leert, is het belangrijk om de noodzaak ervan te kennen. Het is niet zo dat dit de enige technologie is die beschikbaar is voor het maken van dynamische webpagina's. De Servlet-technologie is vergelijkbaar met andere webserverextensies zoals Common Gateway Interface ( CGI)-scripts en Hypertext Preprocessor (PHP). Java-servlets zijn echter acceptabeler omdat ze de beperkingen van CGI zoals lage prestaties en lage schaalbaarheid.
Wat is CGI (Common Gateway Interface)?
CGI is eigenlijk een externe applicatie die is geschreven met behulp van een van de programmeertalen zoals C of C++ en deze is verantwoordelijk voor het verwerken van klantverzoeken en het genereren van dynamische inhoud.
Wanneer een client in een CGI-toepassing een verzoek indient om toegang te krijgen tot dynamische webpagina's, voert de webserver de volgende bewerkingen uit:
- Het lokaliseert eerst de gevraagde webpagina d.w.z de vereiste CGI-toepassing met behulp van URL.
- Vervolgens wordt er een nieuw proces gecreëerd om aan het verzoek van de klant te voldoen.
- Roept de CGI-applicatie binnen het proces aan en geeft de aanvraaginformatie door aan de applicatie.
- Verzamelt het antwoord van de CGI-toepassing.
- Vernietigt het proces, bereidt het HTTP-antwoord voor en stuurt het naar de client.

Dus, binnen CGI De server moet voor elk verzoek het proces creëren en vernietigen. Het is gemakkelijk te begrijpen dat deze aanpak van toepassing is op het afhandelen van enkele clients, maar naarmate het aantal clients toeneemt, neemt de werklast op de server toe en neemt de tijd die nodig is om verzoeken te verwerken toe.
Verschil tussen Java-servlets en CGI
| Servet | CGI (gemeenschappelijke gateway-interface) |
|---|---|
| Servlets zijn draagbaar en efficiënt. | CGI is niet draagbaar. |
| In Servlets is het delen van gegevens mogelijk. | In CGI is het delen van gegevens niet mogelijk. |
| Servlets kunnen rechtstreeks communiceren met de webserver. | CGI kan niet rechtstreeks communiceren met de webserver. |
| Servlets zijn goedkoper dan CGI. | CGI is duurder dan Servlets. |
| Servlets kunnen de cookies verwerken. | CGI kan de cookies niet verwerken. |
Servlets-API's
Servlets zijn opgebouwd uit twee pakketten:
- javax.servlet (basis)
- javax.servlet.http(Geavanceerd)
Verschillende klassen en interfaces die in deze pakketten aanwezig zijn, zijn:
| Onderdeel | Type | Pakket |
|---|---|---|
| Servet | Koppel | javax.servlet.* |
| ServletRequest | Koppel | javax.servlet.* |
| Servletreactie | Koppel | javax.servlet.* |
| GeneriekeServlet | Klas | javax.servlet.* |
| HttpServlet | Klas | javax.servlet.http.* |
| HttpServletRequest | Koppel | javax.servlet.http.* |
| HttpServlet-antwoord | Koppel | javax.servlet.http.* |
| Filter | Koppel | javax.servlet.* |
| ServletConfig | Koppel | javax.servlet.* |
Voordelen van een Java-servlet
- Servet is sneller dan CGI, omdat er niet voor elk nieuw ontvangen verzoek een nieuw proces hoeft te worden aangemaakt.
- Servlets, zoals geschreven in Java, zijn platformonafhankelijk.
- Verwijdert de overhead van het maken van een nieuw proces voor elk verzoek, aangezien Servlet niet in een afzonderlijk proces wordt uitgevoerd. Er is slechts één exemplaar dat alle verzoeken gelijktijdig afhandelt. Dit bespaart ook geheugen en zorgt ervoor dat een servlet de clientstatus eenvoudig kan beheren.
- Het is een component aan de serverzijde, dus Servlet erft de beveiliging geleverd door de webserver.
- De API ontworpen voor Java Servlet verkrijgt automatisch de voordelen van de Java-platforms, zoals platformonafhankelijk en draagbaarheid. Bovendien kan het uiteraard gebruik maken van het brede scala aan API's die zijn gemaakt op Java-platforms zoals JDBC om toegang te krijgen tot de database.
- Veel webservers die geschikt zijn voor persoonlijk gebruik of websites met weinig verkeer worden gratis of tegen extreem lage prijzen aangeboden goedkope kosten bijv. Java-servlet. Het merendeel van de commerciële webservers is echter vrij duur, met de opmerkelijke uitzondering van Apache, die gratis is.
De Servlet-container
Serveercontainer , ook gekend als Servlet-motor, is een geïntegreerde set objecten die een runtimeomgeving bieden voor Java Servlet-componenten. In eenvoudige bewoordingen is het een systeem dat Java Servlet-componenten bovenop de webserver beheert om de webclientverzoeken af te handelen.
Diensten geleverd door de Servlet-container:
- Netwerkdiensten: Laadt een Servlet-klasse. Het laden kan plaatsvinden vanaf een lokaal bestandssysteem, een extern bestandssysteem of andere netwerkdiensten. De Servlet-container levert de netwerkdiensten waarover het verzoek en het antwoord worden verzonden.
- Decodeer en codeer op MIME gebaseerde berichten: Biedt de service voor het decoderen en coderen van op MIME gebaseerde berichten.
- Beheer Servlet-container: Beheert de levenscyclus van een servlet.
- Beheer van hulpbronnen Beheert de statische en dynamische bronnen, zoals HTML-bestanden, servlets en JSP-pagina's.
- Veiligheidsdienst: Verwerkt autorisatie en authenticatie van toegang tot bronnen.
- Sessiebeheer: Onderhoudt een sessie door een toe te voegen sessie-ID naar het URL-pad.
Conclusie
Java-servlets zijn cruciale componenten voor het definiëren van bedrijfslogica en het afhandelen van complexe webverzoeken. Deze componenten bevorderen de dynamische ontwikkeling van een website en hebben veel potentieel om de applicatiedynamiek te veranderen. Hier zijn enkele van de belangrijkste functies die we in dit artikel leren:
- Java Servlets helpen bij de ontwikkeling van applicatieontwikkeling op de server en bieden een manier om met dynamische inhoud om te gaan om robuuste en interactieve websites te bouwen.
- Zodra het verzoek de webserver bereikt, wordt een servletinstantie geïnitialiseerd met behulp van warmte() methode, en het HTTP-verzoek kan, afhankelijk van het type, worden afgehandeld met de methoden doGet() of doPost().
- Servlets maken onze webapplicatie responsiever en efficiënter, omdat er niet elke keer dat een verzoek wordt ontvangen een proces wordt gecreëerd en vernietigd.
Veelgestelde vragen over Java Servlet
Q1. Wat is de levenscyclus van Java Servlet?
Java Servlet heeft een vooraf gedefinieerde levenscyclus, beginnend bij de initialisatie (geheugentoewijzing) totdat het object wordt vernietigd (de toewijzing van geheugen ongedaan wordt gemaakt). Het vindt plaats in de volgende stappen:
- init() – wordt aangeroepen zodra het verzoek door de webserver wordt ontvangen en een nieuwe servletinstantie wordt geïnitialiseerd.
- service() – om het verzoek van de klant af te handelen en het verzoek om te leiden naar een geschikte doGet() of doPost()
- destroy() – aangeroepen wanneer het verzoek is afgehandeld, het antwoord wordt teruggestuurd naar de client en uiteindelijk wordt de toewijzing van het aan de servlet toegewezen geheugen ongedaan gemaakt.
Vraag 2. Hoe configureer ik een Java-servlet?
De configuratie van Java Servlet wordt gedefinieerd in a implementatiebeschrijving bestand - web.xml. Hoewel het nu verouderd is, aangezien de meeste op servlet gebaseerde applicaties tegenwoordig op annotatie gebaseerde configuratie gebruiken om een Java servlet te configureren met behulp van @WebServlet Annotation.
min. maxVoorbeeld: @WebServlet(naam = MijnServlet, urlPatterns = /mijnServlet)
Q3. Wat is een servletfilter?
Een servletfilter is een extra component voor het uitvoeren van pre-postverwerkingswerkzaamheden op internetverzoeken, zoals loggen, monitoren, debuggen en probleemoplossing.