Idag är vi alla medvetna om behovet av att skapa dynamiska webbsidor d.v.s. de som kan ändra webbplatsens innehåll enligt tidpunkten eller kan generera innehållet enligt förfrågan från klienten. Om du gillar kodning i Java, kommer du att bli glad att veta att med Java finns det också ett sätt att generera dynamiska webbsidor och på så sätt är Java Servlet . Men innan vi går vidare med vårt ämne, låt oss först förstå behovet av tillägg på serversidan.
Vad är Java Servlet?
Java Servlets är de Java-program som körs på den Java-aktiverade webbservern eller applikationsservern. De används för att hantera förfrågan som erhålls från webbservern, bearbeta förfrågan, producera svaret och sedan skicka ett svar tillbaka till webbservern.
staplar java
Egenskaper för Java Servlet
Egenskaperna för Servlets är följande:
- Servlets fungerar på serversidan.
- Servlets kan hantera komplexa förfrågningar som erhålls från webbservern.
Java Servlets-arkitektur
Servlet Architecture kan avbildas från själva bilden enligt nedan enligt följande:
Utförande av Java Servlets
Utförande av Servlets i princip omfattar sex grundläggande steg:
- Klienterna skickar begäran till webbservern.
- Webbservern tar emot begäran.
- Webbservern skickar begäran till motsvarande servlet.
- Servlet bearbetar begäran och genererar svaret i form av utdata.
- Servlet skickar svaret tillbaka till webbservern.
- Webbservern skickar svaret tillbaka till klienten och klientens webbläsare visar det på skärmen.
Låt oss nu diskutera den excentriska punkten att varför behöver vi tillägg på serversidan?
Behov av Server-Side Extensions
De Server-Side Extensions är inget annat än den teknik som används för att skapa dynamiska webbsidor. Faktiskt, för att tillhandahålla möjligheten till dynamiska webbsidor, behöver webbsidor en behållare eller webbserver. För att möta detta krav erbjuder oberoende webbserverleverantörer några egna lösningar i form av API:er ( applikationsprogrammeringsgränssnitt).
Dessa API:er tillåter oss att bygga program som kan köras med en webbserver. I detta fall, Java Servlet är också en av komponenternas API:er Java Platform Enterprise Edition (numera känd som 'Jakarta EE') som sätter standarder för att skapa dynamiska webbapplikationer i Java.
Innan du lär dig om något är det viktigt att känna till behovet av det, det är inte så att detta är den enda tekniken som finns tillgänglig för att skapa dynamiska webbsidor. Servlet-tekniken liknar andra webbservertillägg som t.ex Common Gateway Interface ( CGI) skript och Hypertext Preprocessor (PHP). Men Java Servlets är mer acceptabla eftersom de löser begränsningarna för CGI som låg prestanda och låg grad av skalbarhet.
Vad är CGI (Common Gateway Interface)?
CGI är faktiskt en extern applikation som är skriven genom att använda något av de programmeringsspråk som C eller C++ och detta ansvarar för att behandla kundförfrågningar och generera dynamiskt innehåll.
I CGI-applikationen, när en klient gör en begäran om att komma åt dynamiska webbsidor, utför webbservern följande operationer:
- Den lokaliserar först den begärda webbsidan dvs den nödvändiga CGI-applikationen med URL.
- Den skapar sedan en ny process för att betjäna kundens begäran.
- Anropar CGI-applikationen inom processen och skickar begäran om information till applikationen.
- Samlar in svaret från CGI-applikationen.
- Förstör processen, förbereder HTTP-svaret och skickar det till klienten.
Så, in CGI servern måste skapa och förstöra processen för varje begäran. Det är lätt att förstå att det här tillvägagångssättet är tillämpbart för hantering av få klienter, men när antalet klienter ökar, ökar arbetsbelastningen på servern och därför ökar tiden det tar att behandla förfrågningar.
Skillnaden mellan Java Servlets och CGI
Servlet | CGI (Common Gateway Interface) |
---|---|
Servlets är bärbara och effektiva. | CGI är inte bärbar. |
I Servlets är det möjligt att dela data. | I CGI är det inte möjligt att dela data. |
Servlets kan direkt kommunicera med webbservern. | CGI kan inte direkt kommunicera med webbservern. |
Servlets är billigare än CGI. | CGI är dyrare än Servlets. |
Servlets klarar kakorna. | CGI kan inte hantera cookies. |
Servlets API:er
Servlets är byggda av två paket:
samlingar i java
- javax.servlet(Basic)
- javax.servlet.http(Advance)
Olika klasser och gränssnitt som finns i dessa paket är:
Komponent | Typ | Paket |
---|---|---|
Servlet | Gränssnitt | javax.servlet.* |
ServletRequest | Gränssnitt | javax.servlet.* |
ServletResponse | Gränssnitt | javax.servlet.* |
GenericServlet | Klass | javax.servlet.* |
HttpServlet | Klass | javax.servlet.http.* |
HttpServletRequest | Gränssnitt | javax.servlet.http.* |
HttpServletResponse | Gränssnitt | javax.servlet.http.* |
Filtrera | Gränssnitt | javax.servlet.* |
ServletConfig | Gränssnitt | javax.servlet.* |
Fördelar med en Java Servlet
- Servlet är snabbare än CGI eftersom det inte innebär skapandet av en ny process för varje ny förfrågan som tas emot.
- Servlets, som skrivs i Java, är plattformsoberoende.
- Tar bort omkostnaderna för att skapa en ny process för varje begäran eftersom Servlet inte körs i en separat process. Det finns bara en enda instans som hanterar alla förfrågningar samtidigt. Detta sparar också minnet och tillåter en Servlet att enkelt hantera klienttillståndet.
- Det är en komponent på serversidan, så Servlet ärver säkerhet tillhandahålls av webbservern.
- De API designad för Java Servlet får automatiskt fördelarna med Java-plattformarna som plattformsoberoende och portabilitet. Dessutom kan den uppenbarligen använda det breda utbudet av API:er skapade på Java-plattformar som t.ex JDBC för att komma åt databasen.
- Många webbservrar som är lämpliga för personligt bruk eller webbplatser med låg trafik erbjuds gratis eller till extremt pris billiga kostnader t.ex. Java servlet. Men majoriteten av kommersiella webbservrar är ganska dyra, med det anmärkningsvärda undantaget Apache, som är gratis.
Servletbehållaren
Servletbehållare , också känd som Servlet motor, är en integrerad uppsättning objekt som tillhandahåller en körtidsmiljö för Java Servlet-komponenter. Med enkla ord är det ett system som hanterar Java Servlet-komponenter ovanpå webbservern för att hantera webbklientens förfrågningar.
Tjänster som tillhandahålls av Servlet-behållaren:
- Nätverkstjänster: Laddar en Servlet-klass. Inläsningen kan ske från ett lokalt filsystem, ett fjärrfilsystem eller andra nätverkstjänster. Servlet-behållaren tillhandahåller nätverkstjänsterna över vilka begäran och svaret skickas.
- Avkoda och koda MIME-baserade meddelanden: Tillhandahåller tjänsten att avkoda och koda MIME-baserade meddelanden.
- Hantera Servlet-behållare: Hanterar livscykeln för en Servlet.
- Resurshantering Hanterar statiska och dynamiska resurser, såsom HTML-filer, Servlets och JSP-sidor.
- Säkerhetsservice: Hanterar auktorisering och autentisering av resursåtkomst.
- Sessionshantering: Underhåller en session genom att lägga till en sessions-ID till URL-sökvägen.
Slutsats
Java Servlets är avgörande komponenter för att definiera affärslogik och hantera komplexa webbförfrågningar. Dessa komponenter främjar den dynamiska utvecklingen av en webbplats och har stor potential att förändra applikationsdynamiken. Här är några av de viktigaste funktionerna vi lär oss i den här artikeln:
- Java Servlets hjälper till med utvecklingen av applikationsutveckling på serversidan och ger ett sätt att hantera dynamiskt innehåll för att bygga robusta och interaktiva webbplatser.
- Så snart begäran når webbservern initieras en servletinstans med hjälp av värme() metod, och HTTP-förfrågan beroende på dess typ kan hanteras av metoderna doGet() eller doPost().
- Servlets gör vår webbapplikation mer lyhörd och effektiv eftersom den inte skapar och förstör en process varje gång en förfrågan tas emot.
Vanliga frågor om Java Servlet
Q1. Vad är livscykeln för Java Servlet?
Java Servlet har en fördefinierad livscykel som börjar från initialiserare (minnestilldelning) tills objektet förstörs (minne avallokerat). Det sker i följande steg:
- init() – anropas så snart begäran tas emot av webbservern och en ny servletinstans initieras.
- service() – för att hantera klientförfrågan och omdirigera begäran till en lämplig doGet() eller doPost()
- destroy() – anropas när begäran hanteras, svar skickas tillbaka till klienten och slutligen avallokeras minnet som allokerats till servleten.
Q2. Hur konfigurerar man en Java Servlet?
Konfigurationen av Java Servlet definieras inuti en distributionsbeskrivning fil – web.xml. Även om det är äldre nu eftersom de flesta servletbaserade applikationer nuförtiden använder anteckningsbaserad konfiguration för att konfigurera en Java Servlet med @WebServlet Annotation.
mittbild i cssExempel: @WebServlet(namn = MyServlet, urlPatterns = /myServlet)
Q3. Vad är ett Servlet-filter?
Ett Servlet-filter är en extra komponent för att utföra för-efterbehandlingsarbete på webbförfrågningar som loggning, övervakning, felsökning och felsökning.