webalkalmazás-fejlesztés JSP-vel és XML-sel I. rész: Fast Track JSP

ha lehetősége volt webes alkalmazásokat készíteni olyan technológiák felhasználásával, mint a Common Gateway Interface (CGI) és a servlets, akkor megszokta azt az elképzelést, hogy egy programot írjon az egész oldal (a statikus és a dinamikus rész) generálására ugyanazon program segítségével. Ha olyan megoldást keres, amelyben elválaszthatja a két részt, ne keressen tovább. JavaServer oldalak (JSP)itt.

a JSP-oldalak lehetővé teszik, hogy elkülönítse a front-end prezentációt az üzleti logikától (középső és back-end szintek). Ez egy nagyszerű gyors alkalmazásfejlesztés (Rad) megközelítés a webes alkalmazásokhoz. Ez a cikksorozat gyakorlati bemutatót nyújt, amely elmagyarázza, hogyan lehet modern webes alkalmazásokat fejleszteni a mai és a holnapi piac számára. Ez a sorozat ezzel a cikkel kezdődik, amely elmagyarázza a JSP technológia koncepcióit és előnyeit, majd bemutatja, hogyan használhatja ezt az izgalmas technológiát, és hogyan hozhat létre újrafelhasználható összetevőket az űrlapok kezeléséhez.

a dinamikus Web

a Web egy hálózati alapú hipermédia elosztott információs rendszerből fejlődött ki, amely statikus információkat kínál áruk és szolgáltatások eladására és vásárlására. Az egyre kifinomultabb alkalmazások, amelyek lehetővé teszik ezt a piacot, dinamikus információk bemutatására szolgáló technológiát igényelnek.

az első generációs megoldások tartalmazzák a CGI-t, amely a külső programok webkiszolgálón keresztüli futtatásának mechanizmusa. A CGI szkriptek problémája a skálázhatóság; minden kéréshez új folyamat jön létre.

a második generációs megoldások közé tartoztak a webszerver-gyártók, amelyek plug-ineket és API-kat biztosítottak szervereikhez. A probléma az, hogy megoldásaik kifejezetten a szerver termékeikre vonatkoztak. A Microsoft például aktív Kiszolgálóoldalakat (ASP) biztosított, amelyek megkönnyítették a dinamikus tartalom létrehozását. Megoldásuk azonban csak a Microsoft IIS vagy a Personal Web Server segítségével működött. Ezért, ha használni akarta az ASP-t, el kellett köteleznie magát a Microsoft termékek mellett, és nem élvezné a kedvenc webszerver és operációs rendszer kiválasztásának szabadságát!

egy másik második generációs technológia, amely meglehetősen népszerű a vállalati számítástechnikában, a servlets. A servletek megkönnyítik a szerveroldali alkalmazások írását Java technológiával. A CGI vagy a Servlet esetében azonban az a probléma, hogy követnie kell az írási, fordítási és üzembe helyezési életciklust.

a JSP pages egy harmadik generációs megoldás, amely könnyen kombinálható néhány második generációs megoldással, dinamikus tartalmat hozva létre, és megkönnyítve és gyorsabbá téve a webalapú alkalmazások létrehozását, amelyek számos más technológiával működnek: webszerverek, webböngészők, alkalmazáskiszolgálók és egyéb fejlesztőeszközök.

JavaServer Pages (JSP)

a JSP technológia egy nyílt, szabadon elérhető specifikáció, amelyet a Sun Microsystems fejlesztett ki a Microsoft Active Server Pages (ASP) technológiájának alternatívájaként, és a Java 2 Enterprise Edition (J2EE) specifikáció kulcsfontosságú eleme. Számos kereskedelmi forgalomban kapható alkalmazáskiszolgáló (például BEA WebLogic, IBM WebSphere, Live JRun, Orion stb.) már támogatja a JSP technológiát.

JSP versus ASP

a JSP és az ASP hasonló funkciókat biztosít. Mindkettő címkéket használ, hogy lehetővé tegye a beágyazott kódot egy HTML-oldalon, a munkamenet-követést és az adatbázis-kapcsolatot. Néhány triviális különbség a következő:

  • az ASP oldalak VBScript nyelven, a JSP oldalak pedig Java programozási nyelven vannak írva. Ezért a JSP oldalak platformfüggetlenek, az ASP oldalak pedig nem.
  • a JSP-oldalak a JavaBeans technológiát használják komponens architektúraként, az ASP-oldalak pedig ActiveX-összetevőket használnak.

ezen triviális különbségeken túl számos fontos különbség van, amelyek segíthetnek a szervezet technológiájának kiválasztásában:

  • sebesség és skálázhatóság : bár az ASP-oldalak gyorsítótárban vannak, mindig értelmezik őket. Ezzel szemben a JSP oldalakat Java Servlet-ekbe fordítják, és az első híváskor betöltik a memóriába, majd végrehajtják az összes későbbi híváshoz. Ez ad JSP oldalak aspeed és skálázhatóság előnye ASP oldalak.
  • bővíthető címkék : a JSP-oldalak fejlett funkcióval rendelkeznek, amelyet bővíthető címkéknek neveznek. Ez a mechanizmus lehetővé teszi a fejlesztők számára, hogy egyedi címkéket hozzanak létre. Más szavakkal, a bővíthető címkék lehetővé teszik a JSP pages címke szintaxisának kiterjesztését. Ezt nem teheti meg ASP oldalakkal.
  • választás szabadsága : hacsak nem telepíti a Chili-t!Soft ASP, ASP oldalak csak a Microsoft IIS és a Personal Web Server. Az ASP-oldalak használata megköveteli a Microsoft-termékek iránti elkötelezettséget, míg a JSP-oldalak nem kötik Önt semmilyen konkrét webszerverhez vagy operációs rendszerhez. A JSP oldalak széles körben támogatott szabványokká válnak.

a JSP-oldalak és az ASP-oldalak részletesebb összehasonlítását lásd: JSP-és ASP-oldalak összehasonlítása.

szoftverkörnyezet

a JSP-oldalak futtatásához olyan webkiszolgálóra van szükség, amely megfelel a JSP és a servlet specifikációinak. A webtároló a webkiszolgálón fut, és kezeli az adott webkiszolgálón futó összes JSP-oldal és szervlet végrehajtását. A Tomcat 3.2.1 egy teljes referencia implementáció a Java Servlet 2.2 és JSP 1.1 specifikációkhoz. Töltse le és telepítse a Tomcat bináris verzióit.

a Tomcat konfigurálása:

  • állítsa be a JAVA_HOME környezeti változót úgy, hogy a Java 2 Standard Edition (J2SE) telepítésének gyökérkönyvtárára mutasson.
  • állítsa be a TOMCAT_HOME környezeti változót úgy, hogy a Tomcat telepítésének gyökérkönyvtárára mutasson.
  • a Tomcat indításához használja a TOMCAT_HOME/bin/startup.bat parancsot windows vagy a startup.sh parancsot UNIX esetén.
    alapértelmezés szerint a 8080-as porton kezd el hallgatni.
  • mentse el .jsp fájljait TOMCAT_HOME/webapps/examples/jsp – be, a JavaBeans osztályait pedig TOMCAT_HOME/webapps/examples/web-inf/classes – ba.

Megjegyzés: Ha Windows alatt dolgozik, előfordulhat, hogy a Tomcat indításakor hiba lép fel. Ennek két módja van: vagy módosítsa a DOS ablak kezdeti memóriabeállítását 3200-nál nagyobb értékre, vagy szerkessze a konfigurációt.sys fájlt, és adja hozzá a következő sort: SHELL=c:\PATHTO\command.com /E:4096 /P.

hogyan működnek a JSP oldalak

a JSP oldal alapvetően egy weboldal, amely hagyományos HTML-t és Java kódokat tartalmaz. A JSP oldal fájlkiterjesztése “.jsp “helyett”.html “vagy”.htm”, amely azt mondja a szervernek, hogy ez az oldal speciális kezelést igényel, amelyet egy szerver kiterjesztés vagy plug-in hajt végre. Íme egy egyszerű példa:

1. minta: dátum.jsp

 <HTML><HEAD><TITLE>JSP Example</TITLE></HEAD><BODY BGCOLOR="ffffcc"><CENTER><H2>Date and Time</H2><% java.util.Date today = new java.util.Date();out.println("Today's date is: "+today);%></CENTER> </BODY> </HTML> 

ez a példa hagyományos HTML-t és néhány Java kódot tartalmaz. A <% címke a parancsfájl elejét, a %> címke pedig a parancsfájl végét azonosítja. Ha date.jsp – et kér egy webböngészőből, akkor az 1.ábrához hasonlót lát.

1. ábra: Dátum kérése.jsp

a színfalak mögött

amikor ezt az oldalt (date.jsp) meghívják, a JSP motor lefordítja egy java servletbe. Ezen a ponton a servlet kezeli a servlet motor, mint bármely más servlet. A servlet motor ezután betölti a servlet osztályt (egy class loader segítségével), és végrehajtja, hogy dinamikus HTML-t hozzon létre, amelyet el kell küldeni a böngészőnek, a 2.ábrán látható módon. Ebben a példában a servlet létrehoz egy Date objektumot, és azt karakterláncként írja a out objektumhoz, amely a böngésző kimeneti folyama.

2. ábra: Request / Response Flow JSP

meghívásakor a következő alkalommal, amikor az oldalt kérik,a JSP motor végrehajtja a már betöltött szervletet, kivéve, ha a JSP oldal megváltozott, ebben az esetben automatikusan újrafordítja egy servletbe és végrehajtja.

Script elemek

a date.jsp példában a teljes Date osztálynevet használjuk, beleértve a csomag nevét is, ami unalmassá válhat. Ha Date példányt szeretne létrehozni egyszerűen a következővel: Date today = new Date(); anélkül, hogy meg kellene adnia a teljes osztályútvonalat, használja a page irányelvet az alábbiak szerint:

2.Minta :date2.jsp

 <%@page import="java.util.*" %><HTML> <HEAD> <TITLE>JSP Example</TITLE> </HEAD> <BODY BGCOLOR="ffffcc"><CENTER> <H2>Date and Time</H2> <% java.util.Date today = new java.util.Date();out.println("Today's date is: "+today);%></CENTER></BODY> </HTML>

mégis, egy másik módja annak, hogy ugyanazt a dolgot használja a <%= címke használatával:

3.Minta:date3.jsp

 <%@page import="java.util.*" %> <HTML> <HEAD> <TITLE>JSP Example</TITLE> </HEAD> <BODY BGCOLOR="#ffffcc"> <CENTER> <H2>Date and Time</H2> Today's date is: <%= new Date() %> </CENTER> </BODY> </HTML> 

mint látható, ugyanazt a dolgot különböző címkékkel és technikákkal lehet elérni. Számos JSP szkript elem létezik. Íme néhány hagyományos szabály, amely segít a JSP szkriptelemek hatékony használatában:

  • a <% ... %> használatával kezelheti a deklarációkat, kifejezéseket vagy bármilyen más típusú érvényes kódrészletet. A fenti 1. minta egy példa.
  • használja a page irányelvet, mint a <%@page ... %> a szkriptnyelv meghatározásához. A import utasítások megadására is használható. Íme egy példa:
    <%@page language="java" import="java.util.*" %>.
  • használja a <%! .... %> értéket változók vagy metódusok deklarálásához. Például:
    <%! int x = 10; double y = 2.0; %>.
  • használja a <%= ... %> kifejezést, és adja meg az eredményt String – ként. Például:
    <%= a+b %>vagy <%= new java.util.Date() %>.
  • használja a include irányelvet, mint a <%@ include ... %> egy másik fájl tartalmának beszúrásához a fő JSP fájlba. Például:
    <%@include file="copyright.html" %>.

űrlapok kezelése

az e-kereskedelmi alkalmazások egyik leggyakoribb része egy HTML űrlap, amelybe a felhasználó beír néhány információt, például nevet és címet. A JSP használatával az űrlap adatai (a felhasználó által az űrlapon megadott információk) a request objektumba kerülnek, amelyet a böngésző küld a JSP tárolóba. A kérés feldolgozásra kerül, és az eredmény a response objektumon keresztül visszakerül a böngészőbe. Ez a két objektum implicit módon elérhető az Ön számára.

annak bemutatására, hogyan kell kezelni a HTML űrlapokat a JSP segítségével, Itt van egy példa űrlap két mezővel: az egyik a név, a másik az e-mail. Mint látható, a HTML űrlapot egy JSP forrásfájl határozza meg. A request.getParameter metódust az űrlap adatainak JSP címkékkel létrehozott változókká történő lekérésére használják.

a process.jsp oldal nyomtatja ki az űrlapot vagy a felhasználó által megadott információkat az űrlap mezőinek értékeitől függően. Ha az űrlap értéke null, akkor az űrlap jelenik meg, ellenkező esetben a felhasználó által megadott információk jelennek meg. Vegye figyelembe, hogy az űrlapot ugyanabban a JSP fájlban lévő kód hozza létre és kezeli.

4. minta: folyamat.jsp

 <HTML> <HEAD> <TITLE>Form Example</TITLE> </HEAD> <BODY BGCOLOR="#ffffcc"> <% if (request.getParameter("name")==null && request.getParameter("email") == null) { %> <CENTER> <H2>User Info Request Form</H2> <FORM METHOD="GET" ACTION="/developer/technicalArticles/xml/WebAppDev/process.jsp"> <P> Your name: <input type="text" name="name" size=26> <P> Your email: <input type="text" name="email" size=26> <P> <input type="submit" value="Process"> </FORM> </CENTER> <% } else { %> <%! String name, email; %> <% name = request.getParameter("name"); email = request.getParameter("email"); %> <P> <B>You have provided the following info</B>: <P> <B>Name</B>: <%= name %><P> <B>Email</B>: <%= email %> <% } %> </BODY> </HTML> 

ha process.jsp – ot kér egy webszerverről, akkor a 3.ábrához hasonlót lát.

3. ábra: folyamat.jsp loaded

írja be nevét és e-mail címét, majd kattintson a Process (folyamat) gombra, hogy elküldje az űrlapot feldolgozásra, és valami hasonlót lát, mint a 4.ábra.

4. ábra: Az űrlap feldolgozása

újrafelhasználható összetevők

a fenti példa űrlap egyszerű abban az értelemben, hogy nincs sok kód. Ha több kódról van szó, akkor fontos, hogy ne keverje össze az üzleti logikát a kezelőfelület bemutatásával ugyanabban a fájlban. Az üzleti logika elválasztása a bemutatástól lehetővé teszi mindkét oldal módosítását anélkül, hogy befolyásolná a másikat. Azonban a termelés JSP kódot kell korlátozni front end bemutatása. Szóval, hogyan valósítja meg az üzleti logika részét?

itt jönnek a JavaBeans játszani. Ez a technológia egy hordozható, platformfüggetlen komponensmodell, amely lehetővé teszi a fejlesztők számára, hogy összetevőket írjanak és mindenhol újra felhasználják őket. A JSP összefüggésében a JavaBeans üzleti logikát tartalmaz, amely adatokat ad vissza egy JSP oldal szkriptjéhez, amely viszont formázza a JavaBean komponensből visszaküldött adatokat a böngésző általi megjelenítés céljából. A JSP-oldal JavaBean-összetevőt használ az általa biztosított tulajdonságok beállításával és megszerzésével.

mik az előnyei

számos előnye van a JavaBeans használatának a JSP-oldalak bővítéséhez:

  • újrafelhasználható alkatrészek: különböző alkalmazások képesek lesznek újra felhasználni az összetevőket.
  • az üzleti logika és a prezentációs logika elválasztása: az adatok megjelenítésének módját az üzleti logika befolyásolása nélkül módosíthatja.
  • szellemi tulajdonának védelme a forráskód biztonságos megőrzésével.

példa: JavaBeans használata JSP-vel

most nézzük meg, hogyan módosíthatjuk a fenti process.jsp példát a JavaBeans használatához. A fenti formában két mező van: name és email. A JavaBeans – ban ezeket tulajdonságoknak nevezik. Tehát először írj egy JavaBean komponenst setX és getX metódusokkal, ahol X a tulajdonság neve. Például, ha van get és set metódusod: setName és getName, akkor van egy name néven ismert tulajdonságod. Az 5. minta FormBean komponenst mutat.

a jó alkatrészeknek képesnek kell lenniük arra, hogy együttműködjenek a különböző gyártók más alkatrészeivel. Ezért az alkatrészek újrafelhasználásának elérése érdekében két fontos szabályt kell követni (amelyeket a JavaBeans architektúra ír elő) :

  1. a bean osztálynak meg kell adnia egy konstruktort argumentumok nélkül, így a Beans.instantiatehasználatával hozható létre.
  2. a bean osztálynak támogatnia kell a perzisztenciát a Serializablevagy Externalizable interfész megvalósításával.

5.Minta: FormBean.java

 package userinfo; import java.io.*; public class FormBean implements Serializable { private String name; private String email; public FormBean() { name = null; email = null; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setEmail(String email) { this.email = email; } public String getEmail() { return email; } } 

a FormBean összetevő használatához a JSP fájlban meg kell példányosítani a bean összetevőt. Ez a <jsp:useBean> címkével történik. A következő sor <jsp:setProperty> a bab példányosításakor kerül végrehajtásra, és a bab tulajdonságainak inicializálására szolgál. Ebben az esetben mindkét tulajdonság ( name és email) egyetlen utasítással van beállítva. Alternatív megoldásként lehetőség van a tulajdonságok egyesével történő beállítására, de először le kell szereznie az űrlap dátumát. Íme egy példa arra, hogyan állíthatja be a name tulajdonságot:

 <%! String yourname, youremail; %> <% yourname = request.getParameter("name"); %> <jsp:setProperty name="formbean" property="name" value="<%=yourname%>"/> 

miután a tulajdonságokat inicializálták az űrlapból lekért adatokkal, a tulajdonságértékek a <jsp:getProperty> használatával kerülnek lekérésre a else részben, amint azt a 6.minta mutatja.

6.Minta: folyamat2.jsp

 <jsp:useBean class="userinfo.FormBean"/><jsp:setProperty name="formbean" property="*"/> <HTML> <HEAD><TITLE>Form Example</TITLE></HEAD><BODY BGCOLOR="#ffffcc"><% if (request.getParameter("name")==null && request.getParameter("email") == null) { %><CENTER><H2>User Info Request Form </H2><form method="GET" action="/developer/technicalArticles/xml/WebAppDev/process2.jsp"><P>Your name: <input type="text" name="name" size=27><p> Your email: <input type="text" name="email" size=27> <P> <input type="submit" value="Process"></FORM></CENTER><% } else { %><P><B>You have provided the following info</B>: <P> <B>Name</B>: <jsp:getProperty name="formbean"property="name"/> <P> <B>Email</B>: <jsp:getPropertyname="formbean" property="email"/> <% } %> </BODY> </HTML> 

következtetés

a minőségi gyártású webes alkalmazások fejlesztése iránt érdeklődő fejlesztőknek meg kell ismerkedniük olyan technológiákkal, amelyek nemcsak a mai, hanem a holnap piacán is alkalmazhatók, nevezetesen a JSP és az XML. A következő cikk megvitatja a JSP technológia által biztosított képességeket, amelyek ideálisak az XML használatához; és megmutatja, hogyan lehet hatékonyan használni a JSP-t XML-vel. A JSP és az XML kiváló kombinációt jelent az információkat megosztó webes alkalmazások számára,mivel a JSP oldalak XML támogatással rendelkeznek, JSP egyedi címkekönyvtárak formájában. Maradjon velünk további információkért erről a sorozat következő cikkében.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.