Dnes si všichni uvědomujeme potřebu tvořit dynamické webové stránky tedy takové, které mohou měnit obsah stránek podle času nebo mohou generovat obsah podle požadavku přijatého od klienta. Pokud máte rádi kódování v Javě, pak budete rádi, když víte, že pomocí Javy existuje také způsob generování dynamických webových stránek, a to Java Servlet . Než se však pohneme vpřed s naším tématem, nejprve pochopíme potřebu rozšíření na straně serveru.
náhodné číslo mezi 1 a 10
Co je Java Servlet?
Java servlety jsou programy Java, které běží na webovém serveru nebo aplikačním serveru s podporou Java. Používají se ke zpracování požadavku získaného z webového serveru, zpracování požadavku, vytvoření odpovědi a poté odeslání odpovědi zpět na webový server.
Vlastnosti Java Servlet
Vlastnosti servletů jsou následující:
- Servlety fungují na straně serveru.
- Servlety jsou schopny zpracovávat složité požadavky získané z webového serveru.
Architektura servletů Java
Architekturu servletů lze znázornit ze samotného obrázku, jak je uvedeno níže takto:
Spouštění Java servletů
V podstatě provádění servletů zahrnuje šest základních kroků:
- Klienti odešlou požadavek na webový server.
- Webový server obdrží požadavek.
- Webový server předá požadavek příslušnému servletu.
- Servlet zpracuje požadavek a vygeneruje odpověď ve formě výstupu.
- Servlet odešle odpověď zpět na webový server.
- Webový server odešle odpověď zpět klientovi a klientský prohlížeč ji zobrazí na obrazovce.
Nyní pojďme diskutovat o excentrickém bodu, že proč potřebujeme rozšíření na straně serveru?
Potřeba rozšíření na straně serveru
The Rozšíření na straně serveru nejsou nic jiného než technologie, které se používají k vytváření dynamických webových stránek. Aby webové stránky poskytovaly možnosti dynamických webových stránek, potřebují kontejner nebo webový server. Pro splnění tohoto požadavku nabízejí nezávislí poskytovatelé webových serverů některá proprietární řešení ve formě API ( Aplikační programovací rozhraní).
Tyto API nám umožňují vytvářet programy, které lze spustit s webovým serverem. V tomto případě, Java Servlet je také jednou z komponent API Java Platform Enterprise Edition (dnes známá jako „Jakarta EE“) který nastavuje standardy pro vytváření dynamických webových aplikací v Javě.
Než se o něčem dozvíte, je důležité vědět, že je to potřeba, není to tak, že by to byla jediná dostupná technologie pro vytváření dynamických webových stránek. Technologie Servlet je podobná jako u jiných rozšíření webového serveru, např Společné rozhraní brány ( CGI) skripty a Hypertextový předprocesor (PHP). Java servlety jsou však přijatelnější, protože řeší omezení CGI jako je nízký výkon a nízká míra škálovatelnosti.
Co je to CGI (Common Gateway Interface)?
CGI je ve skutečnosti externí aplikace, která je napsána pomocí některého z programovacích jazyků, jako je C nebo C++ a to je zodpovědné za zpracování požadavků klientů a generování dynamického obsahu.
datové struktury v Javě
Když v aplikaci CGI klient zadá požadavek na přístup k dynamickým webovým stránkám, webový server provede následující operace:
- Nejprve vyhledá požadovanou webovou stránku tj požadovanou CGI aplikaci pomocí URL.
- Poté vytvoří nový proces pro obsluhu požadavku klienta.
- Vyvolá aplikaci CGI v rámci procesu a předá aplikaci informace o požadavku.
- Shromažďuje odpověď z aplikace CGI.
- Zničí proces, připraví HTTP odpověď a odešle ji klientovi.
Takže dovnitř CGI server musí vytvořit a zničit proces pro každý požadavek. Je snadné pochopit, že tento přístup je použitelný pro obsluhu malého počtu klientů, ale jak se zvyšuje počet klientů, zvyšuje se zátěž na serveru, a tak se prodlužuje doba potřebná ke zpracování požadavků.
Rozdíl mezi Java servlety a CGI
Servlet | CGI (Common Gateway Interface) |
---|---|
Servlety jsou přenosné a efektivní. | CGI není přenosný. |
V servletech je sdílení dat možné. | V CGI není sdílení dat možné. |
Servlety mohou přímo komunikovat s webovým serverem. | CGI nemůže přímo komunikovat s webovým serverem. |
Servlety jsou levnější než CGI. | CGI je dražší než servlety. |
Servlety zvládnou cookies. | CGI nemůže zpracovávat soubory cookie. |
Rozhraní API pro servlety
Servlety jsou sestaveny ze dvou balíčků:
- javax.servlet(základní)
- javax.servlet.http (Advance)
V těchto balíčcích jsou přítomny různé třídy a rozhraní:
Komponent | Typ | Balík |
---|---|---|
Servlet | Rozhraní | javax.servlet.* |
ServletRequest | Rozhraní | javax.servlet.* |
ServletResponse | Rozhraní | javax.servlet.* |
GenericServlet | Třída | javax.servlet.* |
HttpServlet | Třída | javax.servlet.http.* |
HttpServletRequest | Rozhraní | javax.servlet.http.* |
HttpServletResponse | Rozhraní | javax.servlet.http.* |
Filtr | Rozhraní | javax.servlet.* |
ServletConfig | Rozhraní | javax.servlet.* |
Výhody Java servletu
- Servlet je rychlejší než CGI, protože nezahrnuje vytvoření nového procesu pro každý nový přijatý požadavek.
- Servlety, jak jsou napsány v Javě, jsou nezávislé na platformě.
- Odstraní režii při vytváření a nový proces pro každý požadavek, protože Servlet neběží v samostatném procesu. Existuje pouze jedna instance, která zpracovává všechny požadavky současně. To také šetří paměť a umožňuje servletu snadno spravovat stav klienta.
- Je to komponenta na straně serveru, takže Servlet zdědí bezpečnostní poskytované webovým serverem.
- The API navržený pro Java Servlet automaticky získává výhody platforem Java, jako je nezávislost na platformě a přenositelnost. Kromě toho samozřejmě může využívat širokou škálu API vytvořených na platformách Java, jako je např JDBC pro přístup k databázi.
- Mnoho webových serverů, které jsou vhodné pro osobní použití nebo weby s nízkou návštěvností, je nabízeno zdarma nebo za extrémní cenu levné náklady např. Java servlet. Většina komerčních webových serverů je však poměrně drahá, s výraznou výjimkou Apache, který je zdarma.
Servletový kontejner
Servletová nádoba , také známý jako Servletový motor, je integrovaná sada objektů, které poskytují běhové prostředí pro komponenty Java Servlet. Jednoduše řečeno, je to systém, který spravuje komponenty Java Servlet nad webovým serverem za účelem zpracování požadavků webových klientů.
Služby poskytované kontejnerem Servlet:
- Síťové služby: Načte třídu Servlet. Načítání může být z místního systému souborů, vzdáleného systému souborů nebo jiných síťových služeb. Kontejner Servlet poskytuje síťové služby, přes které jsou odesílány požadavky a odpovědi.
- Dekódování a kódování zpráv založených na MIME: Poskytuje službu dekódování a kódování zpráv na bázi MIME.
- Správa kontejneru servletu: Spravuje životní cyklus servletu.
- Řízení zdrojů Spravuje statické a dynamické prostředky, jako jsou soubory HTML, servlety a stránky JSP.
- Bezpečnostní služba: Zabývá se autorizací a ověřováním přístupu ke zdrojům.
- Správa relace: Udržuje relaci připojením a ID relace na cestu URL.
Závěr
Java servlety jsou klíčové komponenty pro definování obchodní logiky a zpracování složitých webových požadavků. Tyto komponenty podporují dynamický rozvoj webových stránek a mají velký potenciál změnit dynamiku aplikace. Zde jsou některé z klíčových funkcí, které se učíme v tomto článku:
- Java servlety pomáhají při vývoji vývoje aplikací na straně serveru a poskytují způsob, jak se vypořádat s dynamickým obsahem pro vytváření robustních a interaktivních webových stránek.
- Jakmile požadavek dorazí na webový server, inicializuje se instance servletu pomocí teplo() a požadavek HTTP v závislosti na jeho typu lze zpracovat metodami doGet() nebo doPost().
- Díky servletům je naše webová aplikace citlivější a efektivnější, protože nevytváří a neničí proces pokaždé, když je přijat požadavek.
Nejčastější dotazy k Java Servlet
Q1. Jaký je životní cyklus Java Servlet?
Java Servlet má předdefinovaný životní cyklus počínaje inicializátorem (alokace paměti) až do zničení objektu (uvolnění paměti). Probíhá v následujících krocích:
- init() – je volána, jakmile webový server obdrží požadavek a inicializuje se nová instance servletu.
- service() – pro zpracování požadavku klienta a přesměrování požadavku na vhodné doGet() nebo doPost()
- zničit() – volá se, když je požadavek zpracován, odpověď je odeslána zpět klientovi a nakonec je uvolněna paměť přidělená servletu.
Q2. Jak nakonfigurovat Java Servlet?
Konfigurace Java Servlet je definována uvnitř a deskriptor nasazení soubor – web.xml. I když je to dnes již zastaralé, protože většina aplikací založených na servletech v současnosti používá konfiguraci založenou na anotaci ke konfiguraci servletu Java pomocí anotace @WebServlet.
vysvětlit nezávislost datPříklad: @WebServlet(name = MyServlet, urlPatterns = /myServlet)
Q3. Co je to servletový filtr?
Servlet Filter je další komponenta pro provádění prací před zpracováním webových požadavků, jako je protokolování, monitorování, ladění a odstraňování problémů.