WWW ja servletit. Luku Johdanto
|
|
- Timo Lehtinen
- 9 vuotta sitten
- Katselukertoja:
Transkriptio
1 Luku 10 WWW ja servletit Servletti (engl. servlet) eli palvelinsovelma on Java-kielinen olio, joka toimii WWW-palvelimen yhteydessä olevassa virtuaalikoneessa. Kaikkiin WWW-palvelimiin ei kuitenkaan ole upotettu virtuaalikonetta, joten servlettejäkään ei voida suorittaa kaikkien WWW-palvelimien yhteydessä. Seuraavaksi luvussa 10.1 kerrotaan servlettien taustasta, roolista ja yleisestä toimintaideasta. Luvussa 10.2 kerrotaan mahdollisuudesta määritellä HTML-kielisille WWW-sivuille lomakkeita, joiden avulla voidaan kutsua mm. servlettejä toimittaen niille samalla käyttäjän antamia arvoja. Tämän jälkeen luvussa 10.3 tehdään katsaus servletteihin liittyviin luokkiin (mm. Servlet, HttpServlet, Http- ServletRequest, HttpServletResponse ja Cookie) ja niiden ominaisuuksiin. Servletteihin liittyvät luokat ovat paketeissa javax.servlet ja javax.servlet.http. Luvussa 10.4 esitetään tämän jälkeen kolme esimerkkiä palvelinsovelmien käytöstä. Loppukommentteja esitetään luvussa Servlettejä on käsitelty monissa kirjoissa, mutta useimmissa käsittely on pinnallista tai puutteellista. Tätä kirjoitettaessa paras kirja lienee edelleen Java Servlet Programming, Jason Hunter & William Crawford, Kyseinen kirja käsittelee jopa tiedostojen siirtämistä HTTP-protokollalla servlettioliolle Johdanto Servletti eli palvelinsovelma on siis WWW-palvelimessa suoritettavaksi tarkoitettu (tietynlainen) Javaohjelma. Servletti kuten nimikin antaa ymmärtää on tietyssä mielessä samanlainen kuin applettikin. Servlettiin ei appletin tapaan liity main -metodia, mutta appleteista poiketen sillä ei voi olla edes graafista käyttöliittymää. Servleteillä on hyvin tarkkaan määrätty rooli WWW-palvelimien yhteydessä: niiden tehtävänä on dynaamisesti generoida WWW-sivuja. Kaikki palvelimet eivät tue servlettejä. Itse asiassa servletit eivät ole edes osa JDK:ta (ei edes versiossa 1.4), vaan ne on itse asennettava kääntäjän (ja mahdollisesti WWW-palvelimen) yhteyteen. Sun on tehnyt servleteistä JSDK-kokonaisuuden, jonka voi asentaa JDK:n yhteyteen ja jonka mukana tulee jopa pienimuotoinen servlettejä tukeva WWW-palvelin. Servlettien käyttämiseen liittyvät asiat ovat valitettavasti hieman WWW-palvelinkohtaisia asioita. Servlettejä suoritetaan palvelimen oikeuksilla. Servletti voidaan luoda uudelleen jokaisen WWWpalvelimeen kohdistuvan servletin kutsun seurauksena, mutta yleensä servletit ovat luonnin jälkeen pysyvä osa palvelinta. Tämä tarkoittaa, että servletit muistavat tilansa kutsukerrasta toiseen vaikka kutsuva taho onkin palvelimen sisällä olevan virtuaalikoneen ulkopuolella. Tällainen ominaisuus on erittäin hyödyllinen raskaissa sovelluksissa servletti voi esimerkiksi käsitellä tietokantaa niin, 101
2 102 LUKU 10. WWW JA SERVLETIT että tietokantayhteyttä pidetään koko ajan auki. Palvelinkohtainen asia on myös servlettien luonti ja alustus yleensä luonti tapahtuu sellaisella konstruktorilla, johon ei liity parametrejä ja luomisen jälkeen niitä käyttävä taho kutsuu niiden init()-metodia (parametrien määräämistapa on palvelinkohtainen asia). WWW-palvelimen tehtävänä on välittää HTML-sivuja palvelinta käyttäville WWW-selaimille. HTML-sivujen ideahan, että ne ovat tekstimuotoisia sisältäen muotoilukomentoja ja esim. viittauksia muihin dokumentteihin. Viittaukset muihin dokumentteihin ovat johonkin palvelimeen kohdistuvia URL-osoitteita kuljettaessa linkkiä pitkin kyseinen URL-välitetään URL:ssä mainitulle palvelimelle ja WWW-palvelimen tapauksessa palvelin lähettää selaimelle takaisin HTML-sivun. Tällainen dokumenttien noutaminen tapahtuu HTTP-protokollalla käyttäen GET, POST, PUT tai muutamaa muuta komentoa. Huomaa, että HTTP-protokolla on yhteydetön tässä mielessä on merkittävää, että servletit ovat pysyviä olioita. Toinen tärkeä huomio tässä yhteydessä on, että nykyään WWW-selaimet eivät ole passiivisten HTML-sivujen varastoja, vaan sivuja usein tuotetaan eri menetelmillä lennosta, dynaamisesti. Servlettien idea on juuri dynaamisessa WWW-sivujen generoinnissa. Kuvassa 10.1 havainnollistetaan servlettien toimintaympäristöä. www palvelin kone www selain GET komento HTML sivu verkkoyhteys www palvelin prosessi POST komento HTML sivu doget() dopost() servletti olioita Kuva 10.1: Palvelinsovelmien suorittaminen. Toinen servlettihin liittyvä idea on, että sivujen tuottamiseen voi liittyä raskasta laskentaa, joka tällä tavalla annetaan palvelimen tehtäväksi. Servletit ovat omimmillaan ns. kolmitasoarkkitehtuurien (3-tier) toteuttamisen yhteydessä: servletit ovat välitaso selaimen ja tietokannan välissä. Servletit on osin tehty korvaamaan ns. CGI-ohjelmointi. Koska servlettejä kutsutaan HTML-sivuilta WWW-selaimen toimesta, niin herää kysymyksiä: (1) miten kutsun yhteydessä voidaan välittää tietoja ja (2) voiko servletti toimia yhteen WWWselaimessa suoritettavan appletin kanssa? Eräs tapa välittää tietoa WWW-palvelimelle ja sitä kautta servleteille ovat HTML-kielen FORM-määritykset, eli ns. lomakkeet. Näitä käsitellään tarkemmin kohdassa Idea on kuitenkin se, että voidaan antaa käyttäjän täyttää joitakin lomakkeen kohtia ja samalla määritellä, mitä URL:ää kutsutaan kun lomake on täytetty. Kutsuminen tarkoittaa mm. HTTP-protokollan mukaisen GET- tai POST-komennon lähettämistä lomakkeessa täytetyt tiedot koodautuvat automaattisesti tällaisen viestin yhteyteen ja ne voidaan servletissä saada helposti selville.
3 10.2. LOMAKKEISTA 103 Toisen kysymyksen suhteen tilanne on valitettavasti sellainen, että servlettejä ja appletteja ei ole tehty kommunikoimaan keskenään! Perusajatus on, että servlettiä kutsutaan HTTP-protokollaa käyttäen. Voidaan toimia niin, että appletti avaa HTTP-yhteyden WWW-palvelimeen (ja jäsentää tuloksen vastauksena saamastaa HTML-sivusta), mutta tuolloin appletti tavallaan itse toimii selaimena selaimen sisällä vaikkakin mahdollista, niin kovin järkevää tällainen toiminta ei ole. Itse asiassa servletin ja appletin välille on mahdollista luoda myös soketti- ja/tai RMI-yhteys, mutta tämä ei ole kovin luonnollista ajatellen servlettien toimintaympäristöä. Tuolloin servlettejä käytettäisiin ohi niiden normaalin rajapinnan. Soketti- ja RMI-yhteyksiä ei käsitellä tässä yhteydessä Lomakkeista HTML-kielen lomakkeet 1 (engl. forms) ovat tapa välittää tietoa servleteille HTTP-protokollan yli. Servlettejä kutsuvat lomakkeet näyttävät HTML-koodissa seuraavalta: <FORM METHOD="POST" ACTION=" määrityksiä </FORM> METHOD-kohdassa määritellään käytettävä HTTP-protokollan komento. Arvo POST ei ole ainoa mahdollinen itse asiassa GET :n merkitys on sama kuin POST :kin. Niiden ero on lähinnä tekninen ja syy osittain vanhentunut GET :n yhteydessä on aikoinaan ajateltu lähetettävän vain hyvin vähän muuta tietoa ja POST :n yhteydessä voidaan lähettää vaikka tiedostoja asiakkaalta WWWpalvelimelle FORM:n määrityksistä FORM-määrityksen sisällä on lisää määrityksiä, joiden avulla voidaan muodostaa HTML-sivulle jo tutuksi tulleita yksinkertaisia GUI-komponentteja. Näistä määrityksistä tehdään seuraavaksi selkoa. Tarkemmin asiat on määritelty HTML 4.01:n määrittelyssä ( Kenttä Kenttä on määre, joka on muotoa <INPUT TYPE="tyyppi" NAME="nimi" VALUE="arvo"> Idea on, että määritellään nimi -niminen resurssi, jolla on alkuarvo arvo. Edellisessä tyypillä voi olla useita arvoja ja sen mukaan määräytyy WWW-sivulle syntyvä GUI-komponentti. Komponentin tyypin mukaan määräytyy tapa, jolla arvo voi muuttua. Mahdollisia arvoja tyypille ovat TYPE="text" Esittää tekstikenttäkomponenttia, johon voidaan kirjoittaa tekstiä. TYPE="radio" Esittää radionappulaa ja NAME:n arvo kertoo ryhmän. VALUE:lla voidaan välittää tieto siitä, mikä saman ryhmän radionappuloista painettu pohjaan. 1 Ks.
4 104 LUKU 10. WWW JA SERVLETIT TYPE="checkbox" Esittää valintaruutua. Toiminta on radionappuloiden tapaista, mutta NAME:a vastaava arvo esiintyy resurssina vain jos jokin kyseisen NAME-arvon omaavista valintaruuduista on painettu pohjaan. Resurssin VALUE:n arvona ovat kaikkien niiden valintaruutujen VALUE-osien arvot, joita vastaava kyseisen niminen valintaruutu on painettu pohjaan. TYPE="submit" Erityinen nappula, jota painamalla FORM:n ACTION osa käynnistyy. VALUEosalla voidaan asettaa nappulan teksti (oletusarvoisesti submit ). TYPE="reset" Tämä muodostaa myös nappulan kuten submit, mutta tarkoituksena on palauttaa painamisen seurauksena kaikkien kenttien arvo niiden alkuarvoiksi. TYPE="image" Kuten submit, mutta nappulan sisältönä kuva. TYPE="password" Kuten text, mutta esittää salasanakenttää. TYPE="file" Esittää tiedoston nimen valintatyökalua. Valittava tiedosto lähetetään HTTP-komennon mukana MIME-koodattuna, jos lomakkeen otsikossa on on seuraava määritys: ENCTYPE="multipart/mime". TYPE="hidden" Piilokenttä vakioarvon välittämiseksi. Esimerkiksi seuraava FORM-määrittely <FORM action=" method="post"> <P> First name: <INPUT type="text" name="firstname"><br> Last name: <INPUT type="text" name="lastname"><br> <INPUT type="text" name=" "><br> <INPUT type="radio" name="sex" value="male"> Male<BR> <INPUT type="radio" name="sex" value="female"> Female<BR> <INPUT type="submit" value="send"> <INPUT type="reset"> </P> </FORM> näyttää selaimessa seuraavalta
5 10.3. SERVLETTIEN TEKEMISESSÄ TARVITTAVIA LUOKKIA 105 Valintalista Valintalista on myös jo tuttu GUI-komponentti. HTML:n FORM:ien yhteydessä se määritellään seuraavasti <SELECT NAME="nimi"> <OPTION>Vaihtoehto nro1</option> <OPTION SELECTED>Vaihtoehto nro2</option> <OPTION>Vaihtoehto...</OPTION> </SELECT> Eli, kutakin vaihtoehtoa kohti määritellään <OPTION>-rivi. NAME on samassa roolissa kuin kentän yhteydessä. Tavallaan tämä on kenttä, jonka arvo valitaan annetusta joukosta. SELECTED tarkoittaa, että yksi on jo valittuna 2. Tekstialue Tekstikentän yleistys, tekstialue, on myös osana FORM:a. Sen määrittelyn muoto on pelkistetysti alla olevan muotoinen. ROWS ja COLS saavat arvokseen positiivisia kokonaislukuja. Muita <TEXTAREA NAME="nimi" ROWS="rivit" COLS="sarakkeet"> Tässä voi antaa tekstin oletusarvon. </TEXTAREA> Itse asiassa muitakin määreitä on mm. nappula, mutta niistä ei tehdä selkoa tässä yhteydessä Servlettien tekemisessä tarvittavia luokkia Servlettien tekemissä tarvittavat luokat eivät ole osa JDK:ta (ei edes versiossa 1.4), vaan ne löytyvät mm. Sunin JSDK-paketista 3. JSDK koostuu kahdesta paketista: javax.servlet ja javax.servlet.http. Niissä on n. 40 luokkaa tai rajapintaa. Olennaisimmat näistä ja niiden väliset perimyssuhteet on esitetty kuvassa 10.2 (italics-tyyliset ovat rajapintoja). Luokka Servlet on rajapinta, jonka toteuttavat abstraktit luokat GenericServlet ja HttpServlet. Servlet-luokalla ei ole juurikaan metodeja erityisesti ei yhtään suoraan liittyvää metodia; ks. taulukko Luokalla GenericServlet on jo aika runsaasti metodeja. Ne liittyvät lähes poikkeuksetta servlettiä kutsuvan tahon tietojen havainnointiin ja ylipäänsä hallinnollisiin asioihin. Tässäkään luokassa ei ole mitään liittyvää luokan GenericServlet metodeja ei tässä yhteydessä esitetä. Taulukkoon 10.2 on kerätty joitakin luokan HttpServlet metodeja itse asiassa kaikki muut hyödylliset metodit on peritty luokan GenericServlet kautta. Jokaista HTTP-protokollan mukaista komentoa kohti on luokassa metodi. Metodien muoto on täsmälleen sama metodien semantiikasta vastaa niiden toteuttaja. Oletusarvoisesti metodit eivät tee mitään. Huomaa, että periaatteessa voisi toimia niin, että lomakkeessa kutsuu DELETE-komennolla servlettiä, mutta (tiedoston) tuhoamisen sijaan voi vapaasti määritellä, miten servlettiolio reagoi kyseiseen komentoon. Metodien semantiikan tulisi kuitenkin olla HTTP-protokollan komentojen semantiikan mukaista. 2 Itse asiassa useitakin voidaan valita; katso tarkempi SELECT:n kuvaus HTML 4.01:n määrittelystä. 3 Ks.
6 106 LUKU 10. WWW JA SERVLETIT ServletResponse Servlet ServletRequest GenericServlet HttpServletResponse HttpServlet HttpServletRequest Cookie Kuva 10.2: Muutamia servletteihin liittyviä luokkia ja niiden väliset perimyssuhteet. void init(servletconfig c) Servlettiolion alustus; kutsutaan vain kerran; c tulee palvelimelta. void service(servletrequest rq, ServletResponse rs) Servletin kutsu ohjataan ensin tähän metodiin. Taulukko 10.1: Joitakin rajapinnan Servlet metodeja. Seuraavaksi esittelyvuorossa on rajapinta HttpServletRequest (taulukko 10.3). Sillä on varsin runsaasti havainnointimetodeja, joiden kautta voidaan havainnoida sitä, mitä tietoa HTTP-komennon yhteydessä on servlettioliolle välitetty. Rajapinnan HttpServletResponse metodeita on lueteltu taulukossa Lähinnä hyödyllisiä ovat muodostettavan sivun tyypin asettaminen, piparien liittäminen palautettavaan sivuun ja getwriter, jolla otetaan käyttöön tiedostovirta, jonne muodostettava sivu tulee kirjoittaa. Edellisten lisäksi hyödyllinen luokka on myös Cookie (taulukko 10.5), jolla on lähinnä konstruktori sekä metodeja pipariin (engl. Cookie) liittyvien ominaisuuksien asettamiseksi ja havainnoimiseksi. Piparin avulla palvelin voi tallettaa asiakkaaseen (siis asiakkaana olevan selainohjelman yhteyteen) tietoa itsestään ja yhteydestään tähän asiakkaaseen. Piparit ovat erittäin hyödyllisiä servlettien yhteydessä piparien tarkoitus on tarjota palvelimelle selaimesta muistipaikka, jonne se voi taltioida haluamaansa tietoa. Piparien olennaiset ominaisuudet on selitetty taulukon 10.5 yhteydessä Esimerkkejä Esimerkki HelloServlet Esimerkissä 10.1 on esitetty HTML-tiedosto, jolla on vain yksi nappula. Nappulan painamisen seurauksena kutsutaan (bg.cs.utu.fi-koneen) servlettiä HelloServlet (ja esitetään tuloksena saatava HTMLsivu).
7 10.4. ESIMERKKEJÄ 107 protected void dodelete(httpservletrequest rq, HttpServletResponse rs) Käsittelee HTTPprotokollan mukaisen DELETE-komennon. protected void doget(httpservletrequest rq, HttpServletResponse rs) Käsittelee HTTPprotokollan mukaisen GET-komennon. protected void dohead(httpservletrequest rq, HttpServletResponse rs) Käsittelee HTTPprotokollan mukaisen HEAD-komennon. protected void dooptions(httpservletrequest rq, HttpServletResponse rs) Käsittelee HTTP-protokollan mukaisen OPTIONS-komennon. protected void dopost(httpservletrequest rq, HttpServletResponse rs) Käsittelee HTTPprotokollan mukaisen POST-komennon. protected void doput(httpservletrequest rq, HttpServletResponse rs) Käsittelee HTTPprotokollan mukaisen PUT-komennon. protected void dotrace(httpservletrequest rq, HttpServletResponse rs) Käsittelee HTTPprotokollan mukaisen TRACE-komennon. protected void service(httpservletrequest rq, HttpServletResponse rs) Tätä metodia varsinaisesti kutsutaan WWW-selaimen toimesta; komennon mukaan tämä kutsuu edellisiä. Taulukko 10.2: Joitakin luokan HttpServlet metodeja. String getparameter(string p) Palauttaa lomakkeelta lähetetyn parametrin p arvon. Enumeration getparameternames() Kaikkien komennon yhteydessä välittyjen parametrien nimet. Cookie[] getcookies() Palauttaa sisääntulevat piparit! ServletInputStream getinputstream() Binäärinen lukuvirta lähetettyyn dataan. BufferedReader getreader() Sama tekstipohjaisena. String getcontenttype() Kertoo missä MIME-muodossa komennon yhteydessä välitettävä data tulee. int getcontentlength() Datan pituus. getremotehost, getremoteaddr, getremoteuser, getmethod, getservername, getserverport,... Taulukko 10.3: Joitakin rajapinnan HttpServletRequest metodeja. Esimerkki 10.1 HelloServlet.html HTML-tiedosto, joka käynnistää yksinkertaisen servletin. <html> <head><title> HelloServlet </title></head> <body> <h2> HelloServlet:n käynnistävä sivu </h2> <form method="get" action=" <input type=submit value="push"> </form> </body> </html>
8 108 LUKU 10. WWW JA SERVLETIT ServletOutputStream getoutputstream() Palauttaa binäärisen lähtevän virran. PrintWriter getwriter() Sama merkkipohjaisena; tällä toteutetaan sivujen kirjoittaminen. void setcontenttype(string c) Asettaa ulosmenevän sivun koodaukseksi c:n; esimerkiksi text/html. void senderror(int code, String msg) Palauttaa virheilmoitussivun takaisin virhekoodilla code ja viestillä msg. void addcookie(cookie c) Asettaa piparin lähtevään virtaan. Taulukko 10.4: Joitakin rajapinnan HttpServletResponse metodeja. Kuva 10.3: HelloServlet.html:n suorittaminen. Kuvassa 10.3 on esitetty tilanne, jossa selaimella suoritetaan lomakkeen sisältävää HTML-tiedostoa HelloServlet.html. Kuvassa 10.4 on vastaavasti tilanne, jossa HTML-sivun push -nappulan painamisen seurauksena on suoritettu esimerkissä 10.2 oleva servletti. Servletti on tuottanut kuvassa olevan HTML-sivun. Kuva 10.4: Tilanne HelloServlet.html:n push -nappulan painamisen jälkeen.
9 10.4. ESIMERKKEJÄ 109 Cookie(String name, String value) Konstruktori, joka luo piparin, jolla nimi name ja arvo value (RFC 2109). boolean getsecure() Onko turvallinen yhteys käytössä? HTTPS tai SSL. Voidaan asettaa (setxxx-metodi) ja havainnoida (getxxx-metodi) useita ominaisuuksia: kommentti (Comment) mikä on tämän piparin merkitys; voimassaoloaika (MaxAge) selain ei lähetä piparia enää takaisin, jos voimassaoloaika on mennyt umpeen; URL-polku (Path) määrittää polun palvelimen sisältä; aina kun selain pyytää jotain sivua, jonka etuliitteenä on tämä polku, lähetetään tämä pipari komennon mukana; oletusarvoisesti piparit liittyvät vain siihen sivuun, jonka yhteydessä ne ensimmäisen kerran välitettiin selaimelle; domain-nimi (Domain) edellisen laajennos, pipari voidaan välittää nyt URL:ään liittyvän domain nimen mukaan; arvo (Value) merkkijono, joka sisältää sen datan, jonka palvelin haluaa piparin mukana taltioida selaimeen; nimi (Name) piparin nimi; versionumero (Version) tuetaan versioita 0 & 1 (RFC 2109); ja turvallisuus (Secure) onko pipari välitetty turvallisen yhteyden yli. Taulukko 10.5: Joitakin luokan Cookie metodeja. Esimerkki 10.2 HelloServlet.java yksinkertainen servlettiohjelma. import javax.servlet. ; import javax.servlet.http. ; import java.io. ; public class HelloServlet extends HttpServlet { public void doget(httpservletrequest rq, HttpServletResponse rs) throws IOException, ServletException { rs.setcontenttype("text/html"); PrintWriter out = rs.getwriter(); out.println("<html>"); out.println("<title> Hello there! </title>"); out.println("<body>"); out.println("<img SRC= ALT=>"); out.println("<h1> Tervehdys! </h1>"); out.println("<img SRC= ALT=>"); out.println("</body></html>"); } // doget } // class HelloServlet
10 110 LUKU 10. WWW JA SERVLETIT Esimerkissä 10.2 oleva ohjelma perii HttpServlet luokalta kaikkiin HTTP-protokollan komentoihin reagoivat metodit, mutta antaa uuden toteutuksen vain yhdelle niistä: doget :lle. Huomaa, miten metodin toteutuksessa ei välitetä lainkaan siitä, mitä servlettioliolle annetaan HttpServletRequesttyyppisen parametrin kautta, vaan servletti vain vakiomuotoisesti kirjoittaa vastauksena HTML-sivun ServletResponse-tyyppiseen parametriin liittyvän tiedostovirran kautta Esimerkki hieman monimutkaisemmasta servletistä Esimerkissä 10.3 on esitetty HTML-tiedosto, jossa käytetään useita kohdassa 10.2 kuvattuja lomakkeen komponentteja.
11 10.4. ESIMERKKEJÄ 111 Esimerkki 10.3 LomakeServlet.html HTML-tiedosto, joka käynnistää lomakkeen tiedot vastaanottavan servletin. <html> <head> <title> Lomakkeen välittämistä... </title> </head> <body> <p> Täytä seuraavat ja paina lopuksi lähetä. </p> <form method=post ENCTYPE="multipart/mime" ACTION= <input type=hidden name="piiloarvo" value="oletusarvo"> <p> Nimi: <input type=text name="kentta1" value=""> </p> <p> Osoite: <input type=text name="kentta2" value="osoite"> </p> <p> Salasana: <input type=password name="kentta3" value=""> </p> <p> Opinnot aloitettu: <select name="opinnot"> <option> muu </option> <option selected> 1999 </option> <option> 2000 </option> <option> 2001 </option> </select> <p> Valitse jokin: <input type=radio name="valinta" value="1999"> <input type=radio name="valinta" value="2000"> <input type=radio name="valinta" value="2001"> </p> <p> Valitse tiedosto: <input type=file name="tiedosto" accept="html"> </p> <p> <input type=reset value="resetoi"> <input type=submit value="lähetä"> </p> </form> </body> </html> Kuvassa 10.5 on esitetty tilanne, jossa selaimella suoritetaan LomakeServlet.html -tiedostoa. Kuvassa 10.6 on vastaavasti tilanne, jossa HTML-sivun lähetä -nappulan painamisen seurauksena on suoritettu esimerkissä 10.4 oleva servletti. Servletti on tuottanut kuvassa olevan HTML-sivun.
12 112 LUKU 10. WWW JA SERVLETIT Kuva 10.5: LomakeServlet.html:n suorittaminen. Esimerkki 10.4 Servletti, joka vain selvittää, mitä parametrien kautta sille on lähetetty. import javax.servlet. ; import javax.servlet.http. ; import java.io. ; public class LomakeServlet extends HttpServlet { public void dopost(httpservletrequest rq, HttpServletResponse rs) throws IOException, ServletException { String[] q = { "PiiloArvo", "Kentta1", "Kentta2", "Kentta3", "Opinnot", "Valinta", "Tiedosto" }; rs.setcontenttype("text/html"); PrintWriter out = rs.getwriter(); out.println("<html>"); out.println("<title> Vastaanotettiin seuraavaa </title>"); out.println("<body>"); for (int i=0; i<q.length; i++) { out.print("<p> " + q[i] + "= "); out.print(rq.getparameter(q[i])); out.println("</p>"); } out.println("</body></html>"); } // dopost } // class LomakeServlet Esimerkin 10.4 ohjelma muodostaa myös HTML-sivun, mutta esimerkistä 10.2 poiketen käyte-
13 10.5. LOPUKSI 113 Kuva 10.6: Tilanne LomakeServlet.html:n lähetä -nappulan painamisen jälkeen. tään hyväksi HttpServletRequest-tyyppisen parametrin kautta välitettyjen parametrien arvoja. Arvojen sisältö vain tulostetaan sivun sisällöksi Lopuksi Servletit ovat WWW-palvelimessa olevia olioita, joita voidaan HTTP-protokollaa käyttäen kutsua ne säilyttävät tilansa kutsusta toiseen. Koska servlettiä käytetään kautta, servlettien pääasiallinen toimintaidea on dynaaminen HTML-sivujen generointi ja toisaalta työn osittainen siirtäminen palvelimelle. Servlet applet -keskustelu on periaatteessa mahdollinen, esimerkiksi soketeilla ja RMI:llä (käytetään säikeitä apuna), mutta sellainen keskustelu ohittaa HTTP-protokollan. Keskustelun saa toki myös aikaan HTTP-protokollan avulla, mutta tuolloin appletti joutuu esimerkiksi jäsentämään tuloksen servletin lähettämästä HTML-sivusta (hyvin epäluonnollista). HTTP-protokollan yhteydettömyyteen saadaan ratkaisuja pipareista ja siitä, että servlettioliot säilyttävät tilansa (niin kauan kun WWW-palvelin on pystyssä). Piparit tuovat selkeästi erään ratkaisu useiden samanaikaisten käyttäjien erotteluun servletin kannalta. Usein servlettien avulla halutaan tallettaa (lomakkeen kautta syötettyjä) tietoja tietokantaan tai vastaavasti lukea joitakin tietoja tietokannasta. Tähän tarkoitukseen servletit soveltuvat erittäin hyvin. Eräs näppärä tapa toteuttaa sivusto servlettien avulla on olla kirjoittamatta lainkaan HTML-sivuja. HTML-sivut voidaan nimittäin koodata osaksi servlettiä. Voidaan toimia niin, että servletin doget - metodi palauttaa HTML-sivun, jossa on mukana lomake, joka kutsuu samaa servlettiä POST-menetelmällä, käyttäen siis sen dopost -metodia. Servletteihin liittyy läheisesti myös esimerkiksi JSP (Java Server Pages), mutta sitä ei tämä oppimateriaalin puitteissa käsitellä. Lopuksi pitää hieman harmillisesti todeta, että vaikka HTML-sivujen
14 114 LUKU 10. WWW JA SERVLETIT avulla on mahdollista lähettää tiedostoja MIME-koodatusti servlettioliolle, niin kyseisten tiedostojen jäsentämistä ei ole toteutettu juuri missään erityisesti Javan luokkakirjastoista ei löydy tukea asialle (tämän luvun alussa mainitussa kirjassa tosin näytetään, miten se on mahdollista tehdä).
HSMT Web-sovellustekniikoista
HSMT Web-sovellustekniikoista Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2011 p.1/29 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista
WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa
WWW ja tietokannat WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa tekstiä, kuvia, hyperlinkkejä Staattiset sivut kirjoitettu kerran, muuttaminen käsin ongelmana pysyminen ajantasalla Ylläpito hankalaa,
ICT1TN004. Lomakkeet. Heikki Hietala
Lomakkeet Heikki Hietala Lomakkeet Lomakkeita käytetään keräämään tietoa käyttäjältä ja siirtämään se palvelimelle Lomakkeen luominen ei yksin riitä, vaan pitää luoda myös lomakkeenkäsittelijä Lomakkeen
Lomake kannattaa asemoida taulukkoon: table. Silloin selitteet ja kentät saadaan sarakkeisiin. Kenttien ulkoasu voidaan määritellä tyyleillä.
Lomakkeet Lomake kannattaa asemoida taulukkoon: table. Silloin selitteet ja kentät saadaan sarakkeisiin. Kenttien ulkoasu voidaan määritellä tyyleillä. Lomakkeen tyylit kannattaa määritellä omaan, eriliseen,
582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus
582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus Sisältö Mikä on web-sovellus? Selaimen rooli web-sovelluksessa Palvelimen rooli web-sovelluksessa Aineistopyynnöt Tiedon välittäminen
JSP (JavaServer Pages) tekniikka Lähde Arvo Lipitsäinen, JSP JavaServer Pages, 2003
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
T-111.361 Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot
T-111.361 Hypermediadokumentin laatiminen -Ohjelmointi Peruskäsitys www-ohjelmoinnin kentästä Tekniikat interaktiivisuuden toteuttamiseen tekniikat tekniikat Tietokannat Juha Laitinen TKK/TML juha.laitinen@hut.fi
Lomakkeet HTML5. Elina Ulpovaara. Testaus: IE9 Firefox7 Opera11 Chrome
Lomakkeet HTML5 Elina Ulpovaara Testaus: IE9 Firefox7 Opera11 Chrome SELAIN Käyttäjä täyttää lomakkeen ja painaa lähetys-painiketta. Selain lähettää käyttäjän antamat tiedot palvelimelle lomakkeessa määrättyyn
directive attr1= value1 attr2= value2 %>
HAAGA-HELIA OHJELMISTOKEHITYS 1(14) -elementti on olemassa kolmenlaisia elementtejä: A) Direktiivit A) Direktiivejä (directive element) B) Skriptejä (scripting selement) C) Toimintoelementtejä (action
Rajapinta (interface)
1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä
koodipolku iteraation muokkauksessa Dokumentti: koodipolkuesimerkki.doc Päiväys: Projekti : AgileElephant
AgilElephant Koodipolku iteraation muokkauksessa Tekijä: Pauli Vesterinen Omistaja: ElectricSeven Aihe: Koodipolku iteraation muokkauksessa Sivu 1 of 15 Dokumentti Historia Muutoshistoria Revision Numero
Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:
Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int
WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys
WWW-OHJELMOINTI 1 WWW-ohjelmoinnin kokonaisuus SGML, XML, HTML WWW-selaimen sovellusohjelmointi WWW-palvelimen sovellusohjelmointi Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 26.10.2000
JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä
Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki
Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.
TIETOJENKÄSITTELY/PIKATAIVAL2 Tehtävä G
TIETOJENKÄSITTELY/PIKATAIVAL2 Tehtävä G 1 Tehtävänäsi on määritellä tietokantaan KisatSVNL.mdb lomake Kilpailut ohessa olevan mallin mukaan. Lomake on tarkoitettu kilpailutietojen lisäykseen, selailuun
Olio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä
LUOKAN MÄÄRITTELY Luokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion muodostimet ja luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Olion kopioiminen
Taustaa. CGI-ohjelmointi
Taustaa CGI-ohjelmointi CGI = Common Gateway Interface Hyvin yksinkertainen ja helppo tapa toteuttaa dynaamisuutta ja interaktivisuutta htmldokumentteihin Kehitetty tiedon siirtoon palvelimen ja asiakasselaimen
15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:
Digitaalisen median tekniikat xhtml - jatkuu
Digitaalisen median tekniikat xhtml - jatkuu 26.3.2004 Harri Laine 1 Lomakkeet mahdollistavat tiedon välityksen asiakkaalta (selaimesta) tiedon vastaanottajalle Vastaanottaja voi olla sähköpostiosoite
Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1
Digitaalisen median tekniikat xhtml - jatkuu 30.4.2004 Harri Laine 1 XHTML lomakkeet Lomakkeet mahdollistavat tiedon välityksen asiakkaalta (selaimesta) tiedon vastaanottajalle Vastaanottaja voi olla sähköpostiosoite
Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen
Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus
Digitaalisen median tekniikat xhtml - jatkuu
Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1 Kehykset IFRAME - elementti (inline frame) mahdollistaa kehysten upottamisen myös muihin kuin frameset.dtd:n mukaisiin dokumentteihin IFRAME toimii
Järjestelmäarkkitehtuuri (TK081702)
Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,
2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)
2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi
Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla
Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään
Helsingin yliopisto, TKTL Tietokantojen perusteet, s 2000 WWW-tietokantasovellukset Harri Laine 1. vapaamuotoiset tiedot
Relaatiotietokantaan tallennetaan määrämuotoista tietoa Vapaamuotoisen tekstin talletukseen tekstitietokannat hakuindeksejä saattavat käyttää relaatiotietokantaa tekstin tallentamiseen rivipohjainen tai
Metodien tekeminen Javalla
1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.
Sisällys. 14. Poikkeukset. Johdanto. Johdanto
Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi
Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)
Sisällys JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys Periytyminen (inheritance) Näkyvyys (visibility) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E. Hyvönen: Java Osa
Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2
26. Tiedostot 26.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöte- ja tulostusvirtojen avulla. Tiedostoja
Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta
C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Taulukot: Array Taulukko Javassa pitää aina perustaa (new) Yksinkertaisessa tilanteessa taulukon koko tiedetään etukäteen ja
2 Web-lomakkeet. HTML-lomakkeet. Lomakkeiden perusteet
Web-lomakeet ovat verkkopalvelun tekninen perusta; käyttäjän syötteen välittäminen tapahtuu käytännössä aina lomakkeiden avulla Esimerkkejä lomakkeiden käytöstä: yksinkertaiset toiminnot: palautelomake,
Taulukot. Jukka Harju, Jukka Juslin 2006 1
Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti
14. Poikkeukset 14.1
14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.
Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014
Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.
4. Luokan testaus ja käyttö olion kautta 4.1
4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään
Salasanojen turvallinen tallentaminen KeePass ohjelmalla
Salasanojen turvallinen tallentaminen KeePass ohjelmalla KeePass on vapaasti saatavilla oleva, avoimen lähdekoodin ohjelma, jonka tarkoituksena on auttaa salasanojen hallinnassa. Tämä KeePass ohje on päivitetty
1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä
OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan
10 Lomakkeet Kontrollit. 10 Lomakkeet
154 Suurin osa HTML-dokumenteista on tarkoitettu vain selailtaviksi ja katseltaviksi ilman, että katselijan rooli olisi ollut muuta kuin passiivinen. Lisäämällä dokumenttiin lomake-elementti, voidaan pieni
Sisällys. 14. Poikkeukset. Johdanto. Johdanto
Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla
812341A Olio-ohjelmointi Peruskäsitteet jatkoa
812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää
Tikon ostolaskujen käsittely
Toukokuu 2013 1 (7) 6.3.0 Copyright Aditro 2013 Toukokuu 2013 2 (7) Sisällysluettelo 1. Käyttäjäasetukset... 3 2. Yleiset parametrit... 3 3. Kierrätysasetukset... 3 4. palvelimen tiedot... 4 5. lähetyksen
16. Javan omat luokat 16.1
16. Javan omat luokat 16.1 Sisällys Johdanto. Object-luokka: tostring-, equals-, clone- ja getclass-metodit. Comparable-rajapinta: compareto-metodi. Vector- ja ArrayList-luokat. 16.2 Javan omat luokat
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely Poikkeukset Poikkeuksella tarkoitetaan yllättävää ajonaikaista tilannetta, joka
Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.
Välikoe / 20.3 Vastaa neljään (4) tehtävään. Jos vastaat 5:een, 4 huonointa arvostellaan. Kunkin tehtävän vastaus eri konseptille. 1. Pöytätesti Pöytätestaa seuraava ohjelma. Tutki ohjelman toimintaa pöytätestillä
Contact Form 7 -lomakkeen yhdistäminen Timeline Manageriin
Contact Form 7 -lomakkeen yhdistäminen Timeline Manageriin Tarvittavat Wordpress-lisäosat 1. Contact Form 7 https://wordpress.org/plugins/contact-form-7/ Mahdollistaa Contact Form 7 -lomakkeiden luomisen
Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti
Rinnakkaisohjelmointi kurssi Opintopiiri työskentelyn raportti Opintopiiri: Heikki Karimo, Jesse Paakkari ja Keijo Karhu Päiväys: 15.12.2006 Ohjelmointitehtävä C i C i : Säikeet ja kriittisen vaiheen kontrollointi
Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:
1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri
Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista
Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
MOBISITE-TYÖKALUN SISÄLTÄMÄT TOIMINNOT
MOBISITE-TYÖKALU MobiSite on työkalu matkapuhelimeen soveltuvan mobiilisivuston rakentamiseen. AIMO-järjestelmän jatkuvasti päivittyvä päätelaitetunnistus tunnistaa useimmat puhelinmallit ja mukauttaa
Osoitin ja viittaus C++:ssa
Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja
Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2
6. Tiedostot 6.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöteja tulostusvirtojen avulla. Tiedostoja voidaan
14. Poikkeukset 14.1
14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla
7. Näytölle tulostaminen 7.1
7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio
Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.
11. Rajapinnat 11.1 Sisällys Johdanto. Abstrakti luokka vai rajapinta? Rajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 12.4.2010 T-106.1208 Ohjelmoinnin perusteet Y 12.4.2010 1 / 34 Graafiset käyttöliittymät Tähän asti kirjoitetuissa ohjelmissa on ollut tekstipohjainen käyttöliittymä.
Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2
6. Tiedostot 6.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöte- ja tulostusvirtojen avulla. Tiedostoja voidaan
JavaRMI 1 JAVA RMI. Rinnakkaisohjelmoinnin projekti 1 osa C Tekijät: Taru Itäpelto-Hu Jaakko Nissi Mikko Ikävalko
JavaRMI 1 JAVA RMI Rinnakkaisohjelmoinnin projekti 1 osa C Tekijät: Taru Itäpelto-Hu Jaakko Nissi Mikko Ikävalko JavaRMI 2 Table of Contents...1 JAVA RMI...1 Yleistä...4 Arkkitehtuuri...5 Java RMI kerrosarkkitehtuuri...5
Action Request System
Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet
Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen
Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät
1. Omat operaatiot 1.1
1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2
6. Metodit 6.1 Sisällys Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen Olio-ohjelmoinnissa ohjelma
Tikon ostolaskujen käsittely
Toukokuu 2014 1 (8) Toukokuu 2014 2 (8) Sisällysluettelo 1. Käyttäjäasetukset... 3 2. Yleiset parametrit... 3 3. Kierrätysasetukset... 3 4. palvelimen tiedot... 4 5. lähetyksen aktivointi... 5 6. Eräajot
Sisällys. 11. Rajapinnat. Johdanto. Johdanto
Sisällys 11. ajapinnat. bstrakti luokka vai rajapinta? ajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen avulla.
15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien
Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely
Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely 1 Ominaisuudet Kun tutkimme työasemapohjaisia sovelluksiamme, tarvitaan joskus tietoa: mikä on käyttöjärjestelmä mikä on käytössä oleva
Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.
1 Luokka Murtoluku uudelleen Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. Sievennettäessä tarvitaan osoittajan ja nimittäjän suurin yhteinen tekijä (syt).
WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY
1 WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY 10.4.2015 Lounea Oy Tehdaskatu 6, 24100 Salo Puh. 029 707 00 Y-tunnus 0139471-8 www.lounea.fi Asiakaspalvelu 0800 303 00 Yrityspalvelu 0800 303 01 Myymälät 0800 303
Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen
Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja
9. Periytyminen Javassa 9.1
9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.
A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)
1(37) PERIYTYMINEN (inheritance) YLILUOKKA (superclass) ALILUOKKA (subclass) A) on käytännöllinen ohjelmointitekniikka = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) B) on käsitteiden
Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto
Sisällys 18. bstraktit tietotyypit Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.1 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:
18. Abstraktit tietotyypit 18.1
18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.
Android. Sähköpostin määritys. Tässä oppaassa kuvataan uuden sähköpostitilin käyttöönotto Android 4.0.3 Ice Cream Sandwichissä.
Y K S I K Ä Ä N A S I A K A S E I O L E M E I L L E LI I A N P I E NI TAI M I K Ä Ä N H A A S T E LI I A N S U U R I. Android Sähköpostin määritys Määrittämällä sähköpostitilisi Android-laitteeseesi, voit
Pedacode Pikaopas. Web-sovelluksen luominen
Pedacode Pikaopas Web-sovelluksen luominen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Netbeans-työkalulla luodaan uusi yksinkertainen web-sovellus ja testataan sen toiminta. Opas kattaa kaiken aiheeseen
HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32
HSMT Tietokannoista Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)
Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun.
StorageIT 2006 varmuuskopiointiohjelman asennusohje. Hyvä asiakkaamme! Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun. Ennen asennuksen aloittamista Varmista, että
HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.
HTML & CSS Antti Koivisto HTML (HyperText Markup Language)! HTML on sivujen kuvauskieli.! Se ei ole ohjelmointikieli.! HTML on merkintäkieli, joka koostuu monista merkintä tägeistä ().! Voidaan
AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML
AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen
Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma
1 Kompositio Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä kompositio on? Tili - : String - : double 1 1 Kayttoraja
Palvelinpuolen ohjelmointi
Palvelinpuolen ohjelmointi Staattiset ja dynaamiset web-sivut Staattiset web-sivut ovat valmiissa muodossaan palvelimella (tai paikallisesti omalla koneella). Javascript mahdollistaa paikalliset dynaamiset
815338A Ohjelmointikielten periaatteet
815338A Ohjelmointikielten periaatteet 2015-2016 VIII Poikkeusten ja tapahtumien käsittely Sisältö 1. Poikkeusten käsittelyn käsitteitä ja suunnittelukriteerejä 2. Poikkeusten käsittely C++:ssa 3. Poikkeusten
Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3
Uutisjärjestelmä Vaatimusmäärittely Versio 1.3 Sisällys 1 Muutoshistoria... 4 2 Viitteet... 4 3 Sanasto... 4 3.1 Lyhenteet... 4 3.2 Määritelmät... 4 4 Johdanto...5 4.1 Järjestelmän yleiskuvaus... 5 4.2
JSP (JavaServer Pages) tekniikka Lähde Arvo Lipitsäinen, JSP JavaServer Pages, 2003
1(63) 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
Uutta Remote Support Platform 3.1 -versiossa
What's New Asiakirjaversio: 1.0 2014-05-09 Asiakirjaversiot Seuraavassa taulukossa esitellään asiakirjan tärkeimmät muutokset. Versio Pvm Kuvaus 1.0 2014-05-09 Ensimmäinen versio 2 All rights reserved.
TIEDEJUTTUKURSSI 29.9.2011 FM VILLE SALMINEN
TIEDEJUTTUKURSSI 29.9.2011 FM VILLE SALMINEN YLEISTÄ LUENNOT (8 H) & TYÖPAJA (2 H) YHTEYSTIEDOT ville.salminen@oulu.fi VÄLINEET Tekstieditori Mieluummin Windowsin Notepad kuin esimerkiksi Microsoft Word
KIURU Tietotekniikan sovellusprojekti
KIURU Tietotekniikan sovellusprojekti Toni Hilpinen Marko Koivuniemi Jussi Mäkinen Miika Nurminen DOKUMENTIN NIMI dd.mm.yyyy Jyväskylän yliopisto Tietotekniikan laitos Kiuru-projektin tietoja Tekijät:
UCOT-Sovellusprojekti. Asennusohje
UCOT-Sovellusprojekti Asennusohje Ilari Liukko Tuomo Pieniluoma Vesa Pikki Panu Suominen Versio: 1.00 Julkinen 15. joulukuuta 2006 Jyväskylän yliopisto Tietotekniikan laitos Jyväskylä Hyväksyjä Päivämäärä
ASP ja DHTML. 27.8.2004 Seppo Räsänen
ASP ja DHTML 27.8.2004 Seppo Räsänen Liite 3 Sisällys 1 Tietokantojen käyttö sivuilla ASP-tekniikka...3 1.1. ASP ja VBScript...3 1.2. ASP ja J(AVA)Script...9 1.3. ASP ja Access...9 Lähteet...9 Himapizza-esimerkki...10
Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:
Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,
1 www-sivujen teko opetuksessa
RäsSe, Tekniikka/Kuopio Sivu 1 1 www-sivujen teko opetuksessa 1.1 Yleistä Mitä materiaalia verkkoon? Tyypillisesti verkossa oleva materiaali on html-tiedostoja. Näitä tiedostoja tehdään jollakin editorilla
JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002
JReleaser Yksikkötestaus ja JUnit Mikko Mäkelä 6.11.2002 Sisältö Johdanto yksikkötestaukseen JUnit yleisesti JUnit Framework API (TestCase, TestSuite) Testien suorittaminen eri työkaluilla Teknisiä käytäntöjä