Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
1(27)
JSP (JavaServer Pages) tekniikka
Lähde Arvo Lipitsäinen, JSP – JavaServer Pages , 2003
mahdollistaa dynaamisen web-sisällön luonnin eli HTML-.DHTML-, XHTML- ja
XML-dokumentit luodaan palvelimella dynaamisesti ennen dokumenttien
lähettämistä käyttäjän-ohjelmistolle
tiedosto tallennetaan jsp-loppuisena
jsp-sivuun upotettu koodi suoritetaan palvelimella ennen kuin sivu lähetetään
selaimeen
selain
Web-palvelin JSP-Container
HTTP-pyyntö
Java-serveltti
JSP-tiedosto
käännös
ajo
HTML-sivu
Web-palvelimessa on
JSP-Container –alusta,
joka tekee JSP-sivusta
servletin, jonka se
kääntää ja käynnistää.
JSP-sivun kääntäminen
serveletiksi tapahtuu
ensimmäisellä JSP-sivun
kutsukerralla, seuraavan
kutsun yhteydessä JSP-
Container kutsuu valmista
servlettiä.
Jos jsp-tiedosto muuttuu,
Container-alusta kääntää sen
uudelleen serveltiksi.
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
2(27)
EL (Excression Language) ja JSTL
Lähde: Arvo Lipitsäinen, JSTL- JavaSrver Pages Standard Library, 2004
JSTL
on JSP:n standardi tagikirjasto
JSTL 1.0 kuvaus valmistui 2002
Päämäärä helpottaa JSP-sivujen kirjoittamista
Sisältää neljä tagikirjastoa:
o Ydinkirjasto
o XML:n käsittely
o Kansainvälistäminen
o Relaatitietokannan käsittely
Sisältää EL (Expression Language)-lausekielen
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
3(27)
Esimerkki:
<?xml version = "1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%@ page isThreadSafe="true"%>
<%@page import="java.util.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<body>
<h3>JSTL-toimintoja</h3>
<p>
<c:out value="Hyvää Päivää!" /><br><br>
Pieni yhteenlasku EL-kielellä:
<c:out value=" 1 + 2 = ${1 + 2}" /><br><br>
Kertolasku muuttujilla luku1 = 5 ja luku2 = 9<br>
<c:set var="luku1" value="5" />
<c:set var="luku2" value="9" />
luku1 * luku2 =
<c:out value=" ${luku1 * luku2}" />
</p>
</body>
</html>
tulostuu:
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
4(27)
EL-kielen literaalit
Literaalit ovat eri tyyppisten vakioiden merkitsemistapoja.
Tyyppi Kuvaus
Boolean true tai false .
Esim. true, false
Kokonaisluku Numeroita 0 - 9, joita voi edeltää etumerkki ( + tai - ).
Esim. 123, -29
Desimaaliluku Numeroita 0 - 9, joiden välissä voi olla piste erottamassa
kokonaisosan desimaaleista. Numeroiden edessä voi olla
etumerkki ( + tai - ) ja numeroiden jäljessä voi olla e tai E -
kirjaimella erotettu eksponentti, joka on kokonaisluku.
Esim. 52.99, -10.0, 1.2e5
Merkkijono Lainausmerkkien (") tai hipsukoiden (') sisällä. Esim.
"Ville", 'Veera'.
Merkkijonossa esiintyvää "- ja \-merkkiä edeltää \-merkki.
Esim. "C:\\levy", "Nimi \"Matti\" on yleinen"
Null-osoite null
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
5(27)
Operaattorit
Operaattori Kuvaus
. ominaisuuden haku
[] taulukko
() lausekkeiden ryhmittely
+ yhteenlasku
- vähennyslasku tai negatiivinen etumerkki
/ tai div jakaminen
% tai mod jakojäännös
== tai eq yhtäsuuruus
!= tai ne eri suuruus
< tai lt pienempi kuin
> tai gt suurempi kuin
<= tai le pienempi tai yhtä suuri kuin
>= tao ge suurempi tai yhtä suuri kuin
&& tai and looginen and-operaatio
|| tai or looginen or-operaatio
! tai not komplementti
empty tyhjä arvo (null, tyhjä merkkijono tai tyhjä taulukko)
Operaattorit: [ ] ja .
Olion ominaisuuteen voi viitata joko piste-operaattorin avulla tai taulukon
nimettynä alkiona eli oikeasti kutsutaan ko. olion getAttribuutti-metodia:
tuoteX.koodi
tuoteX[‘koodi’]
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
6(27)
Esimerkki.
<?xml version = "1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%@ page isThreadSafe="true"%>
<%@ page import="java.util.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h3>Tuote</h3>
<p>
<c:out value="${tuoteX.koodi}" /><br>
<c:out value="${tuoteX.nimi}" /><br>
<c:out value="${tuoteX.hinta}" /><br><br>
<c:out value="${tuoteX['koodi']}" /><br>
<c:out value="${tuoteX['nimi']}" /><br>
<c:out value="${tuoteX['hinta']}" /><br>
</p>
</body>
</html>
tulostuu
Tuote
123
Backgammon
14.50
123
Backgammon
14.50
edellyttää että:
Ohjelman pääserveltti on
lähettänyt attribuutin
tuoteX, joka on Tuote-
luokan olio ja jolla on
getKoodi(),getNimi() ja
gteHinta() metodit.
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
7(27)
EL tuntee seuraavat sisäiset objektit:
Sisäinen objekti Kuvaus
pageScope sisältää kaikki oliot, joiden näkyvyys on sivu (page)
requestScope sisältää kaikki oliot, joiden näkyvyys on pyyntö (request)
sessionScope sisältää kaikki oliot, joiden näkyvyys on istunto (session)
applicationScope sisältää kaikki oliot, joiden näkyvyys on sovellus
(application)
param sisältää pyynnön parametrit
paramValues sisältää pyynnön parametrit merkkijonotaulukkona
header sisältää http-pyynnön otsikkotiedot
headerValues sisältää http-pyynnön otsikkotiedot
merkkijonotaulukkona
initParam sisältää init-paramterit, jotka annetaan esim. web.xml-
kuvaimessa
cookie sisältää cookie-tiedot
pageContext sisältää javax.servlet.jspPageContext-olion
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
8(27)
Esim. <html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h3>Muuttujan näkyvyys</h3>
<p>
<c:set var="tunnus" value="ABC" scope="page" />
<c:set var="tunnus" value="kissa" scope="request" />
<c:set var="tunnus" value="kävelee" scope="session" />
<c:set var="tunnus" value="tikapuita" scope="application" />
<c:set var="tunnusX" value="TAIVAASEEN!" scope="session" />
tunnus: <c:out value="${tunnus}" /><br>
pageScope.tunnus: <c:out value="${pageScope.tunnus}" /><br>
requestScope.tunnus: <c:out value="${requestScope.tunnus}" /><br>
sessionScope.tunnus: <c:out value="${sessionScope.tunnus}" /><br>
applicationScope.tunnus:<c:out value="${applicationScope.tunnus}"
/><br>
tunnusX: <c:out value="${tunnusX}" /><br>
</p>
</body>
</html>
Tulostaa:
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
9(27)
Esim.
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h3>Header</h3>
<c:out value="User-Agent: ${header['User-Agent']}" /><br>
<c:out value="Accept-Encoding: ${header['Accept-Encoding']}" /><br>
<c:out value="Accept-Language: ${header['Accept-Language']}" /><br>
<c:out value="Accept-Charset: ${header['Accept-Charset']}" /><br>
<c:out value="Accept: ${header['Accept']}" /><br>
</body>
</html>
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
10(27)
Yleiskäyttöiset tagit (Core tag library)
<c:out>
toiminto laskee lausekkeen arvon, muuttaa sen merkkimuotoon ja
kirjoittaa tuloksen JspWriter-tyyppiseen out-tietovirtaan
syntaksi:
<c:out value=”arvo” [escapeXml=”{true|false}”] [default=”oletusarvo]
/>
tai <c:out value=”arvo” [escapeXml=”{true|false}”]
oletusarvo
<c:out>
value=”arvo” tulostettava lauseke
escapeXml=”{true|false}” muutetaanko merkit: <,>,&,’ ja ” vastaaviksi
merkkientiteeteiksi: <,>,&,' ja "
Oletusarvo true, muutetaan
default=”oletusarvo” ilmoittaa tulostettavan tiedon oletusarvon, jos
lausekkeen ”arvo” lakettuarvo on null
Esim. <h3>c:out-kokeilut</h3>
<br/>
seuraava lause tulostaa lauekkeen arvon:
<c:out value ="1 + 2 = 3 " />
<br/>
tulostuu
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
11(27)
<c:set>
toiminta antaa muuttujalle arvon
Syntaksi 1: muuttuja saa annetun arvon:
<c:set value="arvo" var="muuttujanNimi"
[scope="{page|reguest|session|application}"]/>
, missä attribuutti value ilmoittaa muuttujan saaman arvon, attribuutti var
muuttujan nimen ja valinnainen attribuutti scope muuttujan näkyvyysalueen.
Oletusnäkyvyys-alue on page.
Syntaksi 2: muuttuja saa elementin sisällön arvokseen:
<c:set var="muuttujanNimi"
[scope="{page|reguest|session|application}"]>
sisältö
</c:set>
Syntaksi 3: Kohteena olevan olion ominaisuus saa annetun arvon:
<c:set value="arvo" target="kohdeOlio"
property="ominaisuudenNimi"/>
, missä attribuutti value ilmoittaa ominaisuuden saaman arvon, attribuutti
target kohteena olevan olion ja attribuutti property olion ominaisuuden nimen.
Syntaksi 4: Kohteena olevan olion ominaisuus saa elementin sisällön arvokseen.
<c:set target="kohdeOlio" property="ominaisuudenNimi">
sisältö
</c:set>
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
12(27)
Esim.
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h3>Muuttujan arvo</h3>
<c:set var="testi" scope="request">
Windowsissa vakava tietoturvaaukko
</c:set>
<c:out value="${testi}" /><br>
</body>
</html>
Tulostuu:
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
13(27)
Esim.
<html xmlns="http://www.w3.org/1999/xhtml">
<%@page import="tuotteet.Tuote" %>
<body>
<h3>Tuote</h3>
<c:set value="10001" target="${tuoteX}" property="koodi" />
<c:set value="Backgammon" target="${tuoteX}" property="nimi" />
<c:set value="20.56" target="${tuoteX}" property="hinta" />
<br/>
<c:out value="${tuoteX.koodi}" /><br>
<c:out value="${tuoteX.nimi}" /><br>
<c:out value="${tuoteX.hinta}" /><br>
</p>
</body>
</html>
tulostuu:
10001
Backgammon
20.56
Ehdolliset toiminnat
<c:if> if-lause
Syntaksi: <c:if test="ehto" var="muuttujanNimi"
[scope="${page|request|session|application}"] />
tai
<c:if test="ehto" [var="muuttujanNimi"]
[scope="${page|request|session|application}"]>
sisältöä
</c:if>
Attribuutin test arvo (true/false) määrittää, prosessoidaanko
elementin sisältö vai ei
Attribuutin var arvoksi tulee ehtolausekkeen arvo (true/false)
Attribuutti scope ilmoittaa muuttujan näkyvyysalueen, oletus on page
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
14(27)
Esim.
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h3>EL-kielen if-lauseen testi</h3>
<c:if test="${servletinIlmoitus==true}" var="ilmoitus">
<br/>
<c:out value="TERVETULOA / VÄLKOM / WELCOME!" />
</c:if>
<br/><br/>
<c:out value="ilmoitus=" />
<c:out value="${ilmoitus}" />
<br/>
<c:if test="${ilmoitus==true}" >
<br/>
<c:out value="NÄKEMIIN / ADJÖ / GOOD BYE!" />
</c:if>
</body>
</html>
tulostuu:
Pääservletti on käynnistänyt sivun seuraavasti:
request.setAttribute ("servletinIlmoitus",true);
disp = request.getRequestDispatcher("WEB-INF/koe4.jsp");
disp.forward(request, response);
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
15(27)
<c:choose>,<c:when>,<c:otherwise>
Monivalinta, vastaa javan switch-case-lausetta
syntaksi: <c:choose>
<c:when test=”ehto1>Valinta 1 </when>
<c:when test=”ehto2>Valinta 2 </when>
… <c:when test=”ehtoN>Valinta N </when>
<c:otherwise>Viimeinen valinta </otherwise>
</choose>
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
16(27)
Esim. <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<title>Monivalinta-lause</title>
</head>
<body>
<form>
Kirjoita nimi: <input type="text" name="nimi" size="15" /> <br/>
Valitse nimi: <select name="kieli">
<option>suomi</option>
<option>ruotsi</option>
<option>englanti</option>
<option>espanja</option>
<option>muu</option>
</select>
<br/>
<input type="submit" value=" - Paina - " />
</form>
<br/>
<h2>
<c:choose>
<c:when test="${param.kieli==\"suomi\"}" > Terve, </c:when>
<c:when test="${param.kieli==\"ruotsi\"}" > Tjänare, </c:when>
<c:when test="${param.kieli==\"englanti\"}" > Hello, </c:when>
<c:when test="${param.kieli==\"espanja\"}" > Hola, </c:when>
<c:when test="${param.kieli==\"muu\"}">
?!#£$€6??#@$%&?ÅÄÖ,
</c:when>
<c:otherwise> </c:otherwise>
</c:choose>
<c:out value="${param.nimi}" />
</h2>
</body>
</html>
tulostaa, kun käyttäjä on kirjoittaa nimen, valitsee kielen ja painaa paina-nappulaa:
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
17(27)
Toistorakenne <c:forEach>
A) Taulukkorakenteen läpikäynti
<c:forEach [var=”varName”] items=”collection”
[varStatus=”varStatusName”]
[begin=”alku” end=”loppu” [step=”askel”]]>
Sisältöa
<c/forEach>
Items on pakollinen ja voi olla :
o Tavallinen taulukko
o Collection-luokan olio,Vector,
ArraytList,LinkedList,Treeset
o Iterator-, Enumeration- tai Map-olio
o String-olio, joka sisältää pilkulla toisistaa erotettuja
merkkijonoja
var on muuttujan nimi, jonka avulla viitataan käsiteltää taulukon alkiota
begin on taulukon indeksi,josta taulukon läpikäynti alkaa, end on
indeksi, johon läpikäynti päättyy ja step ilmaisee indeksin korotuksen
(vrt. Java for-lause)
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
18(27)
Esim. <body>
<h2>TUOTELUETTELO </h2>
<table border="1">
<th>Tuotteen koodi</th> <th>Tuotteen nimi</th> <th>Hinta (eur)</th>
<c:forEach var="tuote" items="${tuotelista}">
<tr>
<td><c:out value="${tuote.koodi}" /> </td>
<td><c:out value="${tuote.nimi}" /> </td>
<td><c:out value="${tuote.hinta}" /> </td>
</tr>
</c:forEach>
</table>
</body>
</html>
Pääservletissä on tuoteluettelon aktivointi seuraava: ArrayList lista = new ArrayList();
for (int i=0; i<10;i++)
lista.add(new Tuote(i+10,"tuote"+i+10, ( 2.07+i)));
request.setAttribute( "tuotelista", lista);
disp = request.getRequestDispatcher("WEB-INF/koe6.jsp");
disp.forward(request, response);
tulostuu:
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
19(27)
B) Toistaminen n-kertaa
<c:forEach [var=”varName”]
[varStatus=”varStatusName”]
begin=”alku” end=”loppu” [step=”askel”]>
Sisältöa
<c/forEach>
var on indeksi, begin indeksin alkuarvo ja end loppuarvo, step
ilmaiseen indeksin kasvatuksen (vrt. Java for-lause)
Esim.
<h3>Kierrokset</h3>
<c:forEach var="i" begin="1" end="5" >
<c:out value="Kierros ${i}"/>
<br/>
</c:forEach>
tulostuu:
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
20(27)
Internet-resurssin käsittely <c:import>
tuo JSP-sivulle dataa ulkoisesta URL-osoitteesta
syntaksi: <c:import url=”url” [context=”context ”]
[var=”varName”]
[scope=”{page|request|session|application}”]
[charEncoding=”charEncoding”]>
sisältö
</c:import>
url ilmaisee URL-osoitteen, mistä sisältö haetaan,
context ilmoittaa perusosoitteen, jos url on suhteellinen osoite
esimerkkejä URL-osoitteista:
o Absolute URL:
<c:import url="http://sample.com/Welcome.html"/>
o Relative URL (to the current context):
<c:import url="/copyright.html"/>
o Relative URL with a foreign context:
<c:import url="/myLogo.html" context="/common"/>
var ilmoittaa muuttujan, johon haettu sisältö tallentuu
charEncoding ilmaisee merkkien koodaustavan
scope ilmaisee muuttujan näkyvyyden
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
21(27)
Esim.
<body>
<h2>JSTL-esimerkki: import-tagi</h2>
<p>Seuraava teksti on peräisin teksti.txt-tiedostosta</p>
<c:import url="teksti.txt" />
</body>
</html>
tulostuu:
Kun teksti.txt:n sisältö on: Abc kissa kävelee tikapuita pitkin taivaaseen.
Tikapuut halkesi,
pikku kissa putosi.
MIAUUUU!
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
22(27)
JSP-sivun ja pääservletin välinen kommunikointi
Jsp-sivu vie tietoa pääservletille kahdella tavalla:
A) Linkin-avulla
B) Painikkeen avulla
A) Linkki
Syntaksi:
<a href=”pääservletti ? parametri1=arvo1 & parametri2=arvo2 ...”>
Esim.
<a href="Kokeilut?action=hae&asiakas=mina&salasana=itse">hae</a>
B) Painike
Syntaksi:
<form action=”pääservletti” method=”get/post”>
…
<input type=”submit” name=”toiminta” value=”paina” >
</form>
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
23(27)
Esim. <form action="Kokeilut" method="get" >
Paikka:
<select name="paikka" >
<option value="30" <c:if test="${paikka==\"30\"}">SELECTED </c:if> >
Permanto(30 eur) </option>
<option value="40" <c:if test="${paikka==\"40\"}">SELECTED </c:if> >
Parveke (40 eur)</option>
<option value="50" <c:if test="${paikka==\"50\"}">SELECTED </c:if> >
Aitio (50 eur)</option>
</select>
Lippujen lukumäärä:
<input type="text" name="maara" size="3" maxlength="3"
value="${maara}" >
<br/>
Yhteensä: <input type="text" name="yhteensä" size="6" readonly
value="${yhteensa}">
<br/>
<input type="submit" name="action" value="Laske">
</form>
tulostaa
Tilanne Laske-nappulan painalluksen jälkeen:
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
24(27)
Pääservletti vastaanottaa tietoa JSP-sivulta:
ServletRequest-luokan metodit:
String getParameter(String);
String [] getParameterValues(String);
Ks.
http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/ServletRequest.html
esim. protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException
{
String action = request.getParameter("action");
RequestDispatcher disp ;
if (action!= null && action.equals("Laske"))
{
int paikka =Integer.parseInt(request.getParameter("paikka"));
int maara=Integer.parseInt(request.getParameter("maara"));
int summa = maara*paikka;
request.setAttribute ("yhteensa",""+summa);
request.setAttribute("maara",""+maara);
request.setAttribute("paikka",""+paikka);
}
disp = request.getRequestDispatcher("WEB-INF/koe8.jsp");
disp.forward(request, response);
}
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
25(27)
Pääservletti lähettää tietoa JSP-sivulle:
Metodi: void setAttribute(String attribuutinNimi,
String attribuutinArvo);
Esim.
<body>
<h3>Henkilön tiedot </h3>
<br/>
<form action="Kokeilut" method="post">
Kirjaudu:
<br/>
käyttäjätunnus:
<input type="text" name="kayttaja" size="15" maxlength="15" />
<br/>
salasana:
<input type="password" name="sala" size="5" maxlength="5" />
<br/>
<input type="submit" name="action" value="kirjaudu" />
</form>
<FORM action="Kokeilut" method="get">
<input type="hidden" name="tunnus" value="${tunnus}" >
<input type="hidden" name="nimi" value="${nimi}" >
<P>
First name: <INPUT type="text" name="etunimi" value="${etunimi}"
size="25" maxlength="25"><br/>
Last name:<INPUT type="text" name="sukunimi" value="${sukunimi}"><br/>
email: <INPUT type="text" name="email" value="${email}"><br/>
<br/>sukupuoli: <br/>
<c:if test="${sex==\"Female\"}" >
<INPUT type="radio" name="sex" value="Male"> Male<BR/>
<INPUT type="radio" name="sex" value="Female" checked > Female<BR/>
</c:if>
<c:if test="${sex!=\"Female\"}" >
<INPUT type="radio" name="sex" value="Male" checked > Male<BR/>
<INPUT type="radio" name="sex" value="Female" > Female<BR/>
</c:if>
...
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
26(27)
tulostuu, kun käyttäjä avaa ikkunan ensimmäisen kerran:
seuraavaksi hän painaa Kirjaudu-nappulaa tulostuu:
HELIA ICT2TN007
Seija Lahtinen 9.9.2010
Tiedosto: JSP_JSTL_materiaali.doc
27(27)
Mitä tapahtuu pääservletin doGet-metodissa?
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException
{
String action = request.getParameter("action");
RequestDispatcher disp ;
boolean painettu= false;
if (action != null && action.equals("kirjaudu"))
{
String kayttaja = request.getParameter("kayttaja");
String salasana=request.getParameter("sala");
request.setAttribute("tunnus","a1010101");
request.setAttribute("nimi","toimitusjohtaja Wilma Lahtinen");
request.setAttribute("etunimi", "Ronja");
request.setAttribute("sukunimi","Röverdotter");
request.setAttribute("email","[email protected]");
request.setAttribute("sex","Female");
}
disp = request.getRequestDispatcher("WEB-INF/koe8.jsp");
disp.forward(request, response);
}