directive attr1= value1 attr2= value2 %>

Samankaltaiset tiedostot
JSP (JavaServer Pages) tekniikka Lähde Arvo Lipitsäinen, JSP JavaServer Pages, 2003

Rajapinta (interface)

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Metodien tekeminen Javalla

Olio-ohjelmointi Javalla

Java-kielen perusteet

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Digitaalisen median tekniikat. JSP ja XML

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

1. Omat operaatiot 1.1

Ohjelmointi 2 / 2010 Välikoe / 26.3

9. Periytyminen Javassa 9.1

Luokat ja oliot. Ville Sundberg

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

4. Luokan testaus ja käyttö olion kautta 4.1

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

P e d a c o d e ohjelmointikoulutus verkossa

9. Periytyminen Javassa 9.1

Ohjelmoinnin jatkokurssi, kurssikoe

Listarakenne (ArrayList-luokka)

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

JavaScript alkeet Esimerkkikoodeja moniste 2

Java-kielen perusteet

Groovy. Niko Jäntti Jesper Haapalinna Group 31

16. Javan omat luokat 16.1

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet

17. Javan omat luokat 17.1

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

1 Tehtävän kuvaus ja analysointi

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Java-kielen perusteita

Javan perusteita. Janne Käki

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)

20. Javan omat luokat 20.1

Java-kielen perusteet

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

17. Javan omat luokat 17.1

Mikä yhteyssuhde on?

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä

JSP (JavaServer Pages) tekniikka Lähde Arvo Lipitsäinen, JSP JavaServer Pages, 2003

Java-API, rajapinnat, poikkeukset, UML,...

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Ohjelmoinnin perusteet Y Python

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Sisältö. 2. Taulukot. Yleistä. Yleistä

T Olio-ohjelmointi Osa 3: Luokka, muodostin ja hajotin, this-osoitin Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

815338A Ohjelmointikielten periaatteet

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

15. Ohjelmoinnin tekniikkaa 15.1

Apuja ohjelmointiin» Yleisiä virheitä

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Attribuutit. Copyright IT Press Tämän e-kirjan kopiointi, tulostaminen ja jakeleminen eteenpäin luvatta on kielletty.

OutputStream ja InputStream. Tietovirrat ja niiden suunnat. Tietovirtojen käyttö. FileInputStream esimerkki. DataOutputStream ja DataInputStream

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. X Poikkeusten käsittelystä

C++11 Syntaksi. Jari-Pekka Voutilainen Jari-Pekka Voutilainen: C++11 Syntaksi

C++ rautaisannos. Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout:

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

12. Näppäimistöltä lukeminen 12.1

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Sunin määrittelemä JSP 1.1 (javaserver pages) yhdistää

14. Poikkeukset 14.1

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Java kahdessa tunnissa. Jyry Suvilehto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

15. Ohjelmoinnin tekniikkaa 15.1

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

1. Mitä tehdään ensiksi?

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.

12. Monimuotoisuus 12.1

Harjoitus 3: Flash-komponenttiarkkitehtuuri ( )

19. Olio-ohjelmointia Javalla 19.1

KOHDELUOKAN MÄÄRITTELY

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

7. Näytölle tulostaminen 7.1

Interaktiivinen tarinankerronta

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Periytyminen (inheritance)

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

CSS - tyylit Seppo Räsänen

Harjoitustyön testaus. Juha Taina

Transkriptio:

HAAGA-HELIA OHJELMISTOKEHITYS 1(14) -elementti on olemassa kolmenlaisia elementtejä: A) Direktiivit A) Direktiivejä (directive element) B) Skriptejä (scripting selement) C) Toimintoelementtejä (action elements) direktiivin yleinen muoto: @ directive attr1= value1 attr2= value2 Direktiivi page Selitys page-direktiivi määrittää useita -sivun ominaisuuksia. Direktiivillä on seuraavat attribuutit: - language ilmoittaa sivulla käytettävän skriptikielen. 1.2 tukee vain Javaa - extends määrittää, mistä luokasta -sivua vastaava servletti periytetään. Tätä attribuuttia ei pidä normaali tapauksissa käyttää - import ilmoittaa ne pakkaukset ja luokat, jotka ovat käytettävissä -sivuilla - session ilmoittaa, onko -sivun mahdollista perustaa istunto - buffer määrittää -sivun puskurointimallin - autoflush määrittää, tyhjennetäänkö puskuri automaattisesti - isthreadsafe ilmoittaa, mikä on -sivun säikeiden turvallisuustaso Tiedosto:.docx

HAAGA-HELIA OHJELMISTOKEHITYS 2(14) include taglib - info määrittää vapaamuotoisen -sivua koskevan merkkimuotoisen informaation. Informaatio saadaan Servlet.getServletInfo()-metodilla - iserrorpage ilmoittaa, onko -sivu jonkun toisen -sivun virheilmoitussivu - contenttype määrittää -sivun merkkien koodauksen (oletuksena ISO-8859-1) ja -sivun sisältötyypin - pageencoding määrittää -sivun merkkien koodauksen (oletuksena ISO-8859-1) include-direktiivin avulla sijoitetaan -sivulle tekstiä jostakin ulkoisesta tiedostosta -sivun käännöksen aikana taglib-direktiivi ilmoittaa, että -sivu käyttää ulkoista tagikirjastoa Esim. Esim. @page import="java.util.*" Tänään on = new Date().toString() <head><title>include-direktiivi</title></head> @include file="copyright.html" <h1>include</h1> <p>:n include-direktiivin avulla voidaan tuoda tekstiä www-sivulle käännösaikaan. </p> copyright.html-tiedoston sisältö: <hr>copyright 2002 Ville Villaton, Vallattomat & Kumppanit<hr> Tiedosto:.docx

HAAGA-HELIA OHJELMISTOKEHITYS 3(14) B) Skriptit Skriptielementtien sisään voi kirjoittaa Java-kielisiä käskyjä. Skriptielementtien alkumerkintä on ja loppumerkintä on. 1.2 määrittää seuraavat skriptielementit: 1) Määrittely (declaration) Esimerkki. 1) määrittely (declaration), esim.! int a; 2) skriptletti (scriptlet), esim. out.println("terve"); 3) lauseke (expression), esim. = Math.PI*r*r! Java_tyyppi java_muuttuja ; Määrittelyskriptin alkutagi on! ja loppustagi on määrittää -sivulla käytettäviä muuttujia ja metodeja. Määrittelyjen on oltava täydellisiä käskyjä. Määrittelyelementissä ei voida kirjoittaa out-tietovirtaan. Määrittelyt astuvat voimaan, kun -sivu initialisoidaan.! public String poo(int n) { if ( n < 0) return "negatiivinen"; else return "positiivinen"; } Tiedosto:.docx

HAAGA-HELIA OHJELMISTOKEHITYS 4(14) 2) Skriptletti (scriptlet) Skriptletin alkutagi on ja lopputagi Skriptletissä voi olla kaikkia skriptikielen (Javan) mukaisia rakenteita. Skriptletin suoritus tapahtuu -sivun pyynnön käsittelyn aikana. Skriptletissä voidaan kirjoittaa out-tietovirtaan. Esimerkki. if(a < 10) { pieni kokonaisluku } else { suurempi kokonaisluku } ONGELMA: Kaikilla käyttäjillä ei ole Java-kääntäjää 3) Lauseke (expression) Skriptilausekkeen alkutagi on = ja lopputagi on -sivun lauseke on skriptikielen (Java-kielinen) lauseke, jonka arvo on lasketaan ja muutetaan String-tyyppiseksi merkkijonoksi. Lausekkeen arvo kirjoitetaan out-tietovirtaan. Lauseke suoritetaan HTTP-pyynnön aikana. Esimerkki. = new java.util.date().tostring() Tiedosto:.docx

HAAGA-HELIA OHJELMISTOKEHITYS 5(14) Esimerkki <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>kokeilut</title> </head> @ include file="copyright.html" <h1>include</h1> <p>:n include-direktiivin avulla voidaan tuoda tekstiä www-sivulle käännösaikaan. </p> <p> Tänään on = new Date().toString() </p>! int luku = 15;! public String poo(int n){ if(n < 0) return("negatiivinen"); else return("positiivinen");} -direktiivi include -lauseke -määrittely: muuttuja luku ja funktio poo -sivulle voidaan sijoittaa skriptejä. Edellinen oli määrittely.<br/> Seuraava on skriptletti. Siinä voi olla mitä tahansa Java-koodia.<br/> for(int i = 0; i < 3; i++) skriptletti out.println("hurraa!<br> "); Seuraava on lauseke (expression), jonka arvo sijoitetaan sivulle.<br/> Lausekkeen arvo on = poo(luku) -lauseke tulostuu: Tiedosto:.docx

HAAGA-HELIA OHJELMISTOKEHITYS 6(14) Java-muuttujien näkyvyys Java-koodi sijoitetaan servletissä juuri siihen paikkaan, missä tagit,..., ovat. Jos koodissa on määritelty muuttujia, ne voivat näkyä tagien rajoittaman alueen ulkopuolella, paitsi jos ne määritellään java-lohkon sisälle, ne eivät näy toisen java-lohkon sisällä. Esim. 1 <head><title>-sivu </title></head> <center> <h1>-sivu</h1> <br/>ensimmäinnen -lohko <br/> String nimi = "Pirkko Paju"; out.println(nimi); <br/>toinen -lohko<br/> nimi = "Pekka Puska"; out.println(nimi); Esim. 3 <head><title>- Sivu</title></head> <center> <h1>-sivu</h1> <br/> Ensimmäinnen -lohko <br/> String nimi = "Pirkko Paju"; out.println(nimi); <br/>toinen -lohko<br/> String nimi = "Pekka Puska"; Tiedosto: out.println(nimi);.docx Esim. 2 <head><title>- Sivu</title></head> <center> <h1>-sivu</h1> <br/> Ensimmäinnen Java-lohko <br/> { String nimi = "Pirkko Paju"; out.println(nimi); } <br/>toinen Java-lohko<br/> { String nimi = "Pekka Puska"; out.println(nimi); }

HAAGA-HELIA OHJELMISTOKEHITYS 7(14) Ehtolauseet ja toistorakenteet - -sivulla voidaan käyttöö Javan ehtolauseita ja toistorakenteita. Sivu4: int a = 2, b = 1; if(a > b) { a on suurempi kuin b } else { b on suurempi kuin a } Tulostuu: a on suurempi kuin b... String [] varit = {"Sininen", "Punainen", "Vihreä", "Keltainen"}; <form name=lomake> Valitse väri<br/><br/> <select name=valinta> for(int i = 0; i < varit.length; i++) { <option> out.println(varit[i]); } </select> </form>... - Tulostuu: Tiedosto:.docx

HAAGA-HELIA OHJELMISTOKEHITYS 8(14) :n standardin toimintoelementit (standard actions) :ssä on toimintoelementtejä (action), joilla voidaan luoda ja käyttää olioita ja komponentteja. :n standardit toimintoelementit ovat seuraavat: <jsp:usebean> <jsp:setproperty> <jsp:getproperty> <jsp:include> <jsp:forward> <jsp:param> <jsp:plugin> Tiedosto:.docx

HAAGA-HELIA OHJELMISTOKEHITYS 9(14) <jsp:usebean> <jsp:usebean> -elementin avulla saadaan -sivun käyttöön Java-olio. Toiminto liittää Java-olion annettuun id-attribuutin arvoon. Toiminto etsii ensin annetut kriteerit täyttävää oliota ja jos sellaista ei löydy, se yrittää luoda annettujen attribuuttien mukaisen olion. Olion etsintäkriteerit ovat olion nimi (id-attribuutti) ja näkyvyysalue. Syntaksi: <jsp:usebean id="name" scope="page request session application typespec /> typespec ::=class="classname" class="classname" type="typename" type="typename" class="classname" beanname="beanname" type="typename" type="typename" beanname="beanname" type="typename" <jsp:usebean>-toiminnolla on seuraavat attribuutit: - id id-attribuutti identifioi -sivuun liitetyn olion (olion nimi) - scope scope-attribuutti ilmaisee näkyvyysalueen, missä olio on käytettävissä. Se voi saada jonkin arvoista: page, request, session, application. Oletuksena on page. - class class-attribuutti ilmoittaa -sivuun liitettävän olion luokan - beanname beanname-attribuutti ilmoittaa -sivuun liitettävän JavaBean-komponentin nimen - type type-attribuutti määrittää -sivuun liitettävän muuttujan tyypin. Attribuutin avulla on mahdollista antaa muuttujalle eri tyyppi kuin itse olion tai komponentin tyyppi. Tyyppi voi olla olion tyypin kantaluokka tai rajapinta, jonka olio toteuttaa. Esim. <jsp:usebean id="kori" scope="session" class="kauppa.ostoskori" /> Tiedosto:.docx

HAAGA-HELIA OHJELMISTOKEHITYS 10(14) <jsp:setproperty> annetaan JavaBean-komponentin ominaisuudelle jokin arvo. Syntaksi: <jsp:setproperty name="beanname" { prop_expr } /> Prop_expr ::= property= "*" property="propertyname" [ param="parametername" ] property="propertyname" value="{string = expression}" <jsp:setproperty>-toiminolla on seuraavat attribuutit: - name name-attribuutti on olio tai JavaBean-komponentti, joka on määritetty aikaisemmin <jsp:usebean>-elementissä. - property property-attribuutti ilmoittaa komponentin ominaisuuden, jota halutaan muuttaa. Jos ominaisuuden arvoksi annetaan "*", elementti etsii kaikki request-olion parametrien nimet, joilla on sama nimi kuin beanname komponentin ominaisuuksilla (attribuuteilla), ja vie parametrien arvot ominaisuuksien arvoiksi. Ko. komponentin ominaisuuksilla pitää olla set-metodit. Parametrit ovat yleensä HTML:n elementtejä, joiden arvot kirjoittaa käyttäjä. - param property saa arvokseen ServeletRequest-olion param-nimisen parametrin. Jos param-määrettä ei ole, property saa arvokseen Servletrequest-olion property-nimisen parametrin arvon. - value value-attribuutti ilmaisee arvon, jonka ominaisuus saa. Esim. <jsp:usebean id="kori" scope="session" class="kauppa.ostoskori" /> <jsp:setproperty name= kori property= numero value= 123 /> <jsp:usebean id="cart" scope="session" class="session.carts" /> <jsp:setproperty name="cart" property="*" /> Tiedosto:.docx

HAAGA-HELIA OHJELMISTOKEHITYS 11(14) <jsp:getproperty> hakee komponentin ominaisuuden arvon, muuttaa sen Stringmerkkijonoksi ja sijoittaa sen out-tietovirtaan. Komponentti, jonka ominaisuutta haetaan, täytyy olla perustettu aikaisemmin <jsp:usebean>-elementillä. Syntaksi: <jsp:getproperty name="beanname" property="propertyname" />, missä name on olion nimi, joka on määritetty aikaisemmin <jsp:usebean>-elementissä ja jonka ominaisuutta haetaan, ja property on haettava ominaisuus. Esimerkki. @ page import = "java.util.*, kauppa.ostoskori" <jsp:usebean id="kori" scope="session" class="kauppa.ostoskori" /> <head><title>kirjaostokset</title></head> <center> <h1>kirjaostokset</h1> <br /> Tilauksen numero: <jsp:getproperty name="kori" property="numero" /> <br /> Tilaajan nimi: <jsp:getproperty name="kori" property="nimi" /> <br /> Ostokori-luokassa on oltava attribuuteilla getattribuuttimetodit. Tiedosto:.docx

HAAGA-HELIA OHJELMISTOKEHITYS 12(14) <jsp:include> mahdollistaa pyynnön aikana tuoda ja sisällyttää -sivuun ulkoinen staattinen tai dynaaminen resurssi. (Staattinen resurssi tarkoittaa esim. staattista HTML-sivua. Dynaaminen resurssi tarkoittaa esimerkiksi toista -sivua. Dynaaminen resurssi täytyy ensin prosessoida ja prosessin tulos tuodaan -sivuun.) Syntaksi: <jsp:include page="urlspec" flush="true" />,missä page on sisällytettävän resurssin URL-osoite ja flush on pakollinen ja ilmaisee puskurin olevan tyhjennetty. Sen arvo pitää olla true. Toinen muoto toiminnalle on seuraavassa, missä sisällytettävälle sivulle välitetään yksi tai useampi parametri: <jsp:include page="urlspec" flush="true"> <jsp:param name="paramname" value="paramvalue" /> </jsp:include> Esimerkki <jsp:include page="copyright.html" flush="true" /> Esim. Seuraava päiväys tulee toisesta jsp-sivusta Seuraava päiväys tulee toisesta jsp-sivusta <jsp:include page="pvm.jsp" flush="true" /> Tiedosto:.docx Pvm.jsp: = new java.util.date().tostring() @ page import="java.util.*, java.text.*" Date aika = new Date(); SimpleDateFormat format = new SimpleDateFormat ("dd.mm.yyyy"); String pvm = format.format(aika); Paivays = pvm

HAAGA-HELIA OHJELMISTOKEHITYS 13(14) <jsp:forward> siirtää voimassa olevan pyynnön käsittelyn toiselle resurssille: staattiselle sivulle, -sivulle tai servletille. Samalla vanhan sivun suorittaminen loppuu. Syntaksi: <jsp:forward page="relativeurl" />, missä page on uuden resurssin URL-osoite. Toinen muoto toiminnalle on seuraavassa, missä siirrettävälle sivulle välitetään yksi tai useampi parametri: <jsp:forward page="urlspec"> <jsp:param name="paramname" value="paramvalue" /> </jsp:forward> <jsp:param> välittää parametreja ja niiden arvoja jsp:include, jsp:forward ja jsp:plugin -toimintojen kanssa. Syntaksi: <jsp:param name="paramname" value="paramvalue" /> <jsp:plugin> avulla voidaan sisällyttää jsp-sivuun apletteja tai javabeanin Tiedosto:.docx

HAAGA-HELIA OHJELMISTOKEHITYS 14(14) Kommentit :n kommentti on -sivujen dokumentointia varten. Kommentin sisältö jää vain -sivulle. Container hylkää sen kokonaan tehdessään -sivusta servlettiä. -- kommentoivaa tekstiä -- Tavalliseen HTML-kommenttiin voidaan kirjoittaa -elementti, joka ei näy sivulle <!-- HTML:n kommentti, jossa on -elementti = -lauseke. Kommentin loppu --> -sivuun voidaan viedä Javan kommentit seuraavasti; /* Javan usean rivin kommentti */ // Javan yhden rivin kommentti Tiedosto:.docx