I dag er vi alle klar over behovet for at skabe dynamiske websider dvs. dem, der kan ændre webstedets indhold i henhold til tidspunktet eller kan generere indholdet i henhold til anmodningen modtaget fra klienten. Hvis du kan lide kodning i Java, så vil du være glad for at vide, at der ved brug af Java også findes en måde at generere dynamiske websider på, og på den måde er Java Servlet . Men før vi går videre med vores emne, lad os først forstå behovet for udvidelser på serversiden.
Hvad er Java Servlet?
Java Servlets er de Java-programmer, der kører på den Java-aktiverede webserver eller applikationsserver. De bruges til at håndtere anmodningen fra webserveren, behandle anmodningen, producere svaret og derefter sende et svar tilbage til webserveren.
Egenskaber for Java Servlet
Egenskaberne for Servlets er som følger:
- Servlets fungerer på serversiden.
- Servlets er i stand til at håndtere komplekse anmodninger fra webserveren.
Java Servlets arkitektur
Servlet Architecture kan afbildes fra selve billedet som angivet nedenfor som følger:
string.substring java

Udførelse af Java Servlets
Udførelse af Servlets grundlæggende involverer seks grundlæggende trin:
- Klienterne sender anmodningen til webserveren.
- Webserveren modtager anmodningen.
- Webserveren sender anmodningen til den tilsvarende servlet.
- Servlet behandler anmodningen og genererer svaret i form af output.
- Servlet sender svaret tilbage til webserveren.
- Webserveren sender svaret tilbage til klienten, og klientbrowseren viser det på skærmen.
Lad os nu diskutere det excentriske punkt, hvorfor har vi brug for Server-Side-udvidelser?
Behov for udvidelser på serversiden
Det Server-side udvidelser er intet andet end de teknologier, der bruges til at skabe dynamiske websider. Faktisk, for at give mulighed for dynamiske websider, har websider brug for en container eller webserver. For at opfylde dette krav tilbyder uafhængige webserverudbydere nogle proprietære løsninger i form af API'er ( Application Programming Interface).
Disse API'er tillade os at bygge programmer, der kan køre med en webserver. I dette tilfælde, Java Servlet er også en af komponent-API'erne til Java Platform Enterprise Edition (i dag kendt som - 'Jakarta EE') som sætter standarder for at skabe dynamiske webapplikationer i Java.
Før du lærer om noget, er det vigtigt at kende behovet for det, det er ikke sådan, at dette er den eneste teknologi, der er tilgængelig til at skabe dynamiske websider. Servlet-teknologien ligner andre webserverudvidelser som f.eks Fælles gateway-grænseflade ( CGI) scripts og Hypertekstforbehandler (PHP). Java Servlets er dog mere acceptable, da de løser begrænsningerne ved CGI såsom lav ydeevne og lav grad af skalerbarhed.
Hvad er CGI (Common Gateway Interface)?
CGI er faktisk en ekstern applikation, der er skrevet ved at bruge et af programmeringssprogene som f.eks C eller C++ og denne er ansvarlig for at behandle klientanmodninger og generere dynamisk indhold.
kommando arp-a
I CGI-applikationen, når en klient anmoder om at få adgang til dynamiske websider, udfører webserveren følgende handlinger:
- Den finder først den ønskede webside dvs den nødvendige CGI-applikation ved hjælp af URL.
- Det opretter derefter en ny proces for at servicere kundens anmodning.
- Påberåber CGI-applikationen i processen og videregiver anmodningsoplysningerne til applikationen.
- Samler svaret fra CGI-applikationen.
- Ødelægger processen, forbereder HTTP-svaret og sender det til klienten.

Så i CGI serveren skal oprette og ødelægge processen for hver anmodning. Det er let at forstå, at denne tilgang er anvendelig til håndtering af få klienter, men efterhånden som antallet af klienter stiger, øges arbejdsbyrden på serveren, og det tager derfor længere tid at behandle anmodninger.
Forskellen mellem Java Servlets og CGI
| Servlet | CGI (Common Gateway Interface) |
|---|---|
| Servlets er bærbare og effektive. | CGI er ikke bærbar. |
| I Servlets er det muligt at dele data. | I CGI er det ikke muligt at dele data. |
| Servlets kan kommunikere direkte med webserveren. | CGI kan ikke kommunikere direkte med webserveren. |
| Servlets er billigere end CGI. | CGI er dyrere end Servlets. |
| Servlets kan klare småkagerne. | CGI kan ikke håndtere cookies. |
Servlets API'er
Servlets er bygget af to pakker:
- javax.servlet(Basic)
- javax.servlet.http(Advance)
Forskellige klasser og grænseflader i disse pakker er:
hvordan man downloader youtube videoer vlc
| Komponent | Type | Pakke |
|---|---|---|
| Servlet | Interface | javax.servlet.* |
| ServletRequest | Interface | javax.servlet.* |
| ServletResponse | Interface | javax.servlet.* |
| GeneriskServlet | Klasse | javax.servlet.* |
| HttpServlet | Klasse | javax.servlet.http.* |
| HttpServletRequest | Interface | javax.servlet.http.* |
| HttpServletResponse | Interface | javax.servlet.http.* |
| Filter | Interface | javax.servlet.* |
| ServletConfig | Interface | javax.servlet.* |
Fordele ved en Java Servlet
- Servlet er hurtigere end CGI, da det ikke involverer oprettelse af en ny proces for hver ny modtaget anmodning.
- Servlets, som skrevet i Java, er platformsuafhængige.
- Fjerner overhead ved at oprette en ny proces for hver anmodning, da Servlet ikke kører i en separat proces. Der er kun en enkelt instans, der håndterer alle anmodninger samtidigt. Dette sparer også hukommelsen og giver en Servlet mulighed for nemt at administrere klienttilstanden.
- Det er en server-side komponent, så Servlet arver sikkerhed leveret af webserveren.
- Det API designet til Java Servlet opnår automatisk fordelene ved Java-platformene, såsom platformsuafhængig og portabilitet. Derudover kan den naturligvis bruge det brede udvalg af API'er, der er oprettet på Java-platforme som f.eks JDBC for at få adgang til databasen.
- Mange webservere, der er egnede til personlig brug eller websteder med lav trafik, tilbydes gratis eller ekstremt billige omkostninger f.eks. Java servlet. De fleste webservere af kommerciel kvalitet er dog ret dyre, med den bemærkelsesværdige undtagelse af Apache, som er gratis.
Servlet-beholderen
Servlet beholder , også kendt som Servlet motor, er et integreret sæt objekter, der giver et køretidsmiljø for Java Servlet-komponenter. Med enkle ord er det et system, der administrerer Java Servlet-komponenter oven på webserveren for at håndtere webklientens anmodninger.
Tjenester leveret af Servlet-beholderen:
- Netværkstjenester: Indlæser en Servlet-klasse. Indlæsningen kan være fra et lokalt filsystem, et eksternt filsystem eller andre netværkstjenester. Servlet-beholderen leverer de netværkstjenester, som anmodningen og svaret sendes over.
- Afkode og kode MIME-baserede meddelelser: Leverer tjenesten med afkodning og kodning af MIME-baserede beskeder.
- Administrer Servlet-beholder: Styrer livscyklussen for en Servlet.
- Ressourcestyring Administrerer de statiske og dynamiske ressourcer, såsom HTML-filer, Servlets og JSP-sider.
- Sikkerhedstjeneste: Håndterer autorisation og autentificering af ressourceadgang.
- Sessionsstyring: Vedligeholder en session ved at tilføje en Sessions ID til URL-stien.
Konklusion
Java Servlets er afgørende komponenter til at definere forretningslogik og håndtere komplekse webanmodninger. Disse komponenter fremmer den dynamiske udvikling af et websted og har et stort potentiale til at ændre applikationsdynamikken. Her er nogle af de vigtigste funktioner, vi lærer i denne artikel:
- Java Servlets hjælper med udviklingen af server-side applikationsudvikling og giver en måde at håndtere dynamisk indhold for at bygge robuste og interaktive websteder.
- Så snart anmodningen når webserveren, initialiseres en servlet-instans ved hjælp af varme() metode, og HTTP-anmodningen afhængigt af dens type kan håndteres af metoderne doGet() eller doPost().
- Servlets gør vores webapplikation mere responsiv og effektiv, da den ikke opretter og ødelægger en proces, hver gang en anmodning modtages.
Ofte stillede spørgsmål om Java Servlet
Q1. Hvad er Java Servlets livscyklus?
Java Servlet har en foruddefineret livscyklus, der starter fra initialisering (hukommelsesallokering), indtil objektet er destrueret (hukommelse deallokeret). Det foregår i følgende trin:
int til char java
- init() – kaldes, så snart anmodningen modtages af webserveren, og en ny servlet-instans initialiseres.
- service() – til at håndtere klientanmodning og omdirigere anmodningen til en passende doGet() eller doPost()
- destroy() – kaldes, når anmodningen håndteres, svar sendes tilbage til klienten og til sidst deallokeres hukommelsen allokeret til servlet.
Q2. Hvordan konfigureres en Java Servlet?
Konfiguration af Java Servlet er defineret inde i en implementeringsbeskrivelse fil – web.xml. Selvom det er arvet nu, da de fleste servletbaserede applikationer i dag brugte annotationsbaseret konfiguration til at konfigurere en Java Servlet ved hjælp af @WebServlet Annotation.
Eksempel: @WebServlet(navn = MyServlet, urlPatterns = /myServlet)
Q3. Hvad er et Servlet-filter?
Et Servlet-filter er en ekstra komponent til at udføre præ-postbehandlingsarbejde på webanmodninger som logning, overvågning, debugging og fejlfinding.