Top 40 vragen en antwoorden over Servlet-interviews (2026)

Klaarmaken voor een Java Een online sollicitatiegesprek vereist dat je anticipeert op welke servletconcepten werkgevers daadwerkelijk testen. Deze handleiding legt uit waarom. Interview met een Servlet Vragen zijn belangrijk, en ze onthullen een dieper inzicht in de professionele wereld.
Een gedegen kennis van servlets opent deuren naar functies voor starters, professionals met een gemiddeld niveau en senior professionals in dit vakgebied. Recruiters hechten waarde aan technische ervaring, domeinexpertise en analytische vaardigheden opgedaan in echte projecten. Het helpt teams, managers en senior medewerkers om de diepgang van vaardigheden te beoordelen aan de hand van basis-, geavanceerde en technische vragen en antwoorden, en om hen te begeleiden bij hun professionele groei. Lees meer ...
👉 Gratis PDF-download: Interviewvragen en -antwoorden over Servlets
Topvragen en -antwoorden voor sollicitatiegesprekken over Servlets
1) Wat is een Java Servlet?
A Java servlet is een servercomponent geschreven in Java dat binnenin een webcontainer (zoals Apache Tomcat, Jetty of Glassfish) en verwerkt inkomende HTTP-verzoeken om dynamische antwoorden te genereren. Servlets vormen de communicatiebrug tussen clientverzoeken (meestal vanuit een browser) en backend-bronnen zoals databases of bedrijfslogica. Net als andere Java Servlets en klassen profiteren van platformonafhankelijkheid, beveiliging en robuuste functies. Java ecosysteem.
Voorbeeld: Een servlet kan een gebruikersaanmeldingsformulier afhandelen door de gebruikersnaam en het wachtwoord als parameters uit het verzoek te halen, deze te controleren aan de hand van een database en vervolgens een HTML-pagina terug te geven op basis van het aanmeldingsresultaat.
2) Wat zijn de voordelen van Servlets ten opzichte van CGI?
Servlets bieden verschillende belangrijke voordelen ten opzichte van Gemeenschappelijke gateway-interface (CGI) programma's:
| Kenmerk | servlets | CGI |
|---|---|---|
| Proces | Verwerkt verzoeken met behulp van threads. | Creëert een nieuw proces per verzoek. |
| Prestaties | Hoog | Laag |
| Draagbaar | Java-gebaseerd en platformonafhankelijk | Afhankelijk van native binaire bestanden |
| Geheugengebruik | Doeltreffend | Hoog |
Servlets zijn lichtgewicht en schaalbaar omdat ze niet voor elk verzoek een nieuw proces starten. CGI-scripts daarentegen creëren elke keer een apart proces, wat aanzienlijke overhead met zich meebrengt.
3) Leg de Servlet-levenscyclus uit
De Servlet-levenscyclus definieert de fasen die een servlet doorloopt van creatie tot vernietiging in de container:
- Laden en instantiërenDe container laadt de servlet en roept de constructor aan.
- initialisatie:
init()wordt eenmaal aangeroepen om eventuele opstartconfiguraties uit te voeren. - VerzoekafhandelingDe
service()Deze methode wordt voor elk verzoek aangeroepen en delegeert aan methoden zoalsdoGet()ordoPost(). - Vernietiging:
destroy()wordt aangeroepen voordat de servlet wordt verwijderd, waardoor opruimwerkzaamheden mogelijk zijn.
Deze levenscyclus garandeert efficiënt gebruik van resources en een consistente afhandeling van aanvragen.
4) Wat is het verschil tussen GenericServlet en HttpServlet?
GenericServlet en HttpServlet zijn beide abstracties voor het bouwen van servlets:
- Generieke ServletEen protocolonafhankelijke abstracte klasse die generieke verzoek-/antwoordpatronen afhandelt.
- HttpServlet: Een subklasse van
GenericServletspeciaal ontworpen voor HTTP-protocol, waarbij methoden worden aangeboden zoalsdoGet(),doPost(), Etc.
Aangezien de meeste webapplicaties HTTP gebruiken, HttpServlet komt in de praktijk veel vaker voor.
5) Hoe verwerkt een Servlet HTTP GET- en POST-verzoeken?
Servlets gebruiken verschillende methoden binnen de HttpServlet klasse voor het afhandelen van HTTP-verzoeken:
doGet(HttpServletRequest req,HttpServletResponse res) wordt aangeroepen voor GET-verzoeken (meestal voor het ophalen van gegevens).doPost(HttpServletRequest req,HttpServletResponse res) is voor POST-verzoeken (meestal gebruikt voor het verzenden van formulieren of het wijzigen van de serverstatus).
De service() methode in HttpServlet Verzoeken worden automatisch doorgestuurd naar de juiste handler op basis van de HTTP-methode.
6) Wat is het doel van web.xml in Servlets?
De web.xml implementatiebeschrijving Een configuratiebestand bevindt zich in de WEB-INF-directory van een webapplicatie. Het koppelt servletklassen aan URL's, stelt initialisatieparameters in, configureert filters en listeners en definieert foutpagina's.
Bijvoorbeeld:
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.example.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/path</url-pattern>
</servlet-mapping>
Dit geeft de container de opdracht om verzoeken af te handelen aan /path gebruik MyServlet.
7) Wat zijn initialisatieparameters in servlets?
Servlets hebben vaak configuratiegegevens nodig (zoals databaseverbindingsreeksen). Deze kunnen worden aangeleverd via initialisatieparameters of in web.xml of door gebruik te maken van annotaties zoals @WebInitParam.
U kunt deze parameters verkrijgen met behulp van:
ServletConfig config = getServletConfig();
String paramValue = config.getInitParameter("paramName");
Dit maakt het mogelijk om het gedrag van servlets aan te passen zonder de code opnieuw te compileren.
8) Demonstreer Servlet-sessiebeheer
HTTP is inherent stateless. Session beheer Hiermee kan de status over meerdere verzoeken heen behouden blijven. Veelgebruikte technieken zijn onder andere:
- Cookies – Kleine gegevens die in de browser van de client worden opgeslagen en met elk verzoek worden meegestuurd.
- URL herschrijven – Sessie-ID's toevoegen aan URL's wanneer cookies zijn uitgeschakeld.
- HTTPSession API – Ingebouwd sessiebeheer met
HttpSessionvoorwerp.
Voorbeeld:
HttpSession session = request.getSession();
session.setAttribute("user", userObject);
Dit creëert een sessieobject dat aan de client is gekoppeld.
9) Wat is het verschil tussen URL-codering en URL-herschrijving?
Beide zijn technieken voor sessiebeheer:
- URL-codering Past URL's aan om speciale tekens op te nemen voor veilige overdracht.
- URL herschrijven Voegt de sessie-ID toe aan de URL wanneer er geen cookies beschikbaar zijn.
Voorbeeld:
response.encodeURL("dashboard");
Dit zorgt ervoor dat sessies worden bijgehouden, zelfs als cookies zijn uitgeschakeld.
10) Is een Servlet thread-safe? Hoe bereik je thread-safety?
Standaard verwerken servlet-instanties meerdere verzoeken met behulp van threads. Daarom, Servlets zijn van nature niet thread-safe. tenzij zorgvuldig ontworpen.
Strategieën voor draadveiligheid:
- Vermijd het gebruik van instantievariabelen zonder synchronisatie.
- Gebruik lokale variabelen binnen verzoekmethoden.
- SyncIndien nodig, verifieer de toegang tot gedeelde resources.
Voorbeeld:
public void doGet(...) {
int localVar = computeValue();
}
Door lokale variabelen te gebruiken, worden problemen met gedeelde status vermeden.
11) Wat is een Servletfilter en waarvoor wordt deze gebruikt?
A Servletfilter Het onderschept verzoeken voordat ze een servlet bereiken (of antwoorden voordat ze de client bereiken). Filters voeren taken uit zoals:
- authenticatie
- Logging
- Compression
- Invoervalidatie
Voorbeeld: Gebruik een filter om te controleren of het verzoek is geauthenticeerd voordat u doorverwijst naar beveiligde pagina's.
12) Wat zijn Servlet Listeners?
luisteraars Dit zijn gebeurtenisafhandelaars die reageren op levenscyclusgebeurtenissen in een webapplicatie. Veelvoorkomende interfaces voor luisteraars zijn onder andere:
ServletContextListener— Gebeurtenissen bij het opstarten/afsluiten van de applicatie.HttpSessionListener— Het aanmaken en beëindigen van sessies.ServletRequestListener— Verzoek om levenscyclusgebeurtenissen.
Luisteraars helpen bij het beheren van de toewijzing van resources of het opruimen ervan als reactie op applicatieactiviteit.
13) Hoe stuur je een verzoek door naar een andere afdeling?
Om een verzoek intern door te sturen:
RequestDispatcher rd = request.getRequestDispatcher("/otherServlet");
rd.forward(request, response);
Om door te verwijzen naar een nieuwe URL:
response.sendRedirect("newURL");
Verschil:
forward()wordt intern afgehandeld zonder omleiding naar de client.sendRedirect()Geeft de klant de opdracht een nieuw verzoek in te dienen.
14) Leg het verschil uit tussen ServletContext en ServletConfig
| Kenmerk | ServletContext |
ServletConfig |
|---|---|---|
| strekking | Toepassingsbreed | Specifiek voor één servlet |
| Gebruikt voor | Gedeelde resources, globale initialisatieparameters | Individuele servlet-initialisatieparameters |
| Levensduur | Totdat de app wordt afgesloten | Totdat de servlet wordt vernietigd |
ServletContext biedt gedeelde data voor alle servlets in een webapplicatie, terwijl ServletConfig is specifiek voor één servlet-instantie.
15) Wat is HttpSession en hoe wordt het gebruikt?
De HttpSession Een object vertegenwoordigt een gebruikerssessie over meerdere HTTP-verzoeken en -reacties. Het biedt voordelen zoals:
- Gebruikersspecifieke gegevens opslaan
- Beheer van sessietime-outs
- Het bijhouden van de inlogstatus
Voorbeeld:
HttpSession session = request.getSession(true);
session.setAttribute("cart", shoppingCart);
Hierdoor blijven de gegevens behouden, ook na meerdere verzoeken.
16) Hoe upload je een bestand met behulp van een Servlet?
Om een bestand te uploaden:
- Configure
<multipart-config>inweb.xml. - Gebruik
ServletFileUploadof servlet 3.0-annotaties. - Verwerk de bestandsonderdelen in
doPost().
Dit scenario komt vaak voor in praktijktoepassingen, zoals het uploaden van profielfoto's.
17) Leg uit hoe je uitzonderingen in een Servlet afhandelt.
Servlets kunnen uitzonderingen op twee manieren afhandelen:
- Try-catch-blokken in servletcode.
- Definiëren
<error-page>inweb.xmlom uitzonderingen te koppelen aan aangepaste debugpagina's.
Voorbeeld:
<error-page> <exception-type>java.lang.Exception</exception-type>
<location>/error.jsp</location>
</error-page>
Dit verbetert de betrouwbaarheid en de gebruikerservaring.
18) Wat is de rol van annotaties in Servlets (Servlet 3.0+)?
Sinds Servlet 3.0 kunnen annotaties vervangen web.xml:
@WebServlet("/path")@WebFilter@WebListener
Voorbeeld:
@WebServlet("/hello")
public class HelloServlet extends HttpServlet { ... }
Dit vereenvoudigt de configuratie en implementatie.
19) Wat is de belasting bij het opstarten?
<load-on-startup> in web.xml bepaalt wanneer een servlet wordt geïnitialiseerd:
- Positieve waarde → laden bij het opstarten van de applicatie in een vooraf gedefinieerde volgorde.
- Negatief of afwezig → laden bij eerste aanvraag.
Voorbeeld:
<load-on-startup>1</load-on-startup>
Dit zorgt ervoor dat de servlet gereed is voordat er een verzoek binnenkomt.
20) Hoe ondersteunen Servlets RESTful Services?
Servlets kunnen REST implementeren door verschillende HTTP-werkwoorden (GET, POST, PUT, DELETE) in verzoekmethoden af te handelen en JSON/XML-reacties te produceren. PrintWriter of streams. Een typisch REST-eindpunt valideert URL's en communiceert dienovereenkomstig met de bedrijfslogica.
21) Leg het verschil uit tussen sendRedirect() en forward() in Servlets
Het verschil tussen sendRedirect() en forward() ligt in hoe de controle over het verzoek wordt overgedragen en waar de omleiding plaatsvindtBeide mechanismen worden gebruikt om gebruikers tussen verschillende bronnen te laten navigeren, maar ze dienen verschillende architectonische doeleinden.
sendRedirect() is een client-side redirectieDe servlet instrueert de browser om een nieuw HTTP-verzoek naar een andere URL te sturen. Hierdoor verandert de adresbalk van de browser en gaan de verzoekkenmerken verloren. Deze aanpak is handig bij het doorverwijzen naar externe bronnen of om problemen met het opnieuw verzenden van formulieren te voorkomen.
forward() is een server-side bewerking verwerkt door de container met behulp van RequestDispatcherDezelfde aanvraag- en antwoordobjecten worden intern doorgestuurd, waardoor de aanvraagkenmerken behouden blijven en de prestaties verbeteren.
| Aspect | sendRedirect() | vooruit() |
|---|---|---|
| Omleidingstype | Kant van de cliënt | Server-kant |
| URL-wijziging | Ja | Nee |
| Voorwerp aanvragen | New | Dezelfde |
| Prestaties | langzamer | Sneller |
22) Wat zijn de verschillende soorten mechanismen voor het bijhouden van Servlet-sessies?
Servlets ondersteunen mechanismen voor het bijhouden van meerdere sessies Om de gebruikersstatus te beheren in het van nature stateless HTTP-protocol. De keuze hangt af van browsercompatibiliteit, beveiligingsvereisten en schaalbaarheidsbehoeften.
De meest voorkomende aanpak is Cookieswaarbij sessie-ID's aan de clientzijde worden opgeslagen en met elk verzoek worden meegestuurd. Cookies zijn efficiënt, maar kunnen door gebruikers worden uitgeschakeld.
URL herschrijven Voegt sessie-ID's toe aan URL's en is handig wanneer cookies niet beschikbaar zijn, hoewel het sessiegegevens in de browsergeschiedenis weergeeft.
Verborgen formuliervelden Sessie-informatie kan in HTML-formulieren worden ingesloten, maar deze methode werkt alleen met formuliergebaseerde navigatie.
De meest robuuste oplossing is HttpSession, wat deze mechanismen abstraheert en ontwikkelaars in staat stelt sessiegegevens aan de serverzijde op te slaan.
| Methode | Voordelen | Nadelen |
|---|---|---|
| Cookies | Efficiënt, transparant | Kan worden uitgeschakeld |
| URL herschrijven | Werkt zonder cookies | Veiligheidsrisico |
| Verborgen velden | Eenvoudig | Beperkte navigatie |
| HttpSessie | Veilig, flexibel | Servergeheugengebruik |
23) Hoe werkt de levenscyclus van een HttpSession in Servlets?
De HttpSession De levenscyclus begint wanneer een client voor het eerst een verzoek indient dat sessiebeheer vereist. De servletcontainer maakt een sessieobject aan en kent er een unieke sessie-ID aan toe. Deze ID wordt meestal opgeslagen in een cookie met de naam JSESSIONID.
De sessie blijft actief zolang er binnen de ingestelde time-outperiode nog verzoeken binnenkomen. Ontwikkelaars kunnen dit beheren met setMaxInactiveInterval() or web.xml configuratie. Sessies kunnen eindigen vanwege een time-out of expliciete ongeldigverklaring. invalidate(), of het afsluiten van de applicatie.
Een belangrijke gebeurtenis in de levenscyclus vindt plaats wanneer sessies worden aangemaakt of verwijderd. Dit kan worden gemonitord met behulp van HttpSessionListenerDit is handig voor audits of het opschonen van resources.
Voorbeeld: Door ingelogde gebruikers te volgen via een teller die wordt verhoogd wanneer sessies worden aangemaakt en verlaagd wanneer ze worden beëindigd, worden nauwkeurige gelijktijdigheidsstatistieken gegarandeerd.
24) Wat is de rol van ServletContext in een webapplicatie?
ServletContext de hele webapplicatie Het biedt een gedeeld communicatiemechanisme voor alle servlets, filters en listeners. Het wordt eenmalig aangemaakt bij het opstarten van de applicatie en vernietigd bij het afsluiten.
Ontwikkelaars gebruiken ServletContext om globale attributen op te slaan, applicatiebrede initialisatieparameters te lezen en toegang te krijgen tot resources zoals configuratiebestanden. In tegenstelling tot HttpSessionHet is niet gebruikersspecifiek.
Een databaseverbindingspool die bij het opstarten wordt geïnitialiseerd, kan bijvoorbeeld worden opgeslagen in de ServletContext en hergebruikt in meerdere servlets, wat de prestaties verbetert en het resourcegebruik vermindert.
| Kenmerk | ServletContext |
|---|---|
| strekking | Toepassingsbreed |
| Levensduur | Volledige aanvraag |
| Gedeelde gegevens | Ja |
| Gebruikersspecifiek | Nee |
25) Hoe werken Servletfilters en wat zijn hun voordelen?
Servletfilters fungeren als onderscheppers Deze verwerken verzoeken en antwoorden vóór of na de uitvoering van de servlet. Ze worden vaak gebruikt voor overkoepelende functionaliteiten die niet in de bedrijfslogica thuishoren.
Filters zijn ideaal voor authenticatie, autorisatie, logging, compressie en validatie van verzoeken. Ze kunnen verzoekparameters en headers aanpassen of zelfs de toegang blokkeren voordat het verzoek de servlet bereikt.
Meerdere filters kunnen aan elkaar worden gekoppeld, waardoor een verwerkingspipeline ontstaat. Dit bevordert modulariteit en de scheiding van verantwoordelijkheden.
Voorbeeld: Een authenticatiefilter controleert de gebruikersgegevens voordat toegang tot beveiligde bronnen wordt verleend, waardoor een consistente beveiliging binnen de gehele applicatie wordt gewaarborgd.
26) Leg het threadingmodel van Servlets en de afhandeling van gelijktijdigheid uit.
Servlets volgen een multi-threaded uitvoeringsmodel waarbij één servlet-instantie meerdere verzoeken tegelijk afhandelt met behulp van afzonderlijke threads. Hoewel dit de schaalbaarheid verbetert, brengt het risico's met zich mee op het gebied van gelijktijdigheid.
Instantievariabelen worden gedeeld tussen threads, waardoor servlets inherent niet draadveiligOm gelijktijdigheid te beheren, moeten ontwikkelaars bij toegang tot gedeelde resources gebruikmaken van lokale variabelen, onveranderlijke objecten of gesynchroniseerde blokken.
Het lukraak toepassen van synchronisatie kan de prestaties negatief beïnvloeden, daarom moet draadveiligheid worden bereikt door een zorgvuldig ontwerp in plaats van overmatige vergrendeling.
Voorbeeld: Een servlet die een gedeelde teller gebruikt, moet updates synchroniseren of atomaire variabelen gebruiken om raceomstandigheden te voorkomen.
27) Wat is het verschil tussen de GET- en POST-methoden in Servlets?
GET en POST zijn de meest gebruikte HTTP-methoden in Servlets, maar ze dienen verschillende doeleinden.
GET is ontworpen voor gegevens ophalen en voegt parameters toe aan de URL. Het is cachebaar en kan als bladwijzer worden opgeslagen, maar het geeft gevoelige gegevens prijs.
POST is bedoeld voor gegevensinzending en verstuurt parameters in de request body. Dit is veiliger en geschikter voor bewerkingen die de serverstatus wijzigen.
| Aspect | Begin | POST |
|---|---|---|
| Gegevenszichtbaarheid | URL | Lichaam aanvragen |
| Security | Laag | Hoger |
| Even krachtig | Ja | Nee |
| Use Case | Gegevens ophalen | Gegevens indienen |
28) Hoe worden uitzonderingen afgehandeld in op Servlets gebaseerde applicaties?
Foutafhandeling in Servlets kan programmatisch of declaratief worden beheerd. Programmatische afhandeling maakt gebruik van try-catch-blokken om runtimeproblemen direct in de code op te vangen en te verwerken.
Declaratieve verwerking maakt gebruik van web.xml Het doel is om uitzonderingen of HTTP-statuscodes te koppelen aan aangepaste foutpagina's. Deze aanpak verbetert de onderhoudbaarheid en de gebruikerservaring door de foutlogica te scheiden van de bedrijfslogica.
Voorbeeld: Mapping NullPointerException Een JSP-bestand voor foutmeldingen maakt consistente foutrapportage in de hele applicatie mogelijk zonder herhalende code.
Deze gelaagde aanpak zorgt voor robuustheid en een overzichtelijkere architectuur.
29) Wat is load-on-startup en wanneer moet het worden gebruikt?
load-on-startup bepaalt wanneer een servlet wordt geïnitialiseerd door de container. Een positief geheel getal geeft de container de opdracht om de servlet te laden tijdens het opstarten van de applicatie, terwijl afwezigheid of negatieve waarden het laden uitstellen tot het eerste verzoek.
Deze functie is handig voor servlets die cruciale initialisatietaken uitvoeren, zoals het laden van configuratiebestanden, het initialiseren van caches of het opzetten van databaseverbindingen.
gebruik load-on-startup Dit zorgt ervoor dat deze taken zijn voltooid voordat de applicatie verzoeken begint te verwerken, waardoor de betrouwbaarheid wordt verbeterd.
30) Hoe ondersteunen Servlets RESTful webdiensten?
Servlets vormen de basis van RESTful services door verschillende HTTP-methoden zoals GET, POST, PUT en DELETE af te handelen. Elke methode komt overeen met een CRUD-bewerking en wordt geïmplementeerd met behulp van doGet(), doPost()en de bijbehorende handlers.
Door JSON- of XML-reacties terug te geven en zich te houden aan REST-principes zoals statelessness en resource-based URL's, kunnen Servlets lichtgewicht API's implementeren.
Moderne frameworks abstraheren deze complexiteit, maar inzicht in het ontwerp van RESTful Servlets is cruciaal voor controle op laag niveau en prestatieoptimalisatie, vooral wanneer je er direct mee werkt. Djakarta servlet API's.
31) Wat zijn de verschillende soorten Servlet-scopes en hoe worden ze gebruikt?
Servlet-scopes definiëren de zichtbaarheid en levensduur van attributen Ze worden opgeslagen in een webapplicatie. Ze zijn essentieel voor het beheren van gegevensuitwisseling tussen componenten, terwijl de juiste isolatie behouden blijft.
De vier belangrijkste onderzoeksgebieden zijn: Aanvraag, Sessie, Aanvraagen Pagina (voornamelijk gebruikt in JSP). De request scope geldt voor één enkele HTTP-aanvraag en is ideaal voor het doorgeven van tijdelijke gegevens tussen servlets of JSP's. De session scope blijft behouden gedurende meerdere aanvragen van dezelfde client en wordt vaak gebruikt voor gebruikersspecifieke gegevens, zoals de inlogstatus. De application scope is globaal en wordt gedeeld door alle gebruikers, geschikt voor configuratie of gedeelde resources.
Inzicht in de selectie van het werkbereik voorkomt geheugenlekken en problemen met gelijktijdigheid.
| strekking | Levensduur | Zichtbaarheid | Typisch gebruik |
|---|---|---|---|
| Aanvraag | Enkelvoudig verzoek | Hetzelfde verzoek | Validatieberichten |
| Sessie | Gebruikerssessie | Een gebruiker | Inloggegevens |
| Aanvraag | Levenscyclus van een app | Alle gebruikers | Caches, configuraties |
| Pagina | JSP alleen | Dezelfde JSP | Logica bekijken |
32) Hoe werkt Servlet-beveiliging met behulp van implementatiebeschrijvingen?
De beveiliging van servlets kan declaratief worden geconfigureerd met behulp van web.xml Zonder de applicatiecode aan te passen. Deze aanpak verbetert de onderhoudbaarheid en zorgt voor consistente beveiligingsregels.
Beveiligingsbeperkingen definiëren beschermde URL-patronen en toegestane HTTP-methoden. Authenticatiemethoden zoals BASIC, FORM of CLIENT-CERT specificeren hoe gebruikers worden geverifieerd. Op rollen gebaseerde autorisatie beperkt de toegang op basis van gebruikersrollen.
Een sectie die alleen voor beheerders toegankelijk is, kan bijvoorbeeld zo worden beveiligd dat alleen gebruikers met de rol 'ADMIN' er toegang toe hebben. Dit mechanisme integreert naadloos met containergestuurde beveiliging.
Declaratieve beveiliging heeft de voorkeur in bedrijfsapplicaties omdat het de beveiligingslogica scheidt van de bedrijfslogica en gestandaardiseerde handhaving ondersteunt.
33) Leg het verschil uit tussen stateless en stateful Servlets
Stateless en stateful servlets verschillen in de manier waarop ze clientspecifieke gegevens beheren.
A stateless servlet Slaat geen clientstatus op tussen verzoeken. Elk verzoek is onafhankelijk, waardoor de servlet zeer schaalbaar is en geschikt voor RESTful services.
A stateful servletAan de andere kant wordt de status behouden met behulp van sessies, cookies of instantievariabelen. Deze aanpak is handig voor workflows zoals winkelwagens of formulieren met meerdere stappen.
| Aspect | stateless | Stateful |
|---|---|---|
| Schaalbaarheid | Hoog | Lagere |
| Geheugengebruik | minimaal | Hoger |
| Use Case | API's, microservices | Gebruikersworkflows |
| Ingewikkeldheid | Laag | Hoger |
Moderne architecturen geven de voorkeur aan stateless servlets vanwege de schaalbaarheidseisen in de cloud.
34) Wat is een RequestDispatcher en hoe verschilt deze van omleiding?
RequestDispatcher maakt interne communicatie tussen serverbronnen zoals servlets en JSP's. Het maakt het mogelijk om content door te sturen of op te nemen zonder tussenkomst van de client.
Het belangrijkste voordeel is dat dezelfde aanvraag- en antwoordobjecten worden hergebruikt, wat de prestaties verbetert en de aanvraagkenmerken behoudt. Dit is ideaal voor MVC-architecturen, waarbij een controller-servlet doorstuurt naar een view.
Omleiding vereist daarentegen een nieuw verzoek van de client, wat trager is en de verzoekgegevens niet bewaart. De keuze tussen de twee hangt af van de vraag of de client hiervan op de hoogte moet zijn en of er URL-wijzigingen nodig zijn.
35) Wat zijn Servlet-annotaties en welke voordelen bieden ze?
Servlet-annotaties werden geïntroduceerd om de overhead van XML-configuratie te verminderen en de ontwikkeling te vereenvoudigen. Annotaties zoals @WebServlet, @WebFilteren @WebListener Stel ontwikkelaars in staat om metadata rechtstreeks in de code te declareren.
De belangrijkste voordelen zijn een betere leesbaarheid, minder configuratiefouten en snellere ontwikkelcycli. Annotaties maken het bovendien gemakkelijker om applicaties te refactoren, omdat configuratie en implementatie nauw op elkaar afgestemd blijven.
Voor grote bedrijfsapplicaties wordt echter vaak een hybride aanpak gebruikt, waarbij annotaties eenvoudige mappings afhandelen en web.xml Beheert complexe configuraties.
36) Hoe werkt prestatieoptimalisatie van Servlets?
Het optimaliseren van de prestaties van servlets omvat het optimaliseren van... resourcegebruik, gelijktijdigheidsafhandeling en responstijdVeelgebruikte strategieën zijn onder andere het minimaliseren van synchronisatie, het hergebruiken van objecten via pooling en het inschakelen van responscompressie.
Het gebruik van verbindingspools in plaats van het aanmaken van databaseverbindingen per verzoek verbetert de doorvoer aanzienlijk. Het cachen van veelgebruikte gegevens op applicatieniveau vermindert overbodige berekeningen.
De dimensionering van de threadpool in de servletcontainer speelt ook een cruciale rol. Een slechte afstemming kan leiden tot thread-starvation of overmatig contextwisselen.
Prestatieoptimalisatie is een continu proces dat monitoring, profilering en iteratieve optimalisatie vereist.
37) Wat zijn de verschillen tussen Servlets en JSP?
Servlets en JSP vervullen verschillende rollen in Java webapplicaties, hoewel ze uiteindelijk allebei naar servlets worden gecompileerd.
Servlets zijn Java De lessen richten zich op de verwerking van verzoeken en de bedrijfslogica. JSP's zijn ontworpen voor presentatie en vereenvoudigen de HTML-generatie met behulp van tags en expressietaal.
| Aspect | servlet | JSP |
|---|---|---|
| Rol | Controller/Logica | Bekijk |
| Syntaxis | Java | HTML + tags |
| Onderhoud | Meer uitgebreid | Gemakkelijker |
| MVC-gebruik | Controller | Bekijk |
Volgens de beste werkwijze worden Servlets gebruikt als controllers en JSP's uitsluitend voor het weergeven van views.
38) Hoe verwerkt een Servlet het uploaden van bestanden?
Bestandsuploads worden verwerkt met behulp van multipart-verzoeken. Servlet-specificaties bieden ingebouwde ondersteuning voor multipart-verwerking via annotaties of configuratie.
De servlet leest de geüploade bestandsgegevens als Part objecten, waardoor toegang mogelijk is tot bestandsmetadata en contentstromen. Geüploade bestanden kunnen vervolgens worden gevalideerd, opgeslagen of verder verwerkt.
Een correcte afhandeling van geüploade bestanden omvat het instellen van groottelimieten, het valideren van bestandstypen en het veilig opslaan ervan om kwetsbaarheden zoals het uitvoeren van kwaadaardige bestanden te voorkomen.
Deze functie wordt veel gebruikt in profielbeheersystemen, voor het uploaden van documenten en in contentmanagementsystemen.
39) Wat is asynchrone verwerking in Servlets?
Asynchrone verwerking stelt een servlet in staat om langlopende taken af te handelen zonder de thread voor de verwerking van verzoeken te blokkeren. Dit verbetert de schaalbaarheid en de reactiesnelheid onder zware belasting.
Door gebruik te maken van asynchrone API's, geeft de servlet de containerthread vrij en verwerkt het verzoek op de achtergrond. Zodra de verwerking is voltooid, wordt de respons hervat.
Dit model is ideaal voor bewerkingen zoals externe API-aanroepen, batchverwerking of het streamen van gegevens.
Asynchrone servlets verhogen de doorvoer in omgevingen met veel gelijktijdige processen aanzienlijk wanneer ze correct worden gebruikt.
40) Wat zijn gangbare best practices voor Servlets in bedrijfsapplicaties?
Bij de ontwikkeling van servlets op bedrijfsniveau worden strikte best practices gevolgd om onderhoudbaarheid, schaalbaarheid en beveiliging te garanderen. Dit omvat onder andere het vermijden van bedrijfslogica in servlets, het gebruik van de MVC-architectuur, het externaliseren van configuratie en het afdwingen van threadveiligheid.
Andere goede praktijken omvatten correcte foutafhandeling, veilig sessiebeheer en minimaal gebruik van instantievariabelen. Logboekregistratie en monitoring moeten consequent worden geïmplementeerd.
Door deze principes te volgen, ontstaan schone, testbare en productiegereedde applicaties die betrouwbaar presteren onder belasting.
🔍 Topvragen voor Servlet-interviews met praktijkvoorbeelden en strategische antwoorden
1) Wat is een Servlet en waarom wordt deze gebruikt in webapplicaties?
Verwacht van kandidaat: De interviewer wil uw basiskennis van Servlets en hun rol in de praktijk toetsen. Java-gebaseerde webapplicaties.
Voorbeeld antwoord: Een Servlet is een Java Een klasse die op een webserver draait en clientverzoeken afhandelt, meestal via HTTP. Het wordt gebruikt om dynamische webapplicaties te bouwen door verzoeken te verwerken, bedrijfslogica toe te passen en antwoorden te genereren. Servlets hebben de voorkeur omdat ze platformonafhankelijk zijn, efficiënt dankzij multithreading en nauw geïntegreerd met de applicatie. Java bedrijfstechnologieën.
2) Kun je de levenscyclus van een Servlet uitleggen?
Verwacht van kandidaat: De interviewer test uw kennis over hoe een Servlet door de container wordt beheerd.
Voorbeeld antwoord: De levenscyclus van een Servlet bestaat uit drie hoofdfasen: initialisatie, afhandeling van verzoeken en vernietiging. De container roept eerst de init() methode om de Servlet te initialiseren. Vervolgens roept deze de service() methode om clientverzoeken af te handelen, die mogelijk gedelegeerd wordt aan doGet() or doPost()Tot slot, wanneer de Servlet buiten gebruik wordt gesteld, destroy() Deze methode wordt aangeroepen om resources vrij te geven.
3) Hoe verwerk je clientverzoeken in een Servlet?
Verwacht van kandidaat: Ze willen begrijpen hoe je werkt met HTTP-methoden en de verwerking van verzoeken.
Voorbeeld antwoord: Klantverzoeken worden afgehandeld via de service() methode, die verzoeken doorstuurt naar specifieke methoden zoals doGet(), doPost(), doPut()of doDelete() gebaseerd op de HTTP-methode. Elke methode verwerkt het verzoek, communiceert indien nodig met backend-componenten en schrijft het antwoord met behulp van de HttpServletResponse voorwerp.
4) Hoe beheer je sessietracking in Servlets?
Verwacht van kandidaat: De interviewer wil weten hoe je de gebruikersstatus behoudt bij meerdere verzoeken.
Voorbeeld antwoord: Sessiebeheer in Servlets kan worden beheerd met behulp van HttpSession, cookies, URL-herschrijving of verborgen formuliervelden. De meest gebruikelijke aanpak is het gebruik van HttpSessionDit maakt het mogelijk om gebruikersspecifieke gegevens aan de serverzijde op te slaan en deze via meerdere verzoeken op te halen totdat de sessie verloopt of ongeldig wordt verklaard.
5) Beschrijf een situatie waarin u een op Servlets gebaseerde applicatie hebt geoptimaliseerd voor betere prestaties.
Verwacht van kandidaat: Ze beoordelen je probleemoplossende vaardigheden en praktische ervaring.
Voorbeeld antwoord: In mijn vorige functie optimaliseerde ik een op Servlets gebaseerde applicatie door onnodige databaseaanroepen te verminderen en connection pooling te implementeren. Ik minimaliseerde ook het aanmaken van objecten binnen de applicatie. doGet() Deze methode maakte caching mogelijk voor veelgebruikte gegevens. Deze wijzigingen hebben de responstijd en de serverdoorvoer aanzienlijk verbeterd.
6) Hoe ga je om met uitzonderingen in Servlets?
Verwacht van kandidaat: De interviewer is op zoek naar gestructureerde methoden voor het afhandelen van fouten.
Voorbeeld antwoord: Uitzonderingen in Servlets kunnen worden afgehandeld met behulp van try-catch-blokken binnen de Servlet-code of door foutpagina's te definiëren. web.xml of via annotaties. Ik geef de voorkeur aan gecentraliseerde foutafhandeling, waarbij uitzonderingen correct worden gelogd en zinvolle foutmeldingen aan gebruikers worden teruggestuurd zonder interne details prijs te geven.
7) Wat is het verschil tussen RequestDispatcher forward en sendRedirect?
Verwacht van kandidaat: Ze willen testen of je de aanvraagstroom en navigatie begrijpt.
Voorbeeld antwoord: RequestDispatcher stuurt de controle door naar een andere bron op de server zonder de URL te wijzigen, en dezelfde aanvraag- en antwoordobjecten worden gebruikt. Daarentegen... sendRedirect Het systeem stuurt een reactie naar de client met de instructie om een nieuw verzoek naar een andere URL te sturen, wat resulteert in een URL-wijziging en een nieuwe cyclus van verzoek en antwoord.
8) Vertel me over een situatie waarin je met filters of listeners hebt gewerkt in een Servlet-gebaseerd project.
Verwacht van kandidaat: De interviewer wil inzicht krijgen in uw ervaring met geavanceerde Servlet-functies.
Voorbeeld antwoord: In mijn vorige functie gebruikte ik Servlet-filters om logging en authenticatiecontroles te implementeren voordat verzoeken de kern-Servlets bereikten. Ik werkte ook met listeners om gebeurtenissen met betrekking tot het aanmaken en beëindigen van sessies te volgen, wat hielp bij het monitoren van actieve gebruikers en het efficiënt opruimen van resources.
9) Hoe zou u een scenario met veel verkeer in een Servlet-applicatie aanpakken?
Verwacht van kandidaat: Ze testen je vermogen om schaalbare en betrouwbare systemen te ontwerpen.
Voorbeeld antwoord: Ik zou efficiënte multithreading garanderen door Servlets waar mogelijk stateless te houden en thread-veilige componenten te gebruiken. Bij mijn vorige baan vertrouwde ik ook op load balancing, cachingmechanismen en geoptimaliseerde database-toegang om grote hoeveelheden verkeer te verwerken zonder prestatieverlies.
10) Beschrijf een lastig probleem dat je tegenkwam tijdens het debuggen van een Servlet en hoe je dit hebt opgelost.
Verwacht van kandidaat: De interviewer wil je aanpak voor het oplossen van bugs en je veerkracht beoordelen.
Voorbeeld antwoord: In mijn vorige functie stuitte ik op een probleem waarbij een Servlet af en toe onjuiste antwoorden gaf vanwege gedeelde, veranderlijke data tussen threads. Ik heb dit opgelost door het thread-safety-probleem te identificeren, de code te herstructureren om de gedeelde status te verwijderen en de juiste logging toe te voegen om de oplossing te verifiëren onder gelijktijdige belasting.
