Što je Tomcat? Izvorni spremnik Java servleta

Apache Tomcat je dugovječni spremnik Java servleta s otvorenim kodom koji implementira nekoliko osnovnih Java specifikacija za poduzeće, a to su Java Servlet, JavaServer Pages (JSP) i WebSockets API.

Tomcat, projekt Apache Software Foundation, prvi je put objavljen 1998., samo četiri godine nakon same Jave. Tomcat je započeo kao referentna implementacija za prvi Java Servlet API i JSP specifikacije. Iako više nije referentna implementacija niti za jednu od ovih tehnologija, Tomcat je i dalje najkorišteniji Java poslužitelj, ponoseći se dobro testiranim i provjerenim jezgrenim motorom s dobrom proširivošću.

U ovom kratkom uvodu naučit ćete zašto mnoge prodavaonice softvera odabiru Tomcat za pokretanje Java web aplikacija. Dobit ćete pregled Tomcata i načina na koji se koristi, kao i upute za instalaciju najnovije verzije od ovog pisanja.

Tomcat i API Java Servlet

Tomcat 9 podržava specifikacije Servlet 4.0 i zahtijeva JDK 8 ili noviji. Tomcat 8.5 podržava nekoliko novijih značajki poput HTTP / 2, ali ostaje spremnik Servlet 3.

Kakav je poslužitelj Tomcat?

Javni ekosustav podržava nekoliko vrsta aplikacijskog poslužitelja, zato ga razdvojimo i pogledajte gdje se Tomcat uklapa:

  • Spremnik servleta je implementacija specifikacije Java Servlet, koja se prvenstveno koristi za hosting Java servleta.
  • Web poslužitelj je poslužitelj dizajniran da služi datoteka s lokalnog sustava, kao što su Apache.
  • Java enterprise aplikacija poslužitelj je full-puhano implementacija Java EE (sada Jakarta EE) specifikacije.

U srcu je Tomcat servlet i JSP spremnik. Java servlet obuhvaća kôd i poslovnu logiku i definira kako se na Java poslužitelju treba postupati sa zahtjevima i odgovorima. JSP je tehnologija prikazivanja prikaza na strani poslužitelja. Kao programer napišete servlet ili JSP stranicu, a zatim pustite Tomcat da upravlja usmjeravanjem.

Tomcat također sadrži Coyote engine, koji je web poslužitelj. Zahvaljujući Coyoteu moguće je proširiti Tomcat tako da uključuje razne specifikacije i mogućnosti Java poduzeća, uključujući Java Persistent API (JPA). Tomcat također ima proširenu verziju, nazvanu TomEE, koja uključuje više značajki poduzeća. Dalje ću ukratko predstaviti TomEE u ovom članku.

Počnimo s pogledom na upotrebu Tomcata za hostiranje servleta i JSP-ova.

Preuzmite i instalirajte Tomcat

Budući da je drevni svijet softverskog svijeta, dostupne su brojne verzije Tomcata. Informacije o razlikama u verzijama dostupne su na Tomcat početnoj stranici. Obično možete odabrati najnoviju stabilnu verziju.

Za naše svrhe preuzmite najnoviju verziju Tomcata, koja je trenutno Tomcat 9. Možete odabrati preuzimanje datoteke Tomcat kao arhivu ( .zipili tar.gz) ili kao instaliranu uslugu. Najbolji je izbor na vama - osim ako naravno ne koristite Windows, u tom ćete slučaju otići po arhivu. Za ovaj ćemo članak koristiti arhivu.

Instalacija sustava Windows za Tomcat

Ako imate Windows i želite koristiti instalacijski program, jednostavno preuzmite .exe datoteku i pokrenite je. Tomcat će se instalirati kao usluga s razumnim zadanim postavkama. Tada će vas obavijestiti gdje je instalacija i možete nastaviti kao da ste tamo raspakirali arhivu.

Korak 1. Instalacija naredbenog retka

Idite na naredbeni redak i unesite gunzip apache-tomcat-9.0.19.tar.gznakon čega slijedi tar -xf apache-tomcat-9.0.19.tar. Ovo stvara sljedeće direktorije:

  • / bin sadrži skripte za izvršavanje Tomcata.
  • / webapps je mjesto na kojem ćete implementirati svoje aplikacije.
  • / logs je mjesto na kojem Tomcat daje svoje zapisnike. Imajte na umu da Tomcatovi zapisnici idu /logs/catalina.outprema zadanim postavkama. Ovu datoteku možete koristiti za otklanjanje pogrešaka u vezi s datotekama dnevnika za određene aplikacije.
  • / lib je mjesto gdje Tomcat traži JAR-ove. Ovdje ćete pohraniti dodatne pakete koji nisu uključeni u Tomcat, poput JPA.
  • / conf je config XML za Tomcat, gdje možete raditi stvari poput dodavanja korisnika i uloga za Tomcat.

Korak 2. Pokrenite Tomcat

Ako ste Tomcat instalirali kao uslugu, on je već pokrenut. Inače, samo naprijed i pokrenite ga unošenjem ./catalina.sh startu naredbeni redak. (Upišite ./catalina.shbez argumenata da biste vidjeli sve dostupne naredbe). Sada biste u pregledniku mogli pregledavati zaslon dobrodošlice tvrtke Tomcat.

Matthew Tyson

Uvođenje aplikacija u Tomcat

Tomcatov webappsdirektorij je mjesto na kojem instalirate aplikaciju. Tamo možete ispustiti .wardatoteku i Tomcat će je pokrenuti. Datoteka WAR standardno je pakiranje za resurs web aplikacije: JAR datoteka s nekim dodatnim datotekama koje spremniku (u ovom slučaju Tomcat) govore kako ga pokrenuti.

Osim standardnog pakiranja, postoje tri dodatna načina za postavljanje sadržaja u Tomcat.

Eksplodirano raspoređivanje

"Eksplodirana" web aplikacija je aplikacija koja nije komprimirana u WAR datoteku, što znači da i dalje sadrži sve elemente položene u direktorije i datoteke. Arhiva Tomcat koju ste raspakirali isporučena je s nekoliko primjera raspoređenih na ovaj način, koje ćete pronaći u /webapps/examplesdirektoriju. Prednost eksplodiranog postavljanja je što tamo možete pregledavati datoteke bez brige o kompresiji.

Ako dođete do //localhost:8080/examples/, pronaći ćete popis veza. Tomcat prikazuje ovu stranicu iz /webapps/examples/index.htmldatoteke. Tomcat poslužuje HTML datoteku iz datotečnog sustava, koja je instanca Tomcat-ovog mehanizma Coyote koji djeluje kao web poslužitelj.

Slobodno možete istražiti predstavljene primjere - oni vam daju dobar pregled Tomcat-ovih mogućnosti za posluživanje servleta, JSP-a i WebSockets-a.

Tomcat također uključuje aplikaciju za upravljanje prema zadanim postavkama koja se nalazi ispod /managerstaze. Između ostalog, ova aplikacija omogućuje vam pokretanje, zaustavljanje i ponovno raspoređivanje aplikacija s web konzole.

Posluživanje statičnog sadržaja

Moguće je posluživanje datoteka iz datotečnog sustava ili prosljeđivanje s Tomcata na drugi HTTP poslužitelj poput Apachea. Druga uobičajena postavka je postavljanje poslužitelja datoteka poput Apachea ili Nginxa ispred Tomcata, a zatim prosljeđivanje vaših API zahtjeva u Tomcat. U tim se slučajevima mod_JK knjižnica koristi za konfiguriranje Tomcata i Apachea (ili čak drugog web poslužitelja poput IIS-a) za komunikaciju.

Za poboljšane performanse, prvenstveno u isporuci statičkog sadržaja, Tomcat također nudi izvorne omote za Windows i Linux. Ovo je poznato kao Tomcat APR, a više informacija dostupno je ovdje. Oni nisu potrebni za tipične slučajeve uporabe, ali dobro je znati o njima.

Ugrađeni Tomcat

Dugo je vremena Jetty bio jedini poslužitelj koji je mogao raditi kao ugrađeni poslužitelj. To se promijenilo, a sada Tomcat može raditi i ugrađen. Ideja korištenja ugrađenog poslužitelja je da umjesto poslužitelja koji sadrži datoteke aplikacija, kao što ste do sada vidjeli, imate aplikaciju s glavnom klasom (to jest, samostalnu Java aplikaciju) koja poziva poslužiteljske mogućnosti iz unutar svoje baze koda. Sve u svemu, ovo nudi jednostavniji i prenosivi razvojni model i brzo je postao norma. Na primjer, Spring Boot koristi ugrađenu Tomcat instancu koja se izvodi u načinu rada.

Pokretanje ugrađenog poslužitelja može umrežiti jednostavnost u smislu operacija, budući da se sada bavite samo jednom komponentom (aplikacijom), umjesto da se bavite aplikacijom i implementacijom poslužitelja. S druge strane, postavka u kojoj Tomcat radi kao neovisni domaćin još je uvijek česta.

TomEE

Moguće je koristiti više standardnih mogućnosti Java EE (ili Jakarta EE) s Tomcatom dodavanjem tih knjižnica u sam Tomcat ili u ovisnosti o vašoj aplikaciji. Druga mogućnost je TomEE poslužitelj. TomEE je isti Tomcat motor s dodatnom podrškom za Java poduzeće, uključujući popularne API-je JPA i CDI (Contexts and Dependency Injection). Specifikacije TomEE-a temelje se na Java EE web profilu, tako da vam pruža više od Tomcata, ali nije potpuno razvijeni Java EE poslužitelj aplikacija poput WildFly ili Glassfish.

Visoka dostupnost i klasterizacija

Tomcat podržava visoku dostupnost i klasterizaciju. Visoka dostupnost u osnovi je sposobnost prebacivanja na drugu instancu poslužitelja i ponovne izrade sesije kao da ništa nije pošlo po zlu. Klasteriranje je sposobnost stvaranja više verzija istog poslužitelja za rukovanje velikim prometom.

Zaključak

Tomcat se i dalje aktivno razvija, ide u korak s promjenama i pruža solidnu i pouzdanu platformu za uvođenje web aplikacija. I njegova kontinuirana popularnost i izbor kao zadane Java platforme za mnoge PaaS sustave svjedoče o njenom kontinuiranom uspjehu.

Ovu priču, "Što je Tomcat? Izvorni spremnik Java servleta" izvorno je objavio JavaWorld.