Java-visningsteknologier og -rammer - Java view technologies and frameworks
Java-visningsteknologier og -rammer er nettbaserte programvarebiblioteker som gir brukergrensesnittet , eller " visningslag ", til Java- webapplikasjoner . Slike applikasjonsrammer brukes til å definere websider og håndtere HTTP- forespørsler (klikk) generert av disse websidene. Som en underkategori av nettrammer , overlapper ofte visningslagsrammer i ulik grad med nettrammer som gir annen funksjonalitet for Java-webapplikasjoner.
Rammer for Java-visningssjikt hevder ofte å støtte deler av eller hele design-mønsteret for modell-visning-kontroller .
innhold
På et øyeblikk
| Handlingsbaserte rammer: | Apache Struts , Spring MVC |
|---|---|
| Komponentbaserte rammer: | Apache Click , Apache Tapestry , Apache Wicket , JavaServer Faces |
| Nettmalsystemer: | Apache Tiles , SiteMesh , Thymeleaf |
- JavaServer Faces (JSF), Apache Tapestry og Apache Wicket konkurrerer komponentbaserte teknologier, abstraherer den statsløse HTTP-forespørsel-svar-syklusen og Java Servlet API bak en objektorientert , hendelsesstyrt komponentmodell.
- I kontrast er Struts og Spring MVC Framework handlingsorienterte rammer som gir et tynnere abstraksjonslag over servlet API .
- Apache Tiles er et malingsramme designet for å jobbe med Struts.
- Facelets er en visningsdefinisjon og templeringsteknologi designet for å jobbe med JSF.
- SiteMesh kan brukes med hvilken som helst JSP .
- Facelets, Tapestry og Wicket har sine egne templating-tilnærminger basert på HTML / XHTML .
- Apache Click bruker HTML-baserte Apache Velocity- maler og vanlige Java-objekter , med JavaServer Pages valgfritt.
Servlet API
Servlet API er grunnlaget for nesten alle Java Web View-teknologier. Servlet gir den grunnleggende mekanismen for å skrive Java- klasser for webapplikasjoner. Servlets kan svare på HTTP-forespørsler, lage informasjonskapsler og vedlikeholde økter.
JavaServer Pages (JSP)
- Bygget på toppen av Servlet API, gir JSP en dokumentsentriske, tagbaserte maler, serverprogrammeringsmodell som kan generere mange former for tekstlig innhold.
- Java-kode kan være innebygd i JSP-filer og blir samlet og utført når en forespørsel mottas.
Apache Struts
- Struts sørger for en frakobling av kontrolleren og utsikten.
- Forespørsler mottas av en Java Class (Controller) som kan bestemme hvilken Vis som skal vises.
- Selve visningen kan skrives i forskjellige visningsteknologier, som JSP, gratis markørmal, hastighetsmal etc.
- En XML- konfigurasjonsfil brukes til å spesifisere "Page Navigation", dvs. flyten av forespørselen til den aktuelle kontrolleren, og hvilken visning som skal vises basert på resultatet av kontrolleren.
- Konkurrent : Spring MVC, Grails
Apache-billedvev
- En komponentbasert visningsramme.
- Klassene skrives som POJOs og byte-kode transformert ved kjøretid
- Konfigurert med merknader og navnekonvensjoner i stedet for XML
- Sammenlignet med JSPer, håndhever en tydelig separasjon av HTML-merking og Java-kode.
- HTML-maler kan forhåndsvises direkte av nettdesignere
- Endrede komponentklasser blir lagt om på nytt til å kjøre applikasjoner for raskere utvikling.
- Bruker Innlegg / Omdirigere / Få navigasjonsmønster for skjemainnlevering.
- Konkurrent : Wicket, JSF, HybridJava
Apache Wicket
- En komponentbasert visningsramme.
- Sider samhandler direkte med stateful Java-komponenter på serveren.
- Komponenter og deres tilstand administreres av Wicket-rammeverket, og frigjør applikasjonsutvikleren fra å måtte bruke HttpSession direkte for å administrere tilstanden.
- Krever ikke XML for konfigurasjon.
- Sammenlignet med JSPer, håndhever en tydelig separasjon av HTML-merking og Java-kode.
- Nettsidekomponenter blir "dyttet" inn i HTML-merkingen fra koden.
- Konkurrent : Tapestry, JSF, HybridJava
JavaServer Faces (JSF) og Facelets
- En spesifikasjon for komponentbaserte visningsrammer.
- Mojarra og Apache MyFaces implementeringer er tilgjengelige
- Bruker vanligvis Facelets for XML / XHTML-basert maling.
- Klasser skrives som POJO-er, med merknader eller XML-konfigurasjonsfiler som brukes til å knytte dem til side- og komponentmaler.
- Den Unified Expression Language -muliggjør binding komponentfelt og arrangementer for å POJO bønne egenskaper og metoder.
- Konverterings- og valideringsbegrensninger kan spesifiseres i Facelets og blir automatisk brukt, noe som normalt resulterer i omlegging av samme side med feilinformasjon i tilfelle feil.
- Navigering kan foregå via konfigurasjonsfileregler eller direkte spesifisert på siden.
- Kan transparent støtte Ajax .
- Konkurrent : Wicket, tapestry
SiteMesh
- SiteMesh er et HTML-templeringsramme basert på "Dekorasjon" -modellen.
- Det gjør det mulig å opprette en 'dekorasjon' mal som deretter brukes til hvilken som helst annen HTML for å generere en ny HTML.
- Den nylig genererte HTML inneholder elementer fra den originale HTML blandet inn i malen.
- Dette gjør at den opprinnelige HTML-filen er veldig enkel og blottet for formatering eller layout-spesifikasjoner. Malen er på sin side blottet for faktisk informasjon.
- Å blande de to gir en jevn utseende og følelse for alle websider .
- Konkurrent : Fliser
Gnist
- Gnist av et mikrobindramme som er bygget rundt et enkelt rutesystem
- Den kjøres på en innebygd Jetty -webserver som standard, men kan konfigureres til å kjøres på andre webservere.
- Den støtter tre forskjellige malmotorer : Velocity , FreeMarker og Mustasche
- Den har som mål å legge til rette for rask utvikling, og benytter seg ikke av merknader eller proprietære løsninger.