Dnes si všetci uvedomujeme potrebu tvoriť dynamické webové stránky t.j. tie, ktoré môžu meniť obsah stránky podľa času alebo môžu generovať obsah podľa požiadavky prijatej od klienta. Ak máte radi kódovanie v Jave, budete radi, že pomocou Javy existuje aj spôsob generovania dynamických webových stránok, a to Java Servlet . Ale predtým, ako sa pohneme vpred s našou témou, najprv pochopme potrebu rozšírení na strane servera.
Čo je Java Servlet?
Java servlety sú programy Java, ktoré sa spúšťajú na webovom serveri alebo aplikačnom serveri s podporou Java. Používajú sa na spracovanie požiadavky získanej z webového servera, spracovanie požiadavky, vytvorenie odpovede a následné odoslanie odpovede späť na webový server.
Vlastnosti Java Servlet
Vlastnosti servletov sú nasledovné:
- Servlety fungujú na strane servera.
- Servlety sú schopné spracovať zložité požiadavky získané z webového servera.
Architektúra Java Servlets
Architektúru servletov je možné znázorniť zo samotného obrázka, ako je uvedené nižšie:
Spustenie Java servletov
V podstate vykonávanie servletov zahŕňa šesť základných krokov:
- Klienti zašlú požiadavku na webový server.
- Webový server prijme požiadavku.
- Webový server odovzdá požiadavku príslušnému servletu.
- Servlet spracuje požiadavku a vygeneruje odpoveď vo forme výstupu.
- Servlet odošle odpoveď späť na webový server.
- Webový server odošle odpoveď späť klientovi a klientsky prehliadač ju zobrazí na obrazovke.
Teraz poďme diskutovať o excentrickom bode, že prečo potrebujeme rozšírenia na strane servera?
git pridať všetko
Potreba rozšírení na strane servera
The Rozšírenia na strane servera nie sú nič iné ako technológie, ktoré sa používajú na vytváranie dynamických webových stránok. Na poskytovanie dynamických webových stránok potrebujú webové stránky kontajner alebo webový server. Na splnenie tejto požiadavky ponúkajú nezávislí poskytovatelia webových serverov niektoré proprietárne riešenia vo forme API ( Prgramovacie prostredie aplikácií).
Títo API nám umožňujú vytvárať programy, ktoré možno spustiť s webovým serverom. V tomto prípade, Java Servlet je tiež jedným z komponentov API Java Platform Enterprise Edition (dnes známa ako „Jakarta EE“) ktorý stanovuje štandardy pre vytváranie dynamických webových aplikácií v jazyku Java.
Predtým, ako sa o niečom dozviete, je dôležité vedieť, že je to potrebné, nie je to tak, že toto je jediná dostupná technológia na vytváranie dynamických webových stránok. Technológia Servlet je podobná iným rozšíreniam webového servera, ako napr Spoločné rozhranie brány ( CGI) skripty a Hypertextový preprocesor (PHP). Java servlety sú však prijateľnejšie, pretože riešia obmedzenia CGI ako je nízky výkon a nízka miera škálovateľnosti.
Čo je to CGI (Common Gateway Interface)?
CGI je vlastne externá aplikácia, ktorá je napísaná pomocou niektorého z programovacích jazykov, ako je C alebo C++ a to je zodpovedné za spracovanie požiadaviek klientov a generovanie dynamického obsahu.
Keď v aplikácii CGI klient požiada o prístup k dynamickým webovým stránkam, webový server vykoná nasledujúce operácie:
- Najprv nájde požadovanú webovú stránku t.j požadovanú CGI aplikáciu pomocou URL.
- Potom vytvorí nový proces na obsluhu požiadavky klienta.
- Vyvolá aplikáciu CGI v rámci procesu a odošle informácie o požiadavke do aplikácie.
- Zhromažďuje odpoveď z aplikácie CGI.
- Zničí proces, pripraví HTTP odpoveď a odošle ju klientovi.
Takže v CGI server musí vytvoriť a zničiť proces pre každú požiadavku. Je ľahké pochopiť, že tento prístup je použiteľný na obsluhu malého počtu klientov, ale so zvyšujúcim sa počtom klientov sa zvyšuje aj pracovné zaťaženie servera, a preto sa zvyšuje čas potrebný na spracovanie požiadaviek.
Rozdiel medzi Java servletmi a CGI
Servlet | CGI (Common Gateway Interface) |
---|---|
Servlety sú prenosné a efektívne. | CGI nie je prenosný. |
V Servletoch je zdieľanie údajov možné. | V CGI nie je zdieľanie údajov možné. |
Servlety môžu priamo komunikovať s webovým serverom. | CGI nemôže priamo komunikovať s webovým serverom. |
Servlety sú lacnejšie ako CGI. | CGI je drahšie ako servlety. |
Servlety zvládnu sušienky. | CGI nedokáže spracovať súbory cookie. |
Rozhrania API servletov
Servlety sú zostavené z dvoch balíkov:
- javax.servlet(Základné)
- javax.servlet.http(Advance)
Rôzne triedy a rozhrania prítomné v týchto balíkoch sú:
Komponent | Typ | Balíček |
---|---|---|
Servlet | Rozhranie | javax.servlet.* |
ServletRequest | Rozhranie | javax.servlet.* |
ServletResponse | Rozhranie | javax.servlet.* |
GenericServlet | Trieda | javax.servlet.* |
HttpServlet | Trieda | javax.servlet.http.* |
HttpServletRequest | Rozhranie | javax.servlet.http.* |
HttpServletResponse | Rozhranie | javax.servlet.http.* |
Filter | Rozhranie | javax.servlet.* |
ServletConfig | Rozhranie | javax.servlet.* |
Výhody Java Servlet
- Servlet je rýchlejšie ako CGI, pretože nezahŕňa vytvorenie nového procesu pre každú novú prijatú požiadavku.
- Servlety, ako sú napísané v jazyku Java, sú nezávislé na platforme.
- Odstraňuje réžiu vytvárania a nový proces pre každú požiadavku, pretože Servlet sa nespúšťa v samostatnom procese. Existuje iba jedna inštancia, ktorá spracováva všetky požiadavky súčasne. To tiež šetrí pamäť a umožňuje servletu jednoducho spravovať stav klienta.
- Je to komponent na strane servera, takže Servlet zdedí bezpečnosť poskytovaný webovým serverom.
- The API navrhnutý pre Java Servlet automaticky získava výhody platforiem Java, ako je platformová nezávislosť a prenosnosť. Okrem toho samozrejme dokáže využívať širokú škálu API vytvorených na platformách Java ako napr JDBC pre prístup k databáze.
- Mnohé webové servery, ktoré sú vhodné na osobné použitie alebo webové stránky s nízkou návštevnosťou, sú ponúkané zadarmo alebo za extrémne ceny lacné náklady napr. Java servlet. Väčšina komerčných webových serverov je však dosť drahá, s významnou výnimkou Apache, ktorý je zadarmo.
Servletový kontajner
Servletová nádoba , taktiež známy ako Servletový motor, je integrovaná množina objektov, ktoré poskytujú prostredie spustenia pre komponenty Java Servlet. Jednoducho povedané, je to systém, ktorý riadi komponenty Java Servlet nad webovým serverom, aby spracoval požiadavky webového klienta.
Služby poskytované kontajnerom Servlet:
- Sieťové služby: Načíta triedu Servlet. Načítanie môže byť z lokálneho súborového systému, vzdialeného súborového systému alebo iných sieťových služieb. Kontajner Servlet poskytuje sieťové služby, cez ktoré sa odosiela požiadavka a odpoveď.
- Dekódovanie a kódovanie správ založených na MIME: Poskytuje službu dekódovania a kódovania správ na báze MIME.
- Spravovať kontajner Servlet: Spravuje životný cyklus servletu.
- Riadenie zdrojov Spravuje statické a dynamické prostriedky, ako sú súbory HTML, servlety a stránky JSP.
- Bezpečnostná služba: Zaoberá sa autorizáciou a autentifikáciou prístupu k zdrojom.
- Správa relácie: Udržiava reláciu pripojením a ID relácie na cestu URL.
Záver
Java servlety sú kľúčové komponenty pre definovanie obchodnej logiky a spracovanie zložitých webových požiadaviek. Tieto komponenty podporujú dynamický rozvoj webovej stránky a majú veľký potenciál zmeniť dynamiku aplikácie. Tu sú niektoré z kľúčových funkcií, ktoré sa dozvieme v tomto článku:
- Java servlety pomáhajú pri vývoji vývoja aplikácií na strane servera a poskytujú spôsob, ako sa vysporiadať s dynamickým obsahom na vytváranie robustných a interaktívnych webových stránok.
- Hneď ako sa požiadavka dostane na webový server, inštancia servletu sa inicializuje pomocou teplo() a požiadavku HTTP v závislosti od jej typu možno spracovať metódami doGet() alebo doPost().
- Vďaka servletom je naša webová aplikácia citlivejšia a efektívnejšia, pretože nevytvára a neničí proces zakaždým, keď je prijatá požiadavka.
Časté otázky o Java Servlet
Q1. Aký je životný cyklus Java Servlet?
Java Servlet má preddefinovaný životný cyklus začínajúci od inicializátora (pridelenie pamäte) až po deštrukciu objektu (uvoľnenie pamäte). Prebieha v nasledujúcich krokoch:
javatpoint java
- init() – volá sa hneď, ako webový server prijme požiadavku a inicializuje sa nová inštancia servletu.
- service() – na spracovanie požiadavky klienta a presmerovanie požiadavky na vhodné doGet() alebo doPost()
- zničit() – volá sa, keď je požiadavka spracovaná, odpoveď sa odošle späť klientovi a nakoniec sa uvoľní pamäť pridelená servletu.
Q2. Ako nakonfigurovať Java Servlet?
Konfigurácia Java Servlet je definovaná vo vnútri a deskriptor nasadenia súbor – web.xml. Aj keď je to teraz staré, pretože väčšina aplikácií založených na servletoch v súčasnosti používa konfiguráciu založenú na anotáciách na konfiguráciu servletu Java pomocou anotácie @WebServlet.
Príklad: @WebServlet(name = MyServlet, urlPatterns = /myServlet)
Q3. Čo je servletový filter?
Servlet Filter je dodatočný komponent na vykonávanie prác pred spracovaním webových požiadaviek, ako je protokolovanie, monitorovanie, ladenie a riešenie problémov.