JSP uppsetning og Java dæmi Ég ætla lýsa fyrir ykkur hvernig setja á upp Tomcat, þetta er auðveld uppsetning sem engin ætti að hræðast. Tomcat er JSP vefþjónn og ætla ég taka tvö sýnidæmi á Java, þessi dæmi eru ekki háð JSP heldur eru dæmin meira til að komast inn í Java og kynning á JavaDoc sem er vægast sagt helgasti staður Java forritarans. Java er heldur öðruvísi en Perl, ASP og PHP og þarf oft að fara eftir ákveðnum reglum, t.d. það er strongly typed(þ.e. skilgreina breytur eins og þær eiga að vera, strengur=String, tala=int, osfrv), breytur eru case-sensitive, og oftar en ekki þarf að vera með try og catch utan um kóða ásamt fleiri reglum.

Larry Wall, sá sem bjó til Perl sagði að hann bjó til Perl til að gera auðveldu hlutina auðvelda og erfiðu hlutina mögulega, ASP og PHP gerir auðveldu hlutina ennþá auðveldar og erfiðu hlutina mögulega, Java gerir stóru hlutina meira skalalega, meira hlutbundið og erfiðu hlutina auðveldari, en aftur á móti verða auðveldu hlutirnir oft erfiðari en þeir ættu að vera.

Byrjum núna á að setja upp Tomcat.

Farið á Release Builds á jakarta.apache.org (http://jakarta.apache.org/site/binindex.html) og veljið þar nýjustu útgáfu af Tomcat (núna er 3.2.1)

Þar velurðu þá skrá sem hendar þér, ég valdi jakarta-tomcat-3.2.1.zip, fyrir windows, það væntanlega breytist eitthvað eftir útgáfum

Ég afzippaði möppuna og endurnefndi hana tomcat í staðin fyrir jakarta-tomcat-3.2.1, flutti hana síðan C:/Java/tomcat þessa slóð kalla ég það sem eftir er </path/to/tomcat>

Farðu í möppuna </path/to/tomcat>/doc og opnaðu index.html, þar eru install leiðbeiningar, ég ætla setja serverinn upp sem stand-alone, þið getið farið aðrar leiðir ef þið viljið, en hérna eru leiðbeingar fyrir stand-alone:

Fyrir Windows 2000 farið í Control Panel -> System -> Advanced -> Enviroment Variables… Veldu þar New… í System Variables og bættu við TOMCAT_HOME og urlið &lt;/path/to/tomcat&gt; (hjá mér C:\Java\tomcat) (passið að setja <b>ekki</b> semikommu eftur \tomcat) ATH! að þú þarft að vera með J2SE uppsett á tölvunni, ef þú ert ekki með það þá geturðu náð í það á http://java.sun.com/j2se/1.3/ og sett það upp hjá þér, Tomcat þarf þetta til að keyra og einnig JAVA_HOME breytu í System Variables sem kemur þegar J2SE er sett upp.

Þá ertu búin að setja upp serverinn, lítið mál.

Til að starta tomcat þá ferðu í &lt;/path/to/tomcat&gt;/bin og opnar þar startup.bat farðu svo á http://localhost:8080 og þá kemurðu á upphafsíðu Tomcat. Ef síðan kemur ekki þá hefur eitthvað misfarist í uppsetningunni og þú þarft að fara yfir uppsetninguna.

Á upphafsíðunni stendur (í útgáfu 3.2.1) að þetta sé síðan &lt;/path/to/tomcat&gt;/webpages/index.html, sem er ekki alveg rétt heldur er þettta &lt;/path/to/tomcat&gt;/webapps/ROOT/index.html, þarna geturðu prófað ýmis dæmi og skoðað kóða.

Nú ætlum við að búa til okkar eigið vefapp, við skulum byrja á því að fara í möppuna &lt;/path/to/tomcat&gt;/webapps og búa til möppu sem heitir “foo” (án gæsalappa) farðu svo í möppuna &lt;/path/to/tomcat&gt;/conf og opnaðu skjalið server.xml þarna setur maður svo kölluð context path. Settu þennan kóða þarna inn.

<PRE>
&lt;Context path=“/foo”
docBase=“webapps/foo”
crossContext=“true”
debug=“0”
reloadable=“true”
trusted=“false” &gt;
&lt;/Context&gt;
</PRE>


farðu núna í möppuna &lt;/path/to/tomcat&gt;/webapps/foo og búðu til skalið index.jsp og settu eftirfarandi kóða í skjalið og vistaðu skjalið

<PRE>
&lt;%
String hello = “Hello World”; //hleð texta inn í streng
out.print(hello); // prenta út hello
%&gt;
</PRE>

Farðu nú í &lt;/path/to/tomcat&gt;/bin og keyrðu shutdown.bat til þess að slökkva á tomcat, það þarf að gera þetta þar sem við vorum að bæta við nýju context path-i í server.xml (það er líka hægt að bæta við context path í gegnum admin hlutan án þess að restarta, en þetta er ágætt til að kynnast þessu aðeins) keyrðu núna &lt;/path/to/tomcat&gt;/bin/startup.bat

Farðu svo á slóðina http://localhost:8080/foo, og það ætti að koma “Hello World” þú tekur væntalega eftir því að skjalið er lengi að hlaðast í fyrsta skiptið, en það er vegna þess að tomcat er smíða skjalið úr JSP skjali yfir í Servlet.

Nú þegar að við vitum að Tomcat virkar þá ætlum við út í flóknari pælingar, dagsetningar og svo kallað Localization

Þetta er kóðin sem fer í jsp síðuna.
<PRE>
&lt;%@ page import=“java.text.*” %&gt;
&lt;%@ page import=“java.util.*” %&gt;

&lt;%
Locale l = new Locale(“IS”, “IS”);
Date d = new Date();

SimpleDateFormat sdf = new SimpleDateFormat(“EEEE dd MMMM yyyy ‘kl:’ kk:mm:ss”, l);
out.print(sdf.format(d));
%&gt;
</PRE>

Byrjum efst, þar sjáum við &lt;%@ page import=“java.text.*” %&gt; sem þýðir að við viljum fá inn alla klasa (það er stjarnan(*)) sem eru í pakkanum java.text til þess að virka á jsp síðunni. Hvernig vitum við að við viljum fá java.text.* og java.util.*? það kemur í ljós seinna, fyrst skaltu bara átta þig á því hvað &lt;%@ page import=“” %&gt; gerir.

Næsta sem er á dagskrá er Locale. Locale er klasi sem bíður upp á fyrirfram skilgreint gildi fyrir dagsetningar, myntir, töluuppsetningar osfrv. Mjög svo svipað og Regional Options í Control panel gerir í Windows 98/ME/2000, og þar sem við bjuggum til klasan með IS þá eru gildin eftir íslenskum staðli. En þá er spurt hvernig veit maður hvað maður á að senda margar breytur inn í Locale, þá förum við í JavaDocið fyrir J2SE sem er staðsett á http://java.sun.com/j2se/1.3/docs/api/index.html Þar skaltu leita uppi Locale í neðri vinstri dálkinum og smella á linkinn.

Þá hleðast upplýsingar um Locale klasan í aðal gluggan og ef þú lítur þar þá ætturðu að sjá eftirfaranadi

<PRE>
java.lang.Object
|
+–<B>java.util.Locale</B>
</PRE>

þar sérðu að Locale er hluti af java.util pakkanum, og þar sem við viljum nota Locale hlutan í JSP skjalinu þá þurfum við að import-a hann(&lt;%@ page import=“java.util.*” %&gt;). Einnig sjáum við Constructor Summary(constructor = smiður) sem segir okkur hvað margar breytur smiðurinn tekur inn, þ.e. tvær strengja breytur, tungumál og land eftir ISO staðli.

Næst er Date, Date er dagsetningar klasi og er einnig að finna J2SE, ef þú leitar að honum neðri vinstri dálkinum þá ættirðu að finna tvo Date hluti, veldu þann sem er neðri (hinn er af java.sql pakkanum, við erum ekkert að vinna með sql hérna þurfum hann því ekki), skjalið sýnir okkur að hann er af java.util pakkanum, þarna er listi yfir öll föll sem eru í Date klasanum, en mest af því er merkt <b>Deprecated</b> sem þýðir að þú mátt ekki nota þau föll en þau sem eru <b>ekki</b> Deprecated er í lagi að nota. Með því að gera new Date(); þá fáum við dagsetninguna og tímann í dag.

SimpleDateFormat er klasi notaður til að formata dagsetningar(einnig í J2SE), smiðurinn er þannig að þú sendir inn ‘pattern’ (útlitið á dagsetningunni) og Locale hlut. Þar sem við erum búin að búa til Locale hlutinn (fyrir Ísland) þá sendum við hann inn og patternið sem við veljum er “EEEE dd MMMM yyyy ‘kl:’ kk:mm:ss”, í JavaDoc-inu undir SimpleDateFormat klasanum sérðu hvað þessi stafir standa fyrir.

Að lokum gerum við out.print(sdf.format(d)); það sem out.print gerir er að skrifa út streng (eins og echo og response.write) sdf.format(d) formatar fyrir okkur strengin þannig að hann verði eins og við viljum. Útkoman er þessi.

<PRE>
fimmtudagur 10 maí 2001 kl: 20:03:53
</PRE>

eins og þú sérð þá þarft þú ekki að hafa áhyggjur að þýða dagsetningarnar fyrir hvert tungumál, ekki að hafa áhyggjur af töluuppsetningum(þ.e. hvar komman og punkturinn á að vera) eða mynt fyrir hvert land(reyndar er ekki tölur og mynt í þessu dæmi, en þannig virkar það).

En það sem einna helst er hægt að læra á þessu er hvernig klasarnir vinna saman, þ.e. þú sendir Locale og Date inn í SimpleDateFormat og hvernig þú átt að nota JavaDoc-ið.

JavaDoc-ið er gríðarlega öfluggt og mæli ég með að fólk gangi á klasana sem eru í því og prófi þá, það er kannski óþarfi að prófa alla, en að rúlla í gegnum listan og velja þá sem þér líst vel á marg borgar sig.

Svo gæti verið að ég sendi einhvern tímann inn grein sem fjallar meira um Servlet API og hvernig hægt er að vinna með hann, sjáum til hvort einhver hefur áhuga.

Linkar:
J2SE API
http://java.sun.com/j2se/1.3/docs/api/index.html
Servlet API
http://java.sun.com/products/servlet/2.2/javadoc/index.html
JDC Forum
http://forum.java.sun.com
Tomcat FAQ
http://java.sun.com/products/jsp/tomcat/faq.html
Jakarta
http://jakarta.apache.org