Web Application Development with JSP and XML Part I: Fast Track JSP

jos sinulla on ollut mahdollisuus rakentaa web-sovelluksia käyttäen teknologioita kuten Common Gateway Interface (CGI) ja servlets, olet tottunut ajatukseen kirjoittaa ohjelma koko sivun (staattinen ja dynaaminen osa) luomiseksi samaa ohjelmaa käyttäen. Jos etsit ratkaisua, jossa voit erottaa kaksi osaa, katso enää. JavaServer Pages (JSP) ovat täällä.

JSP: n sivuilla voi erottaa etupään esityksen bisneslogiikasta (Keski-ja loppupään tasot). Se on suuri nopea sovelluskehitys (RAD) lähestymistapa Web-sovelluksia. Tämä artikkelisarja tarjoaa käytännön opetusohjelma selittää, miten kehittää nykyaikaisia Web-sovelluksia nykypäivän ja huomisen markkinoilla. Tämä sarja alkaa tästä artikkelista, jossa kerrotaan JSP-teknologian käsitteistä ja hyödyistä, ja sitten näytetään, miten tätä jännittävää teknologiaa käytetään ja miten luodaan uudelleenkäytettäviä komponentteja lomakkeiden käsittelyyn.

dynaaminen Verkko

verkko on kehittynyt verkkoon perustuvasta hypermedian hajautetusta tietojärjestelmästä, joka tarjoaa staattista tietoa markkinapaikaksi tavaroiden ja palvelujen myymiselle ja ostamiselle. Yhä kehittyneemmät sovellukset, jotka mahdollistavat tämän markkinapaikan, edellyttävät dynaamisen tiedon esitystekniikkaa.

ensimmäisen sukupolven ratkaisuihin kuului CGI, joka on mekanismi ulkoisten ohjelmien ajamiseen WWW-palvelimen kautta. CGI-skripteissä ongelmana on skaalautuvuus; jokaiselle pyynnölle luodaan uusi prosessi.

toisen sukupolven ratkaisuihin kuuluivat www-palvelintoimittajat, jotka tarjosivat palvelimilleen laajennuksia ja sovellusliittymiä. Ongelmana on, että heidän ratkaisunsa olivat erityisiä heidän palvelintuotteitaan. Esimerkiksi Microsoft tarjosi Active Server Pages (ASP) – palvelua, joka helpotti dynaamisen sisällön luomista. Niiden ratkaisu toimi kuitenkin vain Microsoftin IIS: n tai Personal Web Serverin kanssa. Jos siis halusit käyttää ASP: tä, sinun oli sitouduttava Microsoftin tuotteisiin, etkä nauttisi siitä vapaudesta, että saisit valita suosikkisivustosi ja käyttöjärjestelmäsi!

toinen toisen sukupolven teknologia, joka on varsin suosittu yrityslaskennassa, on servlets. Servletit helpottavat palvelinpuolen sovellusten kirjoittamista Java-tekniikalla. Ongelma joko CGI tai servlets, kuitenkin, on, että sinun täytyy seurata kirjoittaa, kääntää, ja ottaa käyttöön elinkaaren.

JSP-sivut ovat kolmannen sukupolven ratkaisu, joka voidaan yhdistää helposti joihinkin toisen sukupolven ratkaisuihin, mikä luo dynaamista sisältöä ja helpottaa ja nopeuttaa useiden muiden teknologioiden kanssa toimivien web-pohjaisten sovellusten rakentamista: www-palvelimet, verkkoselaimet, sovelluspalvelimet ja muut kehitystyökalut.

JavaServer Pages (JSP)

JSP-tekniikka on Sun Microsystemsin kehittämä avoin, vapaasti käytettävissä oleva spesifikaatio vaihtoehtona Microsoftin Active Server Pages (ASP) – teknologialle ja Java 2 Enterprise Edition (j2ee) – spesifikaation keskeinen osa. Monet kaupallisesti saatavilla olevat sovelluspalvelimet (kuten BEA WebLogic, IBM WebSphere, Live JRun, Orion ja niin edelleen) tukevat jo JSP-teknologiaa.

JSP vs. ASP

JSP ja ASP tarjoavat samanlaisia toimintoja. Molemmat käyttävät tageja mahdollistaakseen HTML-sivun upotetun koodin, istunnon seurannan ja tietokantayhteyden. Joitakin triviaaleja eroja ovat:

  • ASP-sivut on kirjoitettu Vbscriptillä ja JSP-sivut Java-ohjelmointikielellä. Siksi JSP-sivut ovat alustariippumattomia ja ASP-sivut eivät.
  • JSP-sivut käyttävät JavaBeans-tekniikkaa komponenttiarkkitehtuurina ja ASP-sivut käyttävät ActiveX-komponentteja.

näiden triviaalien erojen lisäksi on olemassa useita tärkeitä eroja, jotka voivat auttaa sinua valitsemaan jonkin teknologian organisaatioosi:

  • nopeus ja skaalautuvuus: vaikka ASP-sivut ovat välimuistissa, ne tulkitaan aina. Sen sijaan JSP-sivut kootaan Java servleteiksi ja ladataan muistiin, kun niitä kutsutaan ensimmäisen kerran, ja suoritetaan kaikki myöhemmät puhelut. Tämä antaa JSP-sivuille aspeed-ja skaalautuvuusedun verrattuna ASP-sivuihin.
  • Extensible Tags: JSP-sivuilla on kehittynyt ominaisuus, joka tunnetaan nimellä extensible tags. Tämän mekanismin avulla kehittäjät voivat luoda mukautettuja tunnisteita. Toisin sanoen, extensible Tunnisteet voit laajentaa JSP sivut tag syntaksi. Tätä ei voi tehdä ASP-sivuilla.
  • valinnanvapaus: ellet asenna chiliä!Pehmeät ASP -, ASP-sivut toimivat vain Microsoftin IIS-ja Personal Web Server-palvelimilla. ASP-sivujen käyttö edellyttää sitoutumista Microsoftin tuotteisiin, kun taas JSP-sivut eivät sido sinua mihinkään tiettyyn web-palvelimeen tai käyttöjärjestelmään. JSP-sivuista on tulossa laajasti tuettu standardi.

JSP: n sivujen ja ASP: n sivujen tarkempi vertailu on KS.JSP: n ja ASP: n vertailu.

ohjelmistoympäristö

JSP-sivujen suorittamiseen tarvitaan WWW-palvelin, jossa on JSP-ja servlet-spesifikaatioiden mukainen verkkosäiliö. Web container suorittaa web server ja hallinnoi kaikkien JSP sivut ja servlets käynnissä web server. Tomcat 3.2.1 on täydellinen referenssitoteutus Java Servlet 2.2-ja JSP 1.1-spesifikaatioille. Lataa ja asenna binääriversiot Tomcat.

Tomcatin asetukset:

  • Aseta ympäristömuuttuja JAVA_HOME osoittamaan Java 2 Standard Edition (J2SE) – asennuksen juurihakemisto.
  • Aseta TOMCAT_HOME – ympäristömuuttuja Tomcat-asennuksesi juurihakemistoon.
  • aloittaaksesi Tomcatin, käytä TOMCAT_HOME/bin/startup.bat Windowsille tai startup.sh Unixille.
    oletuksena se alkaa kuunnella portilla 8080.
  • Tallenna .jsp tiedostot TOMCAT_HOME/webapps/examples/jspja JavaBeans-tunnit TOMCAT_HOME/webapps/examples/web-inf/classes.

Huomautus: Jos työskentelet Windowsin alla, voit saada Out of space-ympäristövirheen, kun yrität käynnistää Tomcatin. Tämän voi korjata kahdella tavalla: joko muuttaa dos-ikkunan alkumuistiasetusta arvoon, joka on suurempi kuin 3200, tai muokata asetuksia.sys tiedosto ja lisää seuraava rivi: SHELL=c:\PATHTO\command.com /E:4096 /P.

miten JSP-sivut toimivat

JSP-sivu on periaatteessa verkkosivu, jossa on perinteistä HTML-koodia ja bittiä Java-koodia. JSP-sivun tiedostopääte on”.jsp ”pikemmin kuin”.html ”tai”.htm”, ja se kertoo palvelimelle, että tämä sivu vaatii erityistä käsittelyä, joka tapahtuu palvelimen laajennus tai plug-in. Tässä on yksinkertainen esimerkki:

näyte 1: päivämäärä.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> 

tämä esimerkki sisältää perinteistä HTML-koodia ja jonkin verran Java-koodia. Tunniste <% ilmaisee skriptin alun, ja tunniste %> tunnistaa skriptin lopun. Kun date.jsp pyydetään verkkoselaimelta, nähdään jotain Kuvan 1 kaltaista.

Kuva 1: pyynnön päivämäärä.jsp

kulissien takana

kun tätä sivua (date.jsp) kutsutaan, se kootaan (JSP-moottorilla) java-servletiksi. Tässä vaiheessa servlet käsitellään servlet Moottori aivan kuten mikä tahansa muu servlet. Tämän jälkeen servlet-Moottori lataa servlet-luokan (käyttäen luokkakuormaajaa) ja suorittaa sen luodakseen dynaamisen HTML: n, joka lähetetään selaimeen, kuten kuvassa 2 on esitetty. Tässä esimerkissä servlet luo Date – objektin ja kirjoittaa sen merkkijonona out – objektille, joka on Lähtövirta selaimeen.

kuva 2: pyyntö / Vastausvirta Kutsuessasi JSP

seuraavan kerran kun sivua pyydetään, JSP-moottori suorittaa jo ladatun servletin, ellei JSP-sivu ole muuttunut, jolloin se käännetään automaattisesti uudelleen servletiksi ja suoritetaan.

Scripting Elements

date.jsp esimerkissä käytetään koko Date luokan nimeä mukaan lukien Paketin nimi, joka voi muuttua tylsäksi. Jos haluat luoda esiintymän Date yksinkertaisesti käyttämällä: Date today = new Date(); tarvitsematta määritellä koko luokkapolkua, käytä page direktiiviä seuraavasti:

näyte 2 :päiväys2.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>

toinen tapa tehdä sama käyttämällä <%= tagia on kuitenkin kirjoittamalla:

Sample 3: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> 

kuten näette, sama asia voidaan toteuttaa käyttämällä erilaisia tageja ja tekniikoita. On olemassa useita JSP skriptaus elementtejä. Tässä on joitakin tavanomaisia sääntöjä, jotka auttavat sinua käyttämään JSP scripting elementtejä tehokkaasti:

  • käytä <% ... %> ilmoitusten, ilmaisujen tai minkä tahansa muun pätkän käsittelyyn. Yllä oleva näyte 1 on esimerkki.
  • käytä page direktiiviä kuten <%@page ... %> määrittelemään skriptauskieli. Sen avulla voidaan myös määritellä import lauseet. Tässä esimerkki:
    <%@page language="java" import="java.util.*" %>.
  • käytä <%! .... %> muuttujien tai menetelmien ilmoittamiseen. Esimerkiksi:
    <%! int x = 10; double y = 2.0; %>.
  • käytä <%= ... %> lausekkeen määrittelyyn ja anna tulokseksi String. Esimerkiksi:
    <%= a+b %> tai <%= new java.util.Date() %>.
  • käytä include direktiiviä kuten <%@ include ... %> lisätäksesi toisen tiedoston sisällön JSP: n päätiedostoon. Esimerkiksi:
    <%@include file="copyright.html" %>.

Käsittelylomakkeiden

yksi yleisimmistä verkkokauppasovellusten osista on HTML-lomake, johon käyttäjä syöttää joitakin tietoja, kuten nimen ja osoitteen. JSP: n avulla lomakkeen tiedot (tiedot, jotka käyttäjä syöttää lomakkeeseen) tallennetaan request – objektiin, joka lähetetään selaimesta JSP-säiliöön. Pyyntö käsitellään ja tulos lähetetään response objektin kautta takaisin selaimeen. Nämä kaksi esinettä ovat epäsuorasti käytettävissäsi.

HTML-lomakkeiden käsittelyn osoittamiseksi JSP: llä tässä on esimerkkilomake, jossa on kaksi kenttää: toinen nimelle ja toinen sähköpostille. Kuten näette, HTML-muoto on määritelty JSP-lähdekooditiedostossa. request.getParameter – menetelmää käytetään tiedon hakemiseen lomakkeesta muuttujiksi, jotka on luotu JSP-tagien avulla.

process.jsp sivu tulostaa joko lomakkeen tai käyttäjän antamat tiedot riippuen lomakkeen kenttien arvoista. Jos lomakkeen arvot ovat null lomake näytetään, muussa tapauksessa näytetään käyttäjän antamat tiedot. Huomaa, että lomake on luotu ja sitä käsitellään koodilla samassa JSP-tiedostossa.

näyte 4: prosessi.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> 

jos process.jsp pyydetään www-palvelimelta, näet jotain kuvan 3 kaltaista.

kuva 3: prosessi.JSP ladattu

Kirjoita nimesi ja sähköpostisi ja napsauta prosessi lähettääksesi lomakkeen käsiteltäväksi, ja näet jotain kuvan 4 kaltaista.

Kuva 4: Lomake käsitellään

uudelleenkäytettävät komponentit

yllä oleva esimerkkilomake on siinä mielessä yksinkertainen, ettei siihen liity paljon koodia. Kun koodeja on enemmän mukana, on tärkeää, ettei bisneslogiikkaa sekoiteta samassa tiedostossa olevaan front end-esitykseen. Liiketoimintalogiikan erottaminen esitystavasta mahdollistaa muutokset jommallekummalle puolelle vaikuttamatta toiseen. Tuotannon JSP-koodi olisi kuitenkin rajoitettava etupään esitystapaan. Miten liiketoimintalogiikka toteutetaan?

siellä Javabelaiset tulevat pelaamaan. Tämä tekniikka on kannettava, alustariippumaton komponenttimalli, jonka avulla kehittäjät voivat kirjoittaa komponentteja ja käyttää niitä uudelleen kaikkialla. JSP: n yhteydessä JavaBeans sisältää liiketoimintalogiikkaa, joka palauttaa tiedot skriptille JSP-sivulla, joka puolestaan muotoilee JavaBean-komponentista palautetut tiedot selaimen näytettäväksi. JSP-sivu käyttää JavaBean-komponenttia asettamalla ja saamalla sen tarjoamat ominaisuudet.

mitä hyötyä on

Javabeansin käytöstä JSP-sivujen laajentamiseen on useita etuja:

  • uudelleenkäytettävät komponentit: eri sovellukset voivat käyttää komponentteja uudelleen.
  • bisneslogiikan ja esityslogiikan erottaminen toisistaan: datan esitystapaa voi muuttaa vaikuttamatta bisneslogiikkaan.
  • immateriaalioikeuksien suojaaminen pitämällä lähdekoodi turvassa.

esimerkki: käyttämällä JavaBeans kanssa JSP

nyt, katsotaan miten muokata process.jsp esimerkki yllä käyttää JavaBeans. Yllä olevassa muodossa nämä ovat kaksi kenttää: name ja email. Javabelaisissa näitä kutsutaan ominaisuuksiksi. Ensin kirjoitetaan siis JavaBean komponentti setX ja getX metodeilla, joissa X on ominaisuuden nimi. Esimerkiksi Jos käytössä on get – ja set-menetelmät: setName ja getName, on ominaisuus nimeltään name. Näytteessä 5 on FormBean komponentti.

hyvien komponenttien on kyettävä toimimaan eri toimittajien muiden komponenttien kanssa. Siksi komponenttien uudelleenkäytön saavuttamiseksi on kaksi tärkeää sääntöä (jotka ovat JavaBean-arkkitehtuurin määräämiä), joita on noudatettava:

  1. papuluokassa on oltava konstruktori ilman argumentteja, jotta se voidaan luoda käyttämällä Beans.instantiate.
  2. papuluokan on tuettava pysyvyyttä toteuttamalla rajapinta Serializable tai Externalizable.

Näyte 5: FormBean.Jaava

 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; } } 

jotta voit käyttää FormBean – komponenttia JSP-tiedostossa, sinun on asennettava bean-komponentti. Tämä tehdään käyttämällä <jsp:useBean> – tunnistetta. Seuraava rivi <jsp:setProperty> suoritetaan, kun papu instantioidaan, ja sitä käytetään pavun ominaisuuksien alustamiseen. Tällöin molemmat ominaisuudet (name ja email) asetetaan käyttäen yhtä lauseketta. Vaihtoehtoisesti ominaisuudet Voi asettaa yksi kerrallaan,mutta ensin pitää hakea lomakkeen päiväys. Tässä on esimerkki siitä, miten asetat name ominaisuuden:

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

kun ominaisuudet on alustettu lomakkeesta haetuilla tiedoilla, ominaisuuksien arvot haetaan esitettäväksi käyttäen <jsp:getProperty> else – osassa, kuten otoksessa 6 esitetään.

näyte 6: prosessi2.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> 

johtopäätös

kehittäjien, jotka ovat kiinnostuneita laatutuotannon verkkosovellusten kehittämisestä, tulisi tutustua teknologioihin, jotka soveltuvat paitsi tämän päivän markkinoille myös huomisen markkinoille, eli JSP: hen ja XML: ään. Seuraavassa artikkelissa käsitellään ominaisuuksia, että JSP tekniikka tarjoaa, jotka soveltuvat erinomaisesti työskentely XML; ja näyttää, miten tehokkaasti käyttää JSP XML. JSP ja XML ovat erinomainen yhdistelmä tietoa jakaville verkkosovelluksille, koska JSP-sivuilla on XML-tuki, joka on rakennettu suoraan niihin JSP custom tag-kirjastojen muodossa. Pysy kuulolla saadaksesi lisätietoa tästä tämän kirjoitussarjan seuraavassa kirjoituksessa.

Vastaa

Sähköpostiosoitettasi ei julkaista.