logo

„Java“ serverių įvadas

Šiandien visi žinome, kad reikia kurti dinamiški tinklalapiai y., kurios gali keisti svetainės turinį pagal laiką arba gali generuoti turinį pagal gautą iš kliento užklausą. Jei jums patinka kodavimas Java kalba, jums bus malonu žinoti, kad naudojant Java taip pat yra būdas generuoti dinaminius tinklalapius ir tai yra Java serveris . Tačiau prieš pereidami prie temos, pirmiausia supraskime serverio plėtinių poreikį.

Kas yra „Java Servlet“?

„Java“ serveriai yra „Java“ programos, veikiančios žiniatinklio serveryje arba programų serveryje, kuriame įgalinta Java. Jie naudojami apdoroti užklausą, gautą iš žiniatinklio serverio, apdoroti užklausą, pateikti atsakymą ir tada siųsti atsakymą atgal į žiniatinklio serverį.

„Java Servlet“ savybės

Servletų savybės yra šios:



  • Servletai veikia serverio pusėje.
  • Servletai gali apdoroti sudėtingas užklausas, gautas iš žiniatinklio serverio.

Java Servletų architektūra

Servleto architektūra gali būti pavaizduota iš paties vaizdo, kaip nurodyta toliau:

Servletų_architektūra

Java Servletų vykdymas

Servletų vykdymas iš esmės apima šešis pagrindinius veiksmus:

  1. Klientai siunčia užklausą į interneto serverį.
  2. Interneto serveris gauna užklausą.
  3. Žiniatinklio serveris perduoda užklausą atitinkamai servlet.
  4. Servlet apdoroja užklausą ir generuoja atsakymą išvesties forma.
  5. Servletas siunčia atsakymą atgal į žiniatinklio serverį.
  6. Žiniatinklio serveris siunčia atsakymą atgal klientui, o kliento naršyklė parodo jį ekrane.

Dabar aptarkime ekscentrišką klausimą, kodėl mums reikia serverio pusės plėtinių?

objekto konvertavimas į eilutę

Reikia serverio plėtinių

The Serverio plėtiniai yra ne kas kita, kaip technologijos, naudojamos kuriant dinamiškus tinklalapius. Tiesą sakant, norint teikti dinaminių tinklalapių galimybę, tinklalapiams reikia konteinerio arba žiniatinklio serverio. Siekdami patenkinti šį reikalavimą, nepriklausomi žiniatinklio serverių tiekėjai siūlo kai kuriuos patentuotus sprendimus API ( Taikomųjų programų programavimo sąsaja).
Šie API leidžia mums kurti programas, kurios gali veikti su žiniatinklio serveriu. Tokiu atveju, Java serveris taip pat yra viena iš komponentų API „Java Platform Enterprise Edition“ (šiuo metu žinomas kaip „Jakarta EE“) kuris nustato standartus kuriant dinamines žiniatinklio programas Java.

Prieš mokantis apie ką nors, svarbu žinoti, kad to kažko reikia, nėra taip, kad tai yra vienintelė dinaminių tinklalapių kūrimo technologija. Servlet technologija yra panaši į kitus žiniatinklio serverio plėtinius, tokius kaip Bendroji šliuzo sąsaja ( CGI) scenarijus ir Hiperteksto pirminis apdorojimas (PHP). Tačiau „Java Servlet“ yra priimtinesni, nes jie išsprendžia apribojimus CGI pvz., mažas našumas ir mažas mastelio laipsnis.

Kas yra CGI (Common Gateway Interface)?

CGI iš tikrųjų yra išorinė programa, parašyta naudojant bet kurią programavimo kalbą, pvz., C arba C++ ir ši yra atsakinga už klientų užklausų apdorojimą ir dinaminio turinio generavimą.

CGI programoje, kai klientas pateikia užklausą pasiekti dinaminius tinklalapius, žiniatinklio serveris atlieka šias operacijas:

  • Pirmiausia jis suranda pageidaujamą tinklalapį t.y reikiamą CGI programą naudojant URL.
  • Tada sukuriamas naujas procesas, skirtas patenkinti kliento užklausą.
  • Proceso metu iškviečia CGI programą ir perduoda užklausos informaciją programai.
  • Surenka atsakymą iš CGI programos.
  • Sunaikina procesą, paruošia HTTP atsakymą ir siunčia jį klientui.

CGI

Taigi, į CGI serveris turi sukurti ir sunaikinti kiekvienos užklausos procesą. Nesunku suprasti, kad šis metodas taikomas tvarkant keletą klientų, tačiau didėjant klientų skaičiui, didėja serverio darbo krūvis, todėl pailgėja užklausų apdorojimo laikas.

string.valueof

Skirtumas tarp „Java Servlet“ ir CGI

Servletas CGI (bendrųjų šliuzų sąsaja)
Servletai yra nešiojami ir veiksmingi. CGI nėra nešiojamas.
Servletuose galima dalytis duomenimis. CGI dalytis duomenimis negalima.
Servletai gali tiesiogiai susisiekti su žiniatinklio serveriu. CGI negali tiesiogiai susisiekti su žiniatinklio serveriu.
Servletai yra pigesni nei CGI. CGI yra brangesnis nei servletai.
Servletai gali tvarkyti slapukus. CGI negali apdoroti slapukų.

Servletų API

Servletai yra sukurti iš dviejų paketų:

  • javax.servlet(Basic)
  • javax.servlet.http (Išankstinis)

Įvairios šiuose paketuose esančios klasės ir sąsajos yra:

Komponentas Tipas Paketas
Servletas Sąsaja javax.servlet.*
ServletRequest Sąsaja javax.servlet.*
„ServletResponse“. Sąsaja javax.servlet.*
GenericServlet Klasė javax.servlet.*
HttpServlet Klasė javax.servlet.http.*
HttpServletRequest Sąsaja javax.servlet.http.*
HttpServletResponse Sąsaja javax.servlet.http.*
Filtras Sąsaja javax.servlet.*
ServletConfig Sąsaja javax.servlet.*

„Java Servlet“ pranašumai

  • Servletas yra greičiau nei CGI, nes tai nereiškia, kad kiekvienai naujai gautai užklausai sukuriamas naujas procesas.
  • Servletai, kaip parašyta Java, yra nepriklausomi nuo platformos.
  • Pašalina pridėtines sukūrimo išlaidas naujas procesas kiekvienai užklausai, nes „Servlet“ neveikia atskirame procese. Yra tik vienas egzempliorius, kuris vienu metu apdoroja visas užklausas. Tai taip pat taupo atmintį ir leidžia „Servlet“ lengvai valdyti kliento būseną.
  • Tai yra serverio komponentas, todėl „Servlet“ paveldi saugumo teikia žiniatinklio serveris.
  • The API sukurtas Java Servlet automatiškai įgyja Java platformų privalumus, tokius kaip nuo platformos nepriklausomas ir perkeliamumas. Be to, akivaizdu, kad jis gali naudoti platų API, sukurtų Java platformose, pvz., JDBC pasiekti duomenų bazę.
  • Daugelis žiniatinklio serverių, tinkamų asmeniniam naudojimui arba mažo srauto tinklalapiams, siūlomi nemokamai arba itin didelėmis kainomis pigios išlaidos pvz. Java servletas. Tačiau dauguma komercinio lygio žiniatinklio serverių yra gana brangūs, išskyrus „Apache“, kuri yra nemokama.

Servleto konteineris

Servleto konteineris , taip pat žinomas kaip Servleto variklis, yra integruotas objektų rinkinys, užtikrinantis „Java Servlet“ komponentų vykdymo laiką. Paprastais žodžiais tariant, tai yra sistema, kuri valdo „Java Servlet“ komponentus, esančius žiniatinklio serverio viršuje, kad galėtų apdoroti žiniatinklio kliento užklausas.

Servlet konteinerio teikiamos paslaugos:

  • Tinklo paslaugos: Įkeliama „Servlet“ klasė. Įkėlimas gali būti atliekamas iš vietinės failų sistemos, nuotolinės failų sistemos ar kitų tinklo paslaugų. Servlet konteineris teikia tinklo paslaugas, per kurias siunčiama užklausa ir atsakymas.
  • Iššifruoti ir užkoduoti MIME pagrįstus pranešimus: Teikia MIME pagrįstų pranešimų dekodavimo ir kodavimo paslaugą.
  • Tvarkyti „Servlet“ sudėtinį rodinį: Tvarko Servlet gyvavimo ciklą.
  • Resursu valdymas Tvarko statinius ir dinaminius išteklius, tokius kaip HTML failai, serveriai ir JSP puslapiai.
  • Apsaugos tarnyba: Tvarko prieigos prie išteklių autorizavimą ir autentifikavimą.
  • Seanso valdymas: Palaiko seansą pridedant a Sesijos ID į URL kelią.

Išvada

Java serveriai yra esminiai komponentai nustatant verslo logiką ir tvarkant sudėtingas žiniatinklio užklausas. Šie komponentai skatina dinamišką svetainės plėtrą ir turi daug galimybių pakeisti programos dinamiką. Štai keletas pagrindinių funkcijų, kurias sužinome šiame straipsnyje:

  • „Java Servlet“ padeda kurti serverio taikomąsias programas ir suteikia galimybę susidoroti su dinamišku turiniu, kad būtų galima kurti patikimas ir interaktyvias svetaines.
  • Kai tik užklausa pasiekia žiniatinklio serverį, servlet egzempliorius inicijuojamas naudojant karštis () metodas, o HTTP užklausa, priklausomai nuo jos tipo, gali būti tvarkoma doGet() arba doPost() metodais.
  • Servletai daro mūsų žiniatinklio programą jautresnę ir efektyvesnę, nes ji nesukuria ir nesunaikina proceso kiekvieną kartą, kai gaunama užklausa.

DUK apie „Java Servlet“.

Q1. Kas yra „Java Servlet“ gyvavimo ciklas?

„Java Servlet“ turi iš anksto apibrėžtą gyvavimo ciklą, pradedant nuo inicijavimo (atminties paskirstymo) iki objekto sunaikinimo (atminties panaikinimo). Tai vyksta šiais etapais:

  1. init() – iškviečiamas, kai tik žiniatinklio serveris gauna užklausą ir inicijuojamas naujas servlet egzempliorius.
  2. service() – apdoroti kliento užklausą ir nukreipti užklausą į atitinkamą doGet() arba doPost()
  3. Dearst() – iškviečiamas, kai apdorojama užklausa, atsakymas siunčiamas atgal klientui ir galiausiai atlaisvinama servletui skirta atmintis.

Q2. Kaip sukonfigūruoti „Java Servlet“?

„Java Servlet“ konfigūracija yra apibrėžta a viduje dislokavimo deskriptorius failas – web.xml. Nors dabar tai yra palikimas, nes dauguma servlet pagrįstų programų šiais laikais naudoja komentarais pagrįstą konfigūraciją, kad sukonfigūruotų „Java Servlet“ naudojant @WebServlet Annotation.

linux kuri komanda

Pavyzdys: @WebServlet(vardas = MyServlet, urlPatterns = /myServlet)

Q3. Kas yra „Servlet“ filtras?

Servlet filtras yra papildomas komponentas, skirtas atlikti išankstinio apdorojimo darbus, susijusius su žiniatinklio užklausomis, pvz., registravimas, stebėjimas, derinimas ir trikčių šalinimas.