Tietokannan webbikytkentä. Janne Petäjä



Samankaltaiset tiedostot
Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

ASP ja DHTML Seppo Räsänen

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

RDBMS - Yhteyskäytännöt

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Taustaa. CGI-ohjelmointi

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Ylläpito-ohje. Matematiikan oppifoorumi. Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen. Ohjaaja.

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

Digitaalisen median tekniikat. JSP ja XML

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

VERKKOSOVELLUSTEN OHJELMOINTI, JOHDATUS PHP:HEN

TIETOKANNAT JOHDANTO

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

Action Request System

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

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

Sovellusarkkitehtuurit

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Microsoft Visual Studio 2005

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

MySQL ja PostgreSQL Seminaarityö

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

EXEC SQL BEGIN DECLARE SECTION

SQL - STRUCTURED QUERY LANGUAGE

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

webissä Olet mukana Projektihuone

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

käännös käännösvaiheessa tarkasettaan linkitys

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010

Maiju Mykkänen Susanna Sällinen

ELM GROUP 04. Teemu Laakso Henrik Talarmo

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

Conversion Counter. Asennusopas

Pedacode Pikaopas. Tietokantaa hyödyntävän sovelluksen luominen


Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 Tietokantaohjelmointi Harri Laine 1. SQL:n käyttö ohjelmissa

Visma Liikkuvan työn ratkaisut Päivitysohje. Pääkäyttäjän opas

Tikon Ostolaskujenkäsittely versio SP1

Johdatusta selainohjelmointiin

Visual Basic -sovelluskehitin Juha Vitikka

Microsoft Visual Studio 2005

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

HELIA 1 (14) Outi Virkki Tiedonhallinta

Tietokanta (database)

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA. Jarkko Kähkönen


Tuotteiden tiedot: Lisää uuden tuotteen tiedot. Muuta tai poista tuotteen tiedot. Selaa kaikkien tuotteiden tietoja.

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

WWW-Sivustojen suunnittelu. Miten WWW toimii. Suunnittelun lähtökohdat

WWW-Sivustojen suunnittelu

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki

CSS - tyylit Seppo Räsänen

Helsingin yliopisto, TKTL Tietokantojen perusteet, s 2000 WWW-tietokantasovellukset Harri Laine 1. vapaamuotoiset tiedot

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Kurssimateriaali. GeoGebra

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu

Javan asennus ja ohjeita ongelmatilanteisiin

Pilvi 9.0. Arkkitehtuuri. Esimerkki arkkitehtuurit

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

Testidatan generointi

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

Dokumentin nimi LOGO:) Tampereen teknillinen yliopisto. Ryhmä XXX: Projektiryhmän nimi Projektin nimi

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

Visma Liikkuvan työn ratkaisut

Ylläpitodokumentti. Oppimistavoitteiden hallintajärjestelmä harri

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

Julkaiseminen verkossa

Tikon Web-sovellukset

Directory Information Tree

Erittäin nopea tapa saada kehitysympäristö php:lle pystyyn Voidaan asentaa muistitikulle

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

Pikaopas. Ohjeiden etsiminen Hae ohjesisältöä napsauttamalla kysymysmerkkiä.

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

SQL:N PERUSTEET MARKKU SUNI

Harri Laine 1. Digitaalisen median tekniikat, s2007 HY/TKTL, palvelinohjelmointi_1. Palvelinohjelmointi

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Tietokannat II -kurssin harjoitustyö

LINUX-HARJOITUS, MYSQL

Datanhaku www-käyttöliittymästä Mikko Parviainen, Ilmatieteen laitos / tietojärjestelmät mikko.parviainen@fmi.fi

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

Fakta versio Forecast versio

Transkriptio:

Tietokannan webbikytkentä Janne Petäjä Helsinki 7. huhtikuuta 2003 Relaatiotietokannat nyt - seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Tietokannan webbikytkentä Janne Petäjä Relaatiotietokannat nyt - seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Helsinki 7. huhtikuuta 2003, 9 sivua Internetin ja erilaisten web-sovellusta valtava kasvu on saanut aikaan tarpeen tietokannan yhdistämisestä web-sovelluksiin. Tässä seminaariraportissa käsitellään erilaisia tekniikoita, joiden avulla tietokantojen tietoihin pääsee helposti käsiksi web-sovelluksista. Käsiteltyjä tekniikoita ovat PHP: Hypertext Preprocessor (PHP), JavaServer Pages (JSP), sekä Microsoftin Active Server Pages (ASP), joista ASP käydään läpi hieman tarkemmin ja PHP sekä JSP lyhyemmin ja pintapuolisemmin. Avainsanat: tietokanta, web, WWW, CGI, PHP, ASP, JSP

Sisältö 1 Johdanto... 1 2 Tietokannat ja web... 1 3 Active Server Pages... 3 3.1 ASP ja tietokannat...3 3.2 ASP esimerkki...5 4 Muita tekniikoita... 6 4.1 PHP: Hypertext preprocessor...6 4.2 JavaServer Pages...8 6 Yhteenveto... 8 LÄHTEET... 9

1 1 JOHDANTO Internetin ja erityisesti World Wide Webin (WWW) yleistyminen on saanut aikaan tarpeen tietokantojen hyödyntämiseen web-sovellusten yhteydessä [ChR98]. Tähän tarkoitukseen on kehitetty useita erilaisia tekniikoita, kuten Sun Microsystemsin JavaServer Pages (JSP) [Sun03a], PHP: Hypertext Preprocessor (PHP) [PHP03] sekä Microsoftin Active Server Pages (ASP) [Mic03a]. Tässä seminaariesitelmässä tarkastellaan tietokantojen liittämistä web-sovelluksiin, käyttäen esimerkkinä edellä mainittuja tekniikoita. Kappaleessa kaksi tarkastellaan yleisellä tasolla tietokantojen käyttöä web-sovelluksissa. Kappaleessa kolme käydään läpi Active Server Pages-tekniikka ja kappaleessa neljä esitellään lyhyesti PHP ja JSP-tekniikat. 2 TIETOKANNAT JA WEB Tietokantoja hyödynnetään nykyisin todella monissa web-sovelluksissa. Esimerkkejä tällaisista sovelluksista ovat erilaiset verkkokaupat ja varausjärjestelmät [ElN00]. Niissä vaaditaan suurien tietomäärien tehokasta hallintaa ja käsittelyä, joka onnistuu parhaiten tietokantoja käyttämällä. Lisäksi tietokannan käyttäminen mahdollistaa rinnakkaisuuden hallinnan, mikä on olennaista web-sovelluksissa, joilla on paljon yhtäaikaisia käyttäjiä. Web-sovellukset perustuvat kuvassa 1 esitettyyn, niin kutsuttuun asiakas-palvelinarkkitehtuurin (client-server architecture). Tässä yhteydessä asiakas-palvelin-arkkitehtuurilla tarkoitetaan tilannetta, jossa suuri joukko käyttäjiä (asiakkaita) käyttää yhdellä tai useammalla KÄYTTÄJÄ KÄYTTÄJÄ KÄYTTÄJÄ KÄYTTÄJÄ Web-palvelin Tietokantapalvelin Kuva 1: Asiakas-palvelin-arkkitehtuuri

2 palvelimella sijaitsevaa web-sovellusta, joka on yhdistetty yhteen tai useampaan tietokantapalvelimeen. Nykyiset web-sovellukset perustuvat web-palvelimella sijaitseviin Hypertext Markup Language (HTML) standardin mukaisiin tiedostoihin, joista muodostettuja www-sivuja voidaan katsella selaimen (esimerkiksi Microsoftin Internet Explorer) välityksellä. WWW-sivuja ei alun perin suunniteltu käytettäväksi tietokantojen kanssa ja tästä johtuen HTML-standardi ei tarjonnut menetelmiä tietokantojen hyödyntämiseen [ChR98]. Ensimmäisiä menetelmiä tietokannan ja web-sovellusten yhdistämiseen oli Common Gateway Interface (CGI)-skriptien käyttö. CGI-skriptien ongelmana oli kuitenkin niiden valtava resurssien käyttö, sillä jokaista palvelupyyntöä varten luotiin uusi CGI-prosessi ja yhteys tietokantaan [ChR98, ElN00, PHP03]. Lisäksi CGI-skriptien käyttöön liittyy joitakin tietoturvaongelmia [ElN00]. Tietokannan tietojen ja HTML-sivujen yhdistäminen hoidetaan yleensä erilaisten skriptikieleten avulla siten, että sitä upotetaan tavallisen HTML-koodin sekaan. Oheisessa esimerkissä PHP-komentoja on upotettu HTML-tiedostoon. [PHP03]. <HTML> <BODY> <H1>Otsikko</H1> <P>Tämä on normaali tekstikappale.</p> <?php $var1 = "<P>Tämä on myös PHP:n tekstikappale.</p>"; echo "<P>Tämä on PHP:n luoma tekstikappale.</p>"; echo $var1;?> </BODY> </HTML> Web-selaimessa oleva PHP (tai JPS, ASP) tulkki muuntaa sivun HTML muotoon, siten että se näkyy sekä selaimelle (ts. selaimen HTML-tulkille) että käyttäjälle tavallisena HTML-sivuna. Yllä esitelty PHP:tä käyttävä esimerkki muunnetaan selaimessa alla olevaan muotoon. <HTML> <BODY>

3 <H1>Otsikko</H1> <P>Tämä on normaali tekstikappale.</p> <P>Tämä on PHP:n luoma tekstikappale.</p> <P>Tämä on myös PHP:n tekstikappale.</p> </BODY> </HTML> 3 ACTIVE SERVER PAGES Microsoftin kehittämä Active Server Pages tarjoaa mahdollisuuden dynaamisten HTMLsivujen luontiin Microsoft Internet Information Server (ISS)-ympäristössä [Mic03a]. ASP:n ohjelmointikieli perustuu paljolti Microsoftin Visual Basic Script-ohjelmointikieleen. Visual Basic puolestaan pohjautuu Basic-ohjelmointikieleen. Tästä johtuen ASP:n syntaksi on melko yksinkertaista verrattuna esimerkiksi C:n ja Javan syntaksiin [PHP03]. ASP-komennot erotetaan HTML-koodista <% ja %> merkein. ASP mahdollistaa myös istunnon tilan säilyttämisen, mistä on hyötyä monissa sovelluksissa. 3.1 ASP ja tietokannat ActiveX Data Objects (ADO) on ASP:n tarjoama liittymä tietokantaan [Mic03b]. ADOtietokantaliittymä perustuu oliomalleihin ja se koostuu kolmesta pääoliosta: Connection, Command ja Recordset. Connection olion kautta huolehditaan nimensä mukaisesti tietokantayhteyteen liittyvistä asioista, esimerkiksi yhteyden avaamisesta ja sulkemisesta. Lisäksi sen kautta voi suorittaa yksinkertaiset kyselyt ilman muiden ADO-olioiden käyttöönottoa. Se tarjoaa mm. seuraavat metodit: Open() (yhteyden avaaminen), Close() (yhteyden sulkeminen), Execute() (kyselyn suorittaminen), BeginTrans() (uuden transaktion aloittaminen), CommitTrans() (transaktion sitoutuminen) ja RollbackTrans() (suoritetun transaktion peruminen). Command-oliota puolestaan käytetään komentojen luomiseen ja suorittamiseen. Sitä voidaan käyttää myös tietokannan rakenteen muokkaamiseen. Kaikkien hakujen tulokset talletetaan tulosjoukko (recordset)-olioon. Tulosjoukon sisältämää tietoa voi käsitellä sen tarjoamilla metodeilla, joita ovat mm. MoveNext(), MovePrevious(), MoveFirst(), MoveLast(), AddNew(), Delete() ja Update(). Tulosjoukon voi luoda kahdella eri tavalla. Yksinkertainen tulosjoukko, jossa voidaan liikkua ainoastaan eteenpäin luodaan komennolla Set rs1 = conn1.execute( SELECT * FROM TAULU1 ). Komento luo

4 tulosjoukon rs1, joka sisältää kaikki taulu1 :en monikot. Tulosjoukon luomisessa käytetään hyväksi ennalta määriteltyä tietokantayhteyttä conn1. Mikäli tulosjoukon ominaisuuksia halutaan hallita monipuolisemmin, tulee tulosjoukko luoda eksplisiittisesti oheisen esimerkin mukaisesti. Set conn1 = Server.CreateObject( ADODB.Connection ) conn1.open DSN=123;UID=guest;PWD=demo Set rs1 = Server.CreateObject( ADODB.Recordset ) rs1.open SELECT * FROM TAULU1, conn1, adopendynamic, adlockoptimistic, _ adcmdtext ADO tarjoaa neljä erilaista kursoria ja lukkotyyppiä tulosjoukon käsittelyyn [Mic03b]. Käytettävät kursori- ja lukkotyypit tulee määritellä tulosjoukkoa avattaessa, kuten yllä olevassa esimerkissä (adopendynamic, adlockoptimistic). Seuraavaksi käydään läpi kursorit heikoimmasta voimakkaimpaan. Käytössä olevat kursorityypit riippuvat käytössä olevasta (tietokanta) palveluntarjoajasta. Eteenpäin liikkuva kursori (Forward-only cursor) on oletusarvoinen kursori, joka voi nimensä mukaisesti liikkua tulosjoukossa ainoastaan eteenpäin. Se tarjoaa parhaimman suorituskyvyn esimerkiksi tulosjoukon läpikäyntiin. Se määritellään parametrilla adopenforwardonly. Staattinen kursori (Static cursor) tarjoaa staattisen eli muuttumattoman näkymän tietokantaan. Staattisen kursorin yhteydessä voidaan käyttää kaiken tyyppisiä liikkumismetodeita, esimerkiksi metodeita MovePrevious(), MoveLast(), joita ei voi käyttää eteenpäin liikkuvan kursorin yhteydessä. Staattinen kursori määritellään parametrilla adopenstatic. KeySet-kursori eroaa kahdesta edellä esitellystä kursorista siinä, että se näkee tietokantaan kursorin käytön aikana tehdyt tietojen muutokset, mutta ei kuitenkaan lisäyksiä ja poistoja. Kaikki liikkumismetodit ovat käytettävissä. Se on lähes yhtä voimakas kuin dynaaminen kursori. Keyset-kursori määritellään parametrilla adopenkeyset. Dynaaminen kursori (Dynamic cursor) on kaikkein voimakkain ADO:n tarjoama kursori. Se näkee kaikki tietokantaan tehdyt muutokset, myös poistot ja lisäykset.

5 Kaikki erilaiset liikkumismetodit ovat luonnollisestikin käytettävissä. Dynaaminen kursori määritellään parametrilla adopendynamic. 3.2 ASP esimerkki Tarkastellaan ASP:n soveltamista oheisen esimerkin avulla. <% Set conn1 = Server.CreateObject( ADODB.Connection ) conn1.open DSN=123;UID=guest;PWD=demo q1 = SELECT * FROM Asiakas ORDER BY Nimi Set rs1 = conn1.execute(q1) %> <HTML> <BODY> <TABLE BORDER = 1> <% Response.Write <TR><TH> & rs1.fields( Etunimi ).Name & </TH> Response.Write <TH> & rs1.fields( Sukunimi ).Name & </TH></TR> do until rs1.eof Response.Write <TR> Response.Write <TD> Response.Write rs1.fields( Etunimi ).Value Response.Write </TD> Response.Write <TD> Response.Write rs1.fields( Sukunimi ).Value Response.Write </TD> Response.Write </TR> Loop rs1.close conn1.close Set conn1 = nothing %> </TABLE> </BODY> </HTML> Yllä olevassa esimerkissä luodaan HTML-sivu, joka koostuu yhdestä taulusta, jonka solujen sisältö haetaan tietokannasta. Aluksi luodaan ADODB.Connection-olion ilmentymä conn1 ja avataan se Open()-metodilla. Seuraavaksi määritellään SQL-kysely q1 ja suoritetaan se

6 Execute()-metodilla, jolloin kyselyn tulokset ovat saatavilla tulosjoukoussa (recordset) rs1. Taulun sarakkeiden otsikoiksi haetaan tietokannasta kyseisten kenttien nimet (rs1.fields.name). Seuraavaksi do until rs1.eof-silmukassa käydään läpi tulosjoukon rs1 kaikkia alkiot ja tulostetaan niistä halutut tiedot, tässä tapauksessa asiakkaan etu- ja sukunimi, taulun soluihin omille riveilleen. Silmukan suoritus lopetetaan kun kohdataan tulosjoukon loppumerkki (End Of File = EOF). Tämän jälkeen suljetaan tulosjoukko rs1 sekä yhteys tietokantaan (conn1) sekä poistetaan conn1-ilmentymän viittaus ADODB-yhteyteen. Aikaansaatu HTML-tiedosto voi tietokannan sisällöstä riippuen olla esimerkiksi tällainen: <HTML> <BODY> <TABLE BORDER = 1> <TR><TH>Etunimi</TH> <TH>Sukunimi</TH></TR> <TR><TD>Niilo<TD> <TD>Nimetön</TD></TR> <TR><TD>Pekka<TD> <TD>Peruskäyttäjä</TD></TR> </TABLE> </BODY> </HTML> 4 MUITA TEKNIIKOITA Seuraavaksi käydään läpi kaksi yleistä tekniikkaa tietokannan liittämiseksi web-sovelluksiin, PHP ja JavaServer Pages. 4.1 PHP: Hypertext preprocessor PHP on yleiskäyttöinen skriptikieli, joka on tarkoitettu pääasiassa web-sovellusten tekemiseen. [PHP03]. PHP komennot erotetaan HTML-koodista yleensä merkein <? ja?> tai <?PHP ja?>. PHP-kielen syntaksi on hyvin samankaltaista kuin C:n ja Javan syntaksi. PHP:n viimeisin versio on 4.3.1, päivätty 17 helmikuuta 2003.

7 PHP tukee kaikkia yleisimpiä tietokannanhallintajärjestelmiä (Oracle, SQL, ja IBM DB2). Tarkastellaan PHP:n käytämistä alla olevan esimerkin avulla. <HTML> <BODY> <TABLE> <?php $database = pg_connect("user=guest dbname=mydb port=12345 password=demo"); if (!$database) { exit("error"); } $result = pg_exec($database, "SELECT * FROM ASIAKAS ORDER BY SUKUNIMI"); $rivit = pg_numrows($result); $sarakkeet = pg_numfields($result); echo "<TR>\n". "<TH align='left'>etunimi</th>". "<TH align='left'>sukunimi</th>". "</TR>\n"; for ($i=0; $i<$rivit; $i++) { echo "<TR>\n"; for ($j=0; $j<$sarakkeet; $j++) { $tulos = pg_result($result,$i, $j); echo "<TD>$tulos</TD>"; } echo "</TR>\n"; }?> </TABLE> </BODY> </HTML> Esimerkissä luodaan HTML-sivu, jonka tiedot haetaan Postgres-tietokannasta. Aluksi avataan yhteys tietokantaan seuraavalla komennolla: $db = pg_connect.... Tämän jälkeen luodaan tulosjoukko komennolla $result = pg_exec($database.... Lopuksi tiedot tulostetaan taulukkoon muutamia apumuuttujia ($rivit, $sarakkeet, $tulos) avuksia käyttäen.

8 4.2 JavaServer Pages JavaServer Pages (JSP) on Sun Microsystemsin kehittämä teknologia, joka mahdollistaa WWW sivujen luomisen dynaamisesti, ennalta määriteltyjen ohjeiden perusteella [Sun03a]. Viimeisin versio on JSP:stä on 2.0. JSP tarjoaa mahdollisuuden SQL:n operaatioiden käyttämiseen javax.sql.datasource-luokan avulla [Sun03b]. JSP-koodi erotetaan HTML-koodin <% ja %> merkein [Vis03]. Alla olevassa esimerkissä on HTML-sivu, johon on upotettu JSP-koodia. JSP on peruspiirteiltään hyvin ASP:n ja PHP:n kaltainen. <html> <head> <title>my first JSP page </title> </head> <body> <%@ page language="java" %> <% out.println("hello World"); %> </body> </html> 6 YHTEENVETO Tässä seminaariesitelmässä on tarkasteltu tietokantojen käyttöä web-sovellusten yhteydessä. Edellä esitellyt tekniikat tarjoavat monipuoliset mahdollisuudet dynaamisten HTML-sivujen luomiseen. Tekniikoiden toteutustapa (HTML-koodiin upottaminen) mahdollistaa niiden käytön muiden tekniikoiden (esimerkiksi XML, CSS) yhteydessä. Tässä mielessä edellä esitellyt tekniikat ovat hyvin samankaltaisia. Merkittävin ero niiden välillä on se, että PHP ja JSP ovat avoimia tekniikoita ja toimivat lähes missä tahansa ympäristössä (Solaris, Linux, Mac OS), kun Microsoftin ASP puolestaan toimii ainoastaan Microsoft omassa ISS (Internet Information Server)-ympäristössä.

9 LÄHTEET ChR98 C.-M. Chen & N. Rishe: Development of an Open and Scalable Web-based Information Publishing System. ACM 1998. ElN00 R. Elmasri & S. B. Navathe: Fundamentals Of Database Systems, Third Edition, Addison-Wesley 2000. Sun03a Sun Microsystems, JSR-000152 JavaServer Pages TM 2.0 Specification http://jcp.org/aboutjava/communityprocess/first/jsr152/index.html [6.4.2003] Sun03b Sun Microsystems, JSR-000052 JavaServer Pages TM Standard Tag Library Specification http://jcp.org/aboutjava/communityprocess/final/jsr052/ [6.4.2003] PHP03 PHP Documentation Group, PHP Manual http://www.php.net/docs.php [6.4.2003] Mic03a Microsoft, MSDN -> MSDN Library -> Active Server Pages http://msdn.microsoft.com/library/default.asp? url=/nhp/default.asp?contentid=28000522 [6.4.2003] Mic03b Microsoft, MSDN -> MSDM Library -> Data Access -> ActiveX Data Objects 2.8 Start Page http://msdn.microsoft.com/library/default.asp? url=/library/en-us/ado270/htm/adostartpage1.asp [6.4.2003] Vis03 Visualbuilder.com: JSP Tutorial http://www.visualbuilder.com/jsp/tutorial/default.asp [6.4.2003]