Webapplikasjonsutvikling MED JSP Og XML Del I: Fast Track JSP

hvis du har hatt muligheten til å bygge webapplikasjoner ved hjelp av teknologier som Common Gateway Interface (Cgi) og servlets, er du vant til ideen om å skrive et program for å generere hele siden (den statiske og den dynamiske delen) ved hjelp av det samme programmet. Hvis du er ute etter en løsning der du kan skille de to delene, ser ikke lenger. JavaServer Pages (JSP) er her.

jsp-sider lar deg skille front-end-presentasjon fra forretningslogikk(midtre og bakend-nivåer). Det er en stor Rask Applikasjonsutvikling (RAD) tilnærming Til Webapplikasjoner. Denne serien av artikler gir en praktisk opplæring som forklarer hvordan man utvikler moderne Webapplikasjoner for dagens og morgendagens marked. Denne serien begynner med denne artikkelen, som forklarer konseptene OG fordelene MED JSP-teknologi, og viser deg hvordan du bruker denne spennende teknologien, og hvordan du lager gjenbrukbare komponenter for håndtering av skjemaer.

Den Dynamiske Web

Nettet har utviklet seg fra et nettverksbasert hypermedia distribuert informasjonssystem som tilbyr statisk informasjon til en markedsplass for salg og kjøp av varer og tjenester. De stadig mer sofistikerte applikasjoner for å muliggjøre denne markedsplassen krever en teknologi for å presentere dynamisk informasjon.

Første generasjons løsninger inkluderte CGI, som er en mekanisme for å kjøre eksterne programmer via en webserver. Problemet MED CGI-skript er skalerbarhet; en ny prosess er opprettet for hver forespørsel.

Andre generasjons løsninger inkluderte webserverleverandører som leverer plugin – moduler og Apier for sine servere. Problemet er at deres løsninger var spesifikke for deres serverprodukter. Microsoft ga For Eksempel Active Server Pages (Asp) som gjorde det enklere å lage dynamisk innhold. Men deres løsning fungerte bare Med Microsoft Iis eller Personlig Webserver. Derfor, hvis du ønsket Å bruke ASP måtte du forplikte Deg Til Microsoft-produkter, og du ville ikke nyte friheten til å velge din favoritt webserver og operativsystem!

en annen andre generasjons teknologi som er ganske populær i enterprise computing er servlets. Servlets gjør det enklere å skrive server-side applikasjoner ved Hjelp Av Java-teknologi. Problemet med ENTEN CGI eller servlets er imidlertid at du må følge skrive, kompilere og distribuere livssyklusen.

JSP pages er en tredje generasjons løsning som enkelt kan kombineres med noen andre generasjons løsninger, skaper dynamisk innhold og gjør det enklere og raskere å bygge nettbaserte applikasjoner som fungerer med en rekke andre teknologier: webservere, nettlesere, applikasjonsservere og andre utviklingsverktøy.

JavaServer Pages (JSP)

JSP-teknologien er en åpen, fritt tilgjengelig spesifikasjon utviklet Av Sun Microsystems som et alternativ Til Microsofts Active Server Pages (ASP) – teknologi, og en nøkkelkomponent I Java 2 Enterprise Edition (J2EE) – spesifikasjonen. Mange av de kommersielt tilgjengelige applikasjonsserverne (SOM BEA WebLogic, IBM WebSphere, Live JRun, Orion og Så videre) støtter ALLEREDE JSP-teknologi.

JSP versus ASP

JSP og ASP leverer lignende funksjonalitet. Begge bruker koder for å tillate innebygd kode i EN HTML-side, øktsporing og databasetilkobling. Noen av de trivielle forskjellene er:

  • ASP sider er skrevet I VBScript OG JSP sider er skrevet I Java programmeringsspråk. DERFOR ER jsp-sider plattformuavhengige og ASP-sider er ikke.
  • jsp-sider bruker JavaBeans-teknologi som komponentarkitektur, OG ASP-sider bruker ActiveX-komponenter.

Utover disse trivielle forskjellene er det en rekke viktige forskjeller som kan hjelpe deg med å velge en teknologi for organisasjonen din:

  • Hastighet Og Skalerbarhet: SELV OM ASP-sider er bufret, tolkes de alltid. I motsetning til DETTE blir jsp-sider samlet inn I Java-servlets og lastet inn i minnet første gang de kalles, og utført for alle påfølgende samtaler. Dette gir JSP sider aspeed og skalerbarhet fordel over ASP sider.
  • Utvidbare Koder : jsp-sider har en avansert funksjon kjent som utvidbare koder. Denne mekanismen gjør det mulig for utviklere å lage egendefinerte koder. Med andre ord, utvidbare koder lar deg utvide jsp sider tag syntaks. DU kan ikke gjøre DETTE MED ASP-sider.
  • Valgfrihet : Med mindre Du installerer Chili!Soft ASP, ASP sider fungerer bare Med Microsoft Iis og Personlig Web Server. Bruk AV ASP pages krever en forpliktelse Til Microsoft-produkter, MENS JSP pages ikke knytter deg til en bestemt webserver eller operativsystem. JSP sider blir en allment støttet standard.

For en mer detaljert sammenligning MELLOM jsp-sider og ASP-sider, Se Sammenligning AV JSP og ASP.

Programvaremiljø

for å kjøre jsp-sider trenger DU en webserver med en webbeholder som overholder jsp-og servlet-spesifikasjonene. Webbeholderen utfører på webserveren og styrer utførelsen av ALLE jsp-sider og servlets som kjører på den webserveren. Tomcat 3.2.1 er en komplett referanse implementering For Java Servlet 2.2 OG JSP 1.1 spesifikasjoner. Last ned og installer binære versjoner Av Tomcat.

for å konfigurere Tomcat:

  • Angi miljøvariabelen JAVA_HOME for å peke på rotkatalogen For Java 2 Standard Edition (J2SE) – installasjonen.
  • Sett miljøvariabelen TOMCAT_HOME til å peke på rotkatalogen For Tomcat-installasjonen.
  • hvis Du vil starte Tomcat, bruker Du TOMCAT_HOME/bin/startup.bat for windows eller startup.sh FOR UNIX.
    som standard vil den begynne å lytte på port 8080.
  • Lagre dine .jsp filer i TOMCAT_HOME/webapps/examples/jsp Og Dine JavaBeans klasser i TOMCAT_HOME/webapps/examples/web-inf/classes.

Merk: hvis du arbeider Under Windows, kan Det hende Du får En Feil I tomcat-miljøet når Du prøver å starte Tomcat. Det er to måter å fikse dette på: enten endre den første minneinnstillingen I DOS-vinduet til en verdi større enn 3200 eller rediger config.sys fil og legge til følgende linje: SHELL=c:\PATHTO\command.com /E:4096 /P.

Hvordan Jsp-Sider Fungerer

EN JSP-side er i utgangspunktet en nettside med tradisjonell HTML og biter Av Java-kode. Filtypen FOR EN jsp-side er».jsp » heller enn «.html» eller «.htm», og det forteller serveren at denne siden krever spesiell håndtering som vil bli oppnådd av en serverutvidelse eller en plugin. Her er et enkelt eksempel:

Prøve 1: dato.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> 

dette eksemplet inneholder tradisjonell HTML og Noen Java-kode. Koden <% identifiserer begynnelsen av en skriptlet, og %> – koden identifiserer slutten av en skriptlet. Når date.jsp blir forespurt fra en nettleser, ser Du noe som Ligner På Figur 1.

Figur 1: Ber om dato.jsp

Bak Kulissene

når denne siden (date.jsp) kalles, vil den bli kompilert (AV jsp-motoren) til en java-servlet. På dette punktet servlet håndteres av servlet motoren akkurat som alle andre servlet. Servlet-motoren laster deretter servlet-klassen (ved hjelp av en klasselaster) og utfører den for å lage dynamisk HTML som skal sendes til nettleseren, som vist i Figur 2. For dette eksemplet oppretter servlet et Date – objekt og skriver det som en streng til out – objektet, som er en utgangsstrøm til nettleseren.

Figur 2: Forespørsel / Svarflyt Når Du Ringer EN JSP

neste gang siden blir forespurt, utfører JSP-motoren den allerede lastede servlet med mindre JSP-siden er endret, og i så fall blir den automatisk rekompilert til en servlet og utført.

Skriptelementer

i eksemplet date.jsp brukes hele Date klassenavnet, inkludert pakkenavnet, som kan bli kjedelig. Hvis du vil opprette en forekomst av Date ved å bruke: Date today = new Date(); uten å måtte angi hele klassebanen, bruk page – direktivet som følger:

Eksempel 2 :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>

Likevel er en annen måte å gjøre det samme med <%= – taggen ved å skrive:

Eksempel 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> 

Som du kan se, kan det samme oppnås ved hjelp av forskjellige koder og teknikker. DET finnes flere JSP-skriptelementer. Her er noen konvensjonelle regler som vil hjelpe deg med å bruke JSP-skriptelementer effektivt:

  • Bruk <% ... %> til å håndtere deklarasjoner, uttrykk eller andre typer gyldig kodebit. Eksempel 1 ovenfor er et eksempel.
  • Bruk direktivet page som i <%@page ... %> for å definere skriptspråket. Det kan også brukes til å spesifisere import setninger. Her er et eksempel:
    <%@page language="java" import="java.util.*" %>.
  • Bruk <%! .... %> for å deklarere variabler eller metoder. For eksempel:
    <%! int x = 10; double y = 2.0; %>.
  • Bruk <%= ... %> til å definere et uttrykk og avgi resultatet som String. For eksempel:
    <%= a+b %> eller <%= new java.util.Date() %>.
  • Bruk direktivet include som i <%@ include ... %> for å sette inn innholdet i en annen fil i HOVEDFILEN jsp. For eksempel:
    <%@include file="copyright.html" %>.

Håndteringsskjemaer

EN av de vanligste delene av e-handelsprogrammer er ET HTML-skjema der brukeren skriver inn informasjon som navn og adresse. Ved HJELP AV JSP lagres skjemaets data (informasjonen brukeren legger inn i skjemaet) i request – objektet som sendes fra nettleseren til jsp-beholderen. Forespørselen behandles og resultatet sendes gjennom response – objektet tilbake til nettleseren. Disse to objektene er implisitt tilgjengelige for deg.

for å demonstrere hvordan MAN håndterer HTML-skjemaer ved HJELP AV JSP, her er et eksempelskjema med to felt: ett for navn og det andre for e-post. SOM du kan se, ER HTML-skjemaet definert i EN jsp-kildefil. request.getParameter – metoden brukes til å hente data fra skjemaet til variabler som er opprettet VED HJELP AV JSP-koder.

siden process.jsp skriver ut enten et skjema eller informasjonen som gis av brukeren, avhengig av verdiene i skjemafeltene. Hvis skjemaets verdier er null skjemaet vises, ellers informasjonen fra brukeren vises. Merk at skjemaet opprettes og håndteres av kode i samme jsp-fil.

Eksempel 4: prosess.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> 

hvis process.jsp blir forespurt fra en webserver, ser Du Noe som Ligner På Figur 3.

figur 3: prosess.jsp loaded

Skriv inn navn og e-post og klikk På Prosess for å sende inn skjemaet for behandling, og du ser noe som Ligner På Figur 4.

Figur 4: Skjemaet behandles

Gjenbrukbare Komponenter

eksemplet ovenfor er enkelt i den forstand at det ikke er mye kode involvert. Når mer kode er involvert, er det viktig å ikke blande forretningslogikk med frontendpresentasjon i samme fil. Å skille forretningslogikk fra presentasjon tillater endringer til hver side uten å påvirke den andre. Imidlertid bør PRODUKSJON JSP kode være begrenset til front end presentasjon. Så, hvordan implementerer du forretningslogikkdelen?

Det Er Her JavaBeans kommer inn for å spille. Denne teknologien er en bærbar, plattformuavhengig komponentmodell som lar utviklere skrive komponenter og gjenbruke dem overalt. I sammenheng med JSP inneholder JavaBeans forretningslogikk som returnerer data til et skript på EN jsp-side, som igjen formaterer dataene som returneres fra JavaBean-komponenten for visning av nettleseren. EN jsp-side bruker En JavaBean-komponent ved å sette inn og få egenskapene som den gir.

Hva Er Fordelene

Det er flere fordeler med Å bruke JavaBeans til å øke jsp-sider:

  • Gjenbrukbare komponenter: ulike applikasjoner vil kunne gjenbruke komponentene.
  • Separasjon av forretningslogikk og presentasjonslogikk: du kan endre måten data vises på uten å påvirke forretningslogikken.
  • Beskytte åndsverk ved å holde kildekoden sikker.

Eksempel: Bruk JavaBeans med JSP

Nå, la Oss se hvordan du endrer process.jsp eksemplet ovenfor for Å bruke JavaBeans. I skjemaet ovenfor er disse to feltene: name og email. I JavaBeans kalles disse egenskaper. Så først skriver Du En JavaBean-komponent med setX og getX metoder, Hvor X er egenskapsnavnet. Hvis du for eksempel har få og angi metoder: setName og getName, har du en egenskap kjent som name. Eksempel 5 viser en FormBean komponent.

Gode komponenter må kunne fungere sammen med andre komponenter fra forskjellige leverandører. Derfor, for å oppnå komponentgjenbruk, er det to viktige regler (som pålegges Av JavaBeans-arkitekturen) å følge:

  1. bean-klassen din må gi en konstruktør uten argumenter, slik at den kan opprettes ved hjelp av Beans.instantiate.
  2. bønneklassen din må støtte utholdenhet ved å implementere grensesnittet Serializable eller Externalizable.

Eksempel 5: 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; } } 

for å kunne bruke komponenten FormBean I jsp-filen, må du starte bønne-komponenten. Dette gjøres ved hjelp av <jsp:useBean> – taggen. Den neste linjen <jsp:setProperty> utføres når bønnen er instantiert, og brukes til å initialisere bønnens egenskaper. I dette tilfellet er begge egenskapene ( name og email) satt ved hjelp av en enkelt setning. Alternativt er det mulig å sette egenskapene en om gangen, men først må du hente skjemaets dato. Her er et eksempel på hvordan du vil angi egenskapen name :

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

når egenskapene er initialisert med data hentet fra skjemaet, hentes egenskapsverdier for presentasjon ved hjelp av <jsp:getProperty> i delen else, som vist i Eksempel 6.

Eksempel 6: prosess2.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> 

Konklusjon

Utviklere som er interessert i å utvikle kvalitetsproduksjon webapplikasjoner, bør gjøre seg kjent med teknologier som ikke bare gjelder for dagens marked, men også morgendagens, nemlig JSP og XML. Den neste artikkelen vil diskutere mulighetene SOM JSP-teknologien gir som er ideell for å jobbe MED XML; og vise deg hvordan du effektivt bruker JSP med XML. JSP og XML gjør en utmerket kombinasjon for webapplikasjoner som deler informasjon, fordi JSP-sider har XML-støtte bygget rett inn i dem i form AV jsp-egendefinerte tagbiblioteker. Følg med for mer informasjon om dette i neste artikkel i denne serien.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.