1 JSP. 1.1 Innledning. 1.2 JSP og web-tjener. Innhold

Størrelse: px
Begynne med side:

Download "1 JSP. 1.1 Innledning. 1.2 JSP og web-tjener. Innhold"

Transkript

1 Tomas Holt Opphavsrett: Forfatter og HiST/AITeL Lærestoffet er utviklet for faget LO701D Interaktive Webtjenester med Java og XML 1 Resymé: I denne leksjonen skal vi på grunnleggende prinsipper i (Java Server Pages).. Innhold INNLEDNING OG WEB-TJENER ADMINISTRASJONSGRENSESNITTET TIL APPLIKASJONSTJENEREN Java Servlets eller Servlet Elementer i Uttrykk Scriptlets Innebygde objekter i Objektet out Objektet request Innledning Læreboken tar utgangspunkt i at du kan grunnleggende programmering med Java Servlets/. Det er derfor nødvendig å skrive litt om dette. Stoffet er i stor grad hentet leksjonen fra leksjoner i faget Webprogrammering med. 1.2 og web-tjener I dette faget skal vi bruke applikasjonstjeneren (du kan velge å bruke en annen web-tjener om du vil) som følger med J2EE/Java EE. Denne inneholder også en webtjener. Den enkleste måten å bruke denne tjeneren på er å gjøre som følger:

2 Lag deg en katalog med ønsket navn, heretter omtalt som katalog. I denne katalogen vil du legge -filene dine (forklaring på hvordan disse kan lages finner du i slutten av leksjonen). I tillegg må du opprette underkatalogene WEB-INF og WEB-INF/classes. Om du har egne java-klasser som skal brukes av 'ene så puttes disse i kompilert tilstand i classes-katalogen. Merk at klassene må ligge i pakker og at man vil få en underkatalog for hver del av pakkenavnet. Om vi f.eks. har en klasse som begynner slik (dvs. ligger i pakken webtjenester.leksjon2) package webtjenester.leksjon2; public class EnKlasse{} så kompileres klassen og legges i katalogen WEB-INF/classes/webtjenester/leksjon2. Når vi bruker applikasjonstjeneren er den enkleste måten å gjøre -filene tilgjengelig for klienter via manuelt å lage to xml-filer som legges i WEB-INF katalogen. Den første fila heter web.xml og skal se slik ut: <?xml version="1.0" encoding="utf-8"?> <web-app version="2.4" xmlns=" xmlns:xsi=" xsi:schemalocation=" <display-name>test</display-name> <distributable/> </web-app> Denne fila kan du kopiere. Det eneste som er interessant å endre er «display-name» test. Dette navnet bør strengt tatt være beskrivende for applikasjonen, men er helt valgfritt. Den andre fila skal hete sun-web.xml. Denne fila brukes for å fortelle hvilken adresse man må skrive i nettleseren for å finne web-applikasjonen. Fila kan se slik ut: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 8.1 Servlet 2.4//EN" " <sun-web-app> <context-root>/test</context-root> </sun-web-app> Det som er interessant å endre her er «context-root». I denne fila oppgir vi at applikasjonen nås med å skrive i nettleseren. Nå har du to måter å få lagt webapplikasjonen ut på tjeneren (begge forutsetter at du har laget riktig katalogsturktur, med nødvendige filer som beskrevet over). Den enkleste er som følger: asadmin deploydir fullstitilkatalog Dette fungerer helt fint om du ikke trenger å oppgi brukernavn til tjeneren (konfigurert ved installasjon). Om dette er nødvendig så blir kommandoen asadmin deploydir --user navnpåadminbruker fullstitilkatalog Du vil så måtte skrive passord. Du vil så få meldingen Command deploydir executed successfully side 2 av 14

3 Metode nummer to er å lage en WAR-fil. Dette gjør du med å stille deg inne i katalogen katalog. Skriv så jar cfv navnpåwar.war * WAR-fila kopieres nå til autodeploy-katalogen til applikasjonstjeneren. Denne katalogen finner du der hvor du installerte J2EE/domains/domain1/autodeploy. Når dette er gjort kan du teste applikasjonen ved å åpne nettleseren å skrive Det finnes muligheter for å automatisere denne prosessen. Ant-skript er en mulighet. Du finner denne muligheten nærmere beskrevet i skrivet Intro til J2EE-tutorial'en. Får du problemer så bør du se i loggen til applikasjonstjeneren (se neste kapittel). Det er her alle feilmeldingene kommer. System.out.println() setninger i 'ene vil også havne her (fint for debugging). 1.3 Administrasjonsgrensesnittet til applikasjonstjeneren Applikasjonstjeneren har et eget web-basert administrasjonsgrensesnitt. Dette kan brukes ved å taste inn følgende url; Tast inn brukernavn og passord (angitt under installasjonen). Administrasjonsgrensesnitt vil nå dukke opp. Figuren under viser hvordan dette ser ut. I dette grensesnittet kan vi konfigurere diverse ting som har med tjeneren å gjøre. Vi kan også fjerne web-applikasjoner som ikke skal kjøre osv. Mer detaljerte opplysninger kan man også få med å velge ønsket applikasjon i menyen på venstre side. En funksjon som fort kan bli nyttig er visning av loggen til tjeneren. Dette er nyttig når ting ikke går helt som planlagt. Velg Common Tasks > Search Log Files. Her kan du søke i ulike side 3 av 14

4 nivåer, dvs. viktighetsgrad av meldingen. Vanligvis så er info greit. Trykk search og du vil få se alle meldinger fra tjeneren. De siste vil være øverst. For hvert innslag i loggen kan du også få mer detaljerte opplysninger ved å trykke på lenken details i oversikten. side 4 av 14

5 Det tas utgangspunkt i at dere vet hva hvordan websider fungerer med en klient og en tjener, og videre at dere vet at det trengs tjener-side script for å få dynamiske websider. Hvis du har behov for å lese om dette først, anbefaler jeg deg å først se på leksjon 1 fra faget Webprogrammering med som er lagt ut sammen med denne leksjonen. Vi ønsker nå å se på hvordan vi kan bruke enkel for å få til dynamiske websider. Vi kommer bare til å se på de enkleste delene, som vi mener dere trenger for å gjøre øvinger og prosjekt. Før vi begynner med vil vi se på Java Servlets som er et sentralt tema i webprogrammering med Java Servlets er sterkt knyttet til Java Servlets, fordi en automatisk vil oversettes til en servlet før den kjøres. En servlet har mange likhetstrekk med en Java applet. I begge tilfellene lages en.java fil. Denne filen vil så kompileres og vi får en.class fil. Denne filen består av kjørbar kode. import javax.servlet.*; public class MinServlet implements Servlet De to linjene over er hentet fra en servlet. Koden implements Servlet forteller at dette er en servlet. Servlet er et interface, og alle klasser som implementerer dette vil være en servlet. En servlet er beregnet på å tjene klienter, andre klasser og til og med andre servlet er. Fordi vi konsentrerer oss om web vil servlet en fungere i samarbeid med webtjeneren. Det er webtjeneren som sørger for å ta i mot forespørsler, og disse vil sendes videre til servlet en. Servlet en sørger for å gjøre noe og sende svar tilbake. Servlet en vil derfor opptre som en del av tjeneren. Før webtjeneren kan sende forespørsler til en servlet, må den aktuelle servlet en instansieres (lages) og initialiseres. Web-tjeneren vil instansiere en servlet på samme måte som hvilken som helst annen klasse. side 5 av 14

6 Figur 2: Servlet livsyklus Figuren over beskriver hvordan livssyklusen til en servlet er. Merk at fordi MinServlet implementerer interface et Servlet er webtjeneren garantert at den kan kalle metodene init(), service() og destroy() (de andre metodene er ikke vist her av hensyn til oversikten). Se også at web-tjeneren oppretter et objekt av typen MinServlet men referansen min som refererer til dette objektet er av type Servlet, og vi kan dermed kun kalle de metodene som er beskrevet i interface et Servlet. Dette er en god løsning fordi webtjeneren ikke er interessert hvordan servlet ene er implementert, men kun hvordan servlet ene kan lages, initialiseres, kjøres og fjernes. Web-tjeneren kan derfor behandle alle servlet er likt. Når en lager en servlet beregnet på web vil det imidlertid være hensiktsmessig å arve fra klassen HttpServlet i stedet for å implementere Servlet interface et. HttpServlet er en (abstrakt) klasse som implementerer Servlet interface et. Denne klassen spesifiserer en del metoder som er veldig kjekke å ha når man jobber mot web. Særlig viktige metoder i HttpServlet er: - public void init() throws ServletException - public void service(httpservletrequest req, ServletResponse res) - public void doget(httpservletrequest req, ServletResponse res) - public void dopost(httpservletrequest req, ServletResponse res) Metodene doget() og dopost() er metoder som gjør det enkelt å ta i mot informasjon fra HTML-skjema. Her er et script som viser klokken (klokke.jsp): <HEAD><TITLE> Min første side </TITLE></HEAD> <H1> Klokka er: <%= new java.util.date() %> </H1> En servlet som gjør det samme kan se slik ut: import javax.servlet.http.*; side 6 av 14

7 import javax.servlet.*; import java.io.*; import java.util.date; public class KlokkeServlet extends HttpServlet{ public void service(httpservletrequest req, HttpServletResponse res) throws IOException, ServletException{ res.setcontenttype("text/html"); PrintWriter out = res.getwriter(); out.println(""); out.println("<head>"); out.println("<title> Min første Servlet </TITLE>"); out.println("</head>"); out.println(""); out.println("<h1> Denne servlet'en viser klokka nå: </H1>"); Date klokke = new Date(); out.println(klokke); out.println(""); out.println(""); } } Koden extends HttpServlet angir at klassen arver fra klassen HttpServlet. Som vi ser implementerer denne klassen kun en metode. De andre metodene som er spesifisert i interface et Servlet er implementert i klassen som vi arver fra, nemlig HttpServlet. Som vi ser blir det mindre kode når vi gjør dette med. Den blir også mindre kryptisk. I -koden blandes HTML-kode og script-kode i skjønn forening, mens servlet en kun inneholder javakode. All HTML-kode som skal sendes tilbake til klienten fra servlet en sendes med out.println(). Dette gjør at vi fort kan miste oversikten over HTML-koden i servlet en. Vi ser også at vi er nødt til å passe på at koden kaster de riktige unntakene. Kommandoen res.setcontenttype( text/html ) sørger for å oppgi hvilken type respons denne servlet en gir. Når det er snakk om HTML må denne være satt på denne måten. Dette fordi nettleserne oppfører seg ulikt når denne ikke er satt. Hvis ikke denne er satt vil Netscape tolke innholdet som ren tekst (i stedet for HTML) noe som gjør at websiden ikke blir som vi hadde tenkt. Vi ser også at vi må lage oss vår egen PrintWriter for å kunne sende respons tilbake til klienten. Konklusjonen er at vi kan gjøre det samme med og servlet er, men at skjuler en del av kompleksiteten for oss. Særlig gjør det enkelt å jobbe med HTML-kode! eller Servlet Vi har nå sett at forskjellen mellom servlet er og ligger i hva vi som utvikler er nødt til å gjøre. Særlig i de tilfellene det er snakk om presentasjon på websider vil være å foretrekke framfor servlet er. Grunnen til dette at vi på en enkel måte kan flette HTML-kode sammen med programkode. Dette er mye mer tungvindt med en servlet. Imidlertid så kan forholdet snu seg når det er snakk om å lage mye kode og lite presentasjon. Da vil fort oppleves som tungvindt, fordi vi ikke kan programmere på vanlig måte. I slike tilfeller vil det være mer hensiktsmessig med en servlet enn. Er dermed ubrukbar for litt mer avanserte websider? Nei. I har vi muligheten til å importere og bruke java-klasser og metoder i disse klassene direkte. Dette gjør at vi kan bruke til den delen som har med presentasjon på websiden å gjøre, mens vi kan ha egne javaklasser i de delene der det er snakk om mye programmering. Dette gjør at vi faktisk får en veldig god deling mellom presentasjon og logikk. Vi kan dermed lage presentasjonen side 7 av 14

8 (HTML-koden) for seg og logikken (programmeringskoden) for seg. Dette er særlig gunstig i større prosjekter der man vil ha profesjonelle designere som lager presentasjonen og profesjonelle programmerere som tar seg av programmeringen. De trenger da ikke å ta hensyn til hverandre. Sammensyingen av systemet gjøres ved at en legger inn en del kode sammen med HTML-koden som gjør at en får tak i klassene og metodene som programmererne har laget. gir muligheten til en god deling mellom presentasjon og logikk. side 8 av 14

9 1.3.3 Elementer i Her følger en tabell over de ulike elementene i : -element Kode Kommentar HTML-kommentar <!-- kommentar --> Kommentarer som sendes til nettleser sammen med resten av HTML-koden -kommentar <%-- kommentar --%> Kommentar som ikke sendes til nettleser Direktiv <%@page xxx %> f.eks. <%@page import= java.util.date() %> Denne kan få en til å oppføre seg på en spesiell måte. import er en av flere muligheter for å importere java-klasser som skal brukes i jsp-koden Uttrykk <%= uttrykk %> Skriver ut verdier til nettleseren Scriptlet <% java-kode %> Utfører java-kode Alle elementene over plasseres direkte inn i HTML-koden. Se f.eks. -koden tidligere i leksjonen der uttrykk brukes for å skrive ut dato og klokkeslett. Merk at det ikke er mulig å nøste -elementer. Det medfører at du f.eks. ikke kan ha uttrykk inne i en scriptlet. Vi vil nå se nærmere på uttrykk og scriptlet Uttrykk Vi har allerede brukt denne type -element i tidligere eksempel. Uttrykk starter med <%= og slutter med %>. Linjen <H1> Klokka er: <%= new java.util.date() %> </H1> fra klokke.jsp er et slikt uttrykk. Resultatet av linjen over var at klokken og datoen ble skrevet ut. Uttrykk fungerer også for primitive datatyper. F.eks. vil <%= 2+2 %> sørge for at 4 blir sendt til nettleseren. Merk deg at det ikke skal være semikolon til slutt i uttrykk. Du vil da få feilmelding (og ikke en direkte selvforklarende en)! side 9 av 14

10 Scriptlets En scriptlet er et element som starter med <% og slutter med %>. Det som settes inn i en slik scriptlet er java-kode. Vi vil derfor kontrollere hva som skjer i vår med scriptlet er. Vi kan bruke alle typer kontrollstrukturer, objekter osv. som vi er vant med fra java (vi kan også bruke vanlige java-kommentarer med // ): <% for (int i=0; i < 2; i++) { int j=i;} %> Hva vises i klienten i dette tilfellet? Ingenting. Det som skjer i scriptlet en i eksempelet er at vi går igjennom for-løkka og endrer verdien til j, men dette sendes ikke til nettleseren. Vi kan imidlertid bruke scriptlets til å sørge for output til nettleseren. Dette kan vi f.eks. gjøre ved å kontrollere HTML-koden. <% for (int i=0; i < 2; i++) { %> <H1> If I were a </H1> <% } %> RICH MAN Figuren under viser resultatet. Vi ser at linjen <H1> If I were a </H1> blir utført to ganger! Dette skjer pga. av de to scriptlet ene vi har. Vi ser at alt i mellom de to klammeparantesene { og } blir utført som en del av for-løkka! Scriptlet er brukes derfor til å styre det som skjer i en. side 10 av 14

11 1.3.4 Innebygde objekter i Følgende objekter er ferdigdefinerte objekter i : - request - response - session - config - out - pagecontext - application - page Disse objektene er direkte tilgjengelig for oss i en. Hvis jeg f.eks. vil bruke out-objektet så kan jeg gjøre det direkte i en scriptlet, slik: <% out.println( bla bla ); %> Vi vil nå se på to av disse, nemlig out og request Objektet out Vi har så langt brukt -elementet uttrykk (<%= og %>) for å sende dynamisk innhold til nettleseren. Vi har sett hvordan en blir omformet til en servlet. I servlet en blir det opprettet et out-objekt med følgende java-kode: PrintWriter out = res.getwriter(); Etter at vi har opprettet out-objektet kan det brukes til å sende HTML-kode til nettleseren. I er det et ferdigdefinert out objekt som tilsvarer out-objektet som lages i servlet en. Dette objektet er av klassen javax.servlet.jsp.writer. Denne klassen har mange metoder (se API-dokumentasjonen). Den metoden vi vil bruke mest er nok println(). Denne metoden gjør omtrent det samme som et uttrykk. Under vises et eksempel der begge disse måtene er brukt. Hvilket av eksemplene er mest oversiktlig? Eksempel med out <% boolean sann = true; String streng = sann... ; if (sann) out.println(streng); else out.println( usann.. ); %> Eksempel med uttrykk <% boolean sann = true; String streng = sann... ; if (sann) { %> <%= streng %> <% } else { %> <%= usann.. %> <% } %> side 11 av 14

12 Eksemplene over bør kunne gi en indikasjon på at det er tilfeller der det er greiere å bruke out-objektet i stedet for uttrykk. Merk at begge disse metodene vil sørge for å sende noe til klienten. Vi kan derfor godt ha HTML-kode i en out.println()-kommando eller inne i uttrykk. <% out.println( ); %> <H2> her blander vi litt </H2> <%= %> Resultatet vil for klienten se slik ut: <H2> her blander vi litt </H2> Du vil etter hvert gjøre deg opp en mening om når det er best å bruke HTML-kode, out.println() eller uttrykk Objektet request Request-objektet er et viktig objekt, da det er gjennom dette objektet vi får tilgang til informasjon fra klienten. Informasjonen kan være om klienten (f.eks. hvilken nettleser som brukes) eller det kan være informasjon som er gitt av brukeren (f.eks. via HTML-skjema). Request-objektet som vi har tilgang til implementerer interface et javax.servlet.http.httpservletrequest. Vi kan derfor finne ut hvilke metoder dette objektet tilbyr gjennom API-dokumentasjonen på Vi vil nå se på de viktigste metodene som Request-objektet gir oss. getparameter() Den mest interessante metoden vil være getparameter(). Denne tar en streng som argument. Denne strengen vil være lik navnet på det HTML-elementet som tok imot opplysningene. HTML-elementet kan være slik: <INPUT TYPE= text NAME= mitttekstfelt > Opplysningene fra HTML-elementet over får vi tak i ved å bruke denne koden i en vår: <%= request.getparameter( mitttekstfelt ) %> Merk at getparameter() returnerer en streng (String) eller evt. null dersom ikke parameternavnet finnes. Dette gjør at når vi forventer oss et tall så må strengen omformes til et tall. side 12 av 14

13 getparameternames() Metoden getparameternames() returnerer en java.lang.enumeration som inneholder alle parameternavnene fra klienten. Hver parameter er representert som en streng i denne Enumeration. Dette gir oss mulighet til å gjennomsøke alle parameternavnene fra klienten på en enkel måte. Under vises koden for hvordan alle parameternavn og tilhørende verdi skrives ut (uansett hvor mange parametere som kommer fra klienten). <%@ page import="java.util.enumeration" %> <% Enumeration opplysninger = request.getparameternames(); while(opplysninger.hasmoreelements()){ String parameternavn = (String)opplysninger.nextElement(); String parameterverdi = request.getparameter(parameternavn); out.println("parameternavn: " + parameternavn +" "); out.println("parameterverdi: " + parameterverdi + "<BR>"); } %> Det som er greit med koden over er at vi ikke på forhånd trenger å vite navnet på parametrene som kommer fra klienten. I forrige delkapittel fikk vi tak i verdien til HTML-elementet mitttekstfelt ved å oppgi navnet på dette feltet i metoden getparameter(). Vi forutsatte da at vi visste navnet på mitttekstfelt på tjenersiden. I koden over henter vi ut parameternavnene med request.getparameternames(). Så henter vi verdien forbundet med hvert enkelt parameternavn (f.eks. verdien i feltet mitttekstfelt) med getparameter() på samme måte som i forrige eksempel. Vanligvis vil vi selvsagt vite hva slags felter vi kan forvente oss. Metoden getparameternames() er imidlertid nyttig i de tilfellene der vi vil skrive ut alle opplysningene som brukeren har gitt via et HTML-skjema. Dette kan være for å opplyse brukeren om hvilke valg han har gjort, eller det kan være i forbindelse med feilfinning. getparametervalues() Til nå har vi antatt at det kun har vært en verdi forbundet med et element i en HTML-skjema. Dette er imidlertid ikke bestandig tilfelle. Noen HTML-elementer har mulighet for flere verdier samtidig. Tenk bare på valgbokser (checkbox) der du kan krysse av for flere valg samtidig. side 13 av 14

14 Koden vil være som følger: <H2> Kryss av det som passer for deg </H2> <FORM ACTION=" <INPUT TYPE="checkbox" NAME="beskrivelse" VALUE="lang"> Lang <INPUT TYPE="checkbox" NAME="beskrivelse" VALUE="kort"> Kort <INPUT TYPE="checkbox" NAME="beskrivelse" VALUE="tynn"> Tynn <INPUT TYPE="checkbox" NAME="beskrivelse" VALUE="tjukk"> Tjukk <INPUT TYPE="checkbox" NAME="beskrivelse" VALUE="smart" > Smart <INPUT TYPE="checkbox" NAME="beskrivelse" VALUE="dum"> Dum <BR> <INPUT TYPE="submit" VALUE="ok"> </FORM> Vi ser av koden at alle valgboksene har samme navn (NAME= beskrivelse ). Fordi vi kan krysse av flere valgbokser samtidig (f.eks. Lang og Tynn), vil vi ikke kunne bruke koden request.getparameter(). Hvis vi gjør det så vil vi kun få verdien til det første feltet (Lang). Vi er imidlertid også interessert i resten av verdiene. Det vi gjør da er å bruke metoden getparametervalues(). Vi bruker parameternavnet som parameter til denne metoden. Metoden returnerer en tabell med strenger som inneholder verdiene. <UL> <!-- lager en punktliste --> <% String[] verdier = request.getparametervalues("beskrivelse"); // sjekker om det er noen verdier tilgjengelig if (verdier!= null) { for (int i=0; i < verdier.length; i++){ out.println("<li>" + verdier[i]); } } %> Metoden getparametervalues() returnerer null hvis det ikke er noen verdier for det aktuelle parameternavnet. Legg merke til if-setningen i koden som sjekker om resultatet er null. Hvis vi ikke gjør denne sjekken vil vi få nullpointer exception i verdier.length hvis verdier == null (vi kan ikke kalle en metode på et objekt som ikke finnes). Under vises resultatet av -koden over når HTML-skjemaet er som vist figuren over. side 14 av 14

JavaServer Pages (JSP)

JavaServer Pages (JSP) JavaServer Pages (JSP) Forelesning 1 Klient/tjener-systemer, installasjon av tjener, og intro til JSP. Statisk Web = HTML Overskrift

Detaljer

Resymé: Leksjonen omhandler grunnlaget for JSP, nemlig Java Servlets. I tillegg gjennomgås de mest grunnleggende elementene i JSP..

Resymé: Leksjonen omhandler grunnlaget for JSP, nemlig Java Servlets. I tillegg gjennomgås de mest grunnleggende elementene i JSP.. Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Elementene i JSP Tomas Holt 18.08.2005 Lærestoffet er utviklet for faget LV193D Web-programmering i JSP 1. Elementene i JSP Resymé: Leksjonen

Detaljer

JSP. Tilstander og synkronisering

JSP. Tilstander og synkronisering JSP Tilstander og synkronisering Tilstandsinformasjon Fire måter å gjøre det på omskriving av URL cookies hidden fields (gjemte felt) tjenersidelagring (sessions) se kreativbrukavurl.jsp Kreativ bruk av

Detaljer

JSP - 2. Fra sist. Hvordan fungerer web? Tjenerside script HTML. Installasjon av Web-tjener Et enkelt JSP-script. Ønsker dynamiske nettsider:

JSP - 2. Fra sist. Hvordan fungerer web? Tjenerside script HTML. Installasjon av Web-tjener Et enkelt JSP-script. Ønsker dynamiske nettsider: Fra sist JSP - 2 Installasjon av Web-tjener Et enkelt JSP-script HTML statisk Forms Tags Ønsker dynamiske nettsider: Klientside-script/programmering Javascript, vbscript, applets Tjenerside-script/programmering

Detaljer

1 Introduksjon til web-programmering med JSP

1 Introduksjon til web-programmering med JSP side 1 av 20 Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag 1.Introduksjon til web-programmering med JSP Tomas Holt, Else Lervik Lærestoffet er utviklet av Tomas Holt for faget LV193D

Detaljer

Web-programmering med JSP Løsningsforslag leksjon 4

Web-programmering med JSP Løsningsforslag leksjon 4 Web-programmering med JSP Løsningsforslag leksjon 4 Oppgave 1 String adr = request.getremoteaddr() ; out.println(adr); Oppgave 2 Først her kommer HTML-filen med JavaScript et vi lagde i forrige leksjon.

Detaljer

Installasjonsveiledning

Installasjonsveiledning Installasjonsveiledning Magne Rodem og Jan-Erik Strøm 18. juni 2006 Innhold 1 Installasjon av Web Service 3 1.1 Krav........................................... 3 1.2 Installasjon av Sun Java System Application

Detaljer

Bruk av NetBeans i JSP-delen av Web-applikasjoner med JSP og JSF

Bruk av NetBeans i JSP-delen av Web-applikasjoner med JSP og JSF Bruk av NetBeans i JSP-delen av Web-applikasjoner med JSP og JSF Else Lervik, august 2010 (Av hensyn til JSF-delen av kurset anbefaler vi at du sørger for å ha NetBeans-versjon 6.9.) I den grad denne veiledningen

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidatnr: Eksamensdato: 17.desember 2001 Varighet: 0900-1300 Fagnummer: LV192D Fagnavn: Web-programmering med ASP Klasser: 1hsf Vekttall:

Detaljer

Web-programmering med JSP Løsningsforslag leksjon 3

Web-programmering med JSP Løsningsforslag leksjon 3 Web-programmering med JSP Løsningsforslag leksjon 3 Oppgave 1 Denne siden viser inneholder en oversikt over biler:

Detaljer

Eksamen i Internetteknologi Fagkode: ITE1526

Eksamen i Internetteknologi Fagkode: ITE1526 Datateknikk Side 1 av 8 Eksamen i Internetteknologi Fagkode: ITE1526 Tid: Mandag, 23.05.05, 9:00-12:00 Tillatte hjelpemidler: Alle trykte og skrevne hjelpemidler tillatt. Eksamen består av 3 oppgaver og

Detaljer

Løsningsskisse, eksamen J2EE og distribuerte systemer 19.mai 2004

Løsningsskisse, eksamen J2EE og distribuerte systemer 19.mai 2004 Løsningsskisse, eksamen J2EE og distribuerte systemer 19.mai 2004 Oppgave 1 RMI-tjenerobjekt (databasewrapper) A Sentral tjenermaskin med database, RMi-register og RMI-tjenerprogram vis kart gjør bestilling

Detaljer

1. NetBeans IDE: Lage en enkel mobilapplikasjon

1. NetBeans IDE: Lage en enkel mobilapplikasjon Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag NetBeans IDE: Lage en enkel mobilapplikasjon Mildrid Ljosland/Lene Hoff 09.09.2008 Lærestoffet er utviklet for faget SO350D J2ME for programmering

Detaljer

NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen..

NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen.. Løsningsforslag Eksamen V2007 Oppgave 1 NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen.. Oppgave 1.1 Klasse som pakke rinne n primitiv datatype, slik at vi kan

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidatnr: Eksamensdato: 14.desember 2007 Varighet: 0900-1200 Fagnummer: Fagnavn: Klasser: LO347D Web-applikasjoner med Java EE Nettstudenter

Detaljer

Shellscripting I. Innhold

Shellscripting I. Innhold Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Shellscripting I Tor Halsan 19.08.2010 Lærestoffet er utviklet for faget LN199D Scripting av Servere Resymé: Leksjonen er første innføring

Detaljer

En bedre verden med AJAX

En bedre verden med AJAX En bedre verden med AJAX Frode Eika Sandnes Hva er AJAX Har ikke noe med rengjøringsmidler å gjøre AJAX er et (morsomt) akronym Asynchronous Javascript And XML Henskikt: lage interaktive webapplikasjoner

Detaljer

1. Installasjon av web-tjener og teori

1. Installasjon av web-tjener og teori Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Installasjon av web-tjener og teori Tomas Holt 30.1.2006 Lærestoffet er utviklet for faget LV193D Web-programmering med JSP 1. Installasjon

Detaljer

Http- og WebServices funksjoner

Http- og WebServices funksjoner Http- og WebServices funksjoner Side 1 Innholdsfortegnelse Innholdsfortegnelse Introduksjon Hvordan bruke HTTP(S) POST/GET funksjonene i TakeCargo Sende meldinger Motta meldinger (get) Oversikt over WebServices

Detaljer

Kapittel 8: Programutvikling

Kapittel 8: Programutvikling Kapittel 8: Programutvikling Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk

Detaljer

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I Universitetet i Bergen Det matematisk naturvitenskapelige fakultet Institutt for informatikk Side 1 av 6 Bokmål Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert

Detaljer

INF Notat om I/O i Java

INF Notat om I/O i Java INF1000 - Notat om I/O i Java Tuva Kristine Thoresen, Ingrid Grønlie Guren tuvakt@ulrik.uio.no, ingridgg@ulrik.uio.no 22. oktober 2014 Dette notatet handler om I/O (input/output) i Java, og tar for seg

Detaljer

INF 1010, vår 2005 Løsningsforslag uke 11

INF 1010, vår 2005 Løsningsforslag uke 11 INF 1010, vår 2005 uke 11 Anders Brunland 11. april 2005 Oppgave 1 Oppgave 1 i kapittel 19, Rett på Java Er følgende metoder lovlige? Hovorfor/hvorfor ikke? a) void koknverter ( int mnd ) { konverterdato

Detaljer

Tomcat på Eple. Bjarte Kileng. 19. mars, 2012. HiB. Bjarte Kileng (HiB) Tomcat på Eple 19. mars, 2012 1 / 11

Tomcat på Eple. Bjarte Kileng. 19. mars, 2012. HiB. Bjarte Kileng (HiB) Tomcat på Eple 19. mars, 2012 1 / 11 Tomcat på Eple Bjarte Kileng HiB 19. mars, 2012 Bjarte Kileng (HiB) Tomcat på Eple 19. mars, 2012 1 / 11 Deploye til tjener Deploye til webtjener Alltid bygg applikasjon for samme hovedversjon av tomcat,

Detaljer

Forklaring til programmet AbstraktKontoTest.java med tilhørende filer Konto.java, KredittKonto.java, SpareKonto.java

Forklaring til programmet AbstraktKontoTest.java med tilhørende filer Konto.java, KredittKonto.java, SpareKonto.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 Forklaring til programmet AbstraktKontoTest.java med tilhørende

Detaljer

Forelesning inf Java 4

Forelesning inf Java 4 Forelesning inf1000 - Java 4 Tema: Løkker Arrayer Metoder Ole Christian Lingjærde, 12. september 2012 Ole Chr. Lingjærde Institutt for informatikk, 29. august 2012 1 Repetisjon: arrayer Deklarere og opprette

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 11. mai 2004 Varighet: Fagnummer: Fagnavn: Klasse(r): 3 timer LV197D Webprogrammering med PHP FU Studiepoeng:

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Fredag 4. desember 2015 Tid for eksamen: 14.30 (4 timer)

Detaljer

Introduksjon til objektorientert programmering

Introduksjon til objektorientert programmering Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes

Detaljer

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4 Forelesning inf - Java 4 Repetisjon: arrayer Tema: Løkker Arrayer Metoder Ole Christian Lingjærde,. september Deklarere og opprette array - eksempler: int[] a = new int[]; String[] a = new String[]; I

Detaljer

programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet "TGA"

programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet TGA Et større programeksempel Hvordan løse et reelt problem med en objektorientert fremgangsmåte En større problemstilling I uke 4 skrev vi et program for å sjekke om et gen (en tekstfil) inneholdt ordet "TGA"

Detaljer

INF1010 våren 2019 Onsdag 30. januar. Mer om unntak i Java (med litt repetisjon av I/O først)

INF1010 våren 2019 Onsdag 30. januar. Mer om unntak i Java (med litt repetisjon av I/O først) INF1010 våren 2019 Onsdag 30. januar Mer om unntak i Java (med litt repetisjon av I/O først) Stein Gjessing Lesing fra terminal og fil navn: mininn Bruk Scanner: Scanner mininn = new Scanner(); Type:

Detaljer

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy Kapittel 13 Advanced Hypertext Implementation Martin Lie Ole Kristian Heggøy 08.11.04 Forbedring av arkitektur Problem med alt i ett -løsning: Spredning av forretningslogikk. Avhengighet mellom presentasjonssider

Detaljer

Test 2 OOP. - Prøveeksamen

Test 2 OOP. - Prøveeksamen Test 2 OOP - Prøveeksamen 2007 - Viktig: Jobb med oppgavene som om det var eksamen Ikke snakk med sidemann, ta korte pauser, benytt kun skriftlige hjelpemidler du hadde tenkt til å hatt med på eksamen.

Detaljer

Socket og ServerSocket

Socket og ServerSocket Side 1 av 5, socket og klient-tjener, V. Holmstedt, HiO 2006 Dette dokumentet er revidert den 29.8.2006, kl:12:30. Det er foretatt rettelser i begge versjoner av klassen A_Server. Socket og ServerSocket

Detaljer

Et forsøk på definisjon. Eksempel 1

Et forsøk på definisjon. Eksempel 1 Et forsøk på definisjon [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michael.preminger@hioa.no) 19/08-15 Engelsklignende språk, med rigid syntaks, som kan brukes til å skrive instruksjoner

Detaljer

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert. Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen

Detaljer

1.2 Dynamiske, tjenerbaserte og interaktive nettsteder

1.2 Dynamiske, tjenerbaserte og interaktive nettsteder Kapittel 1 Innledning og motivasjon 1.1 Innledning Mye av dagens virksomhet på WWW, alt fra nettbanker til bibliotekkataloger, er dynamisk, interaktiv og databasestyrt. Alle som leser denne boken har brukt

Detaljer

INF1010 - Seminaroppgaver til uke 3

INF1010 - Seminaroppgaver til uke 3 INF1010 - Seminaroppgaver til uke 3 Oppgave 1 I denne oppgaven skal vi lage et klassehiearki av drikker. Alle klassene i hiearkiet skal implementere følgende grensesnitt p u b l i c i n t e r f a c e Drikkbar

Detaljer

Et forsøk på definisjon

Et forsøk på definisjon Et forsøk på definisjon [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 21/08-16 Engelsklignende språk, med rigid syntaks, som kan brukes til å skrive instruksjoner (eksempel

Detaljer

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:

Detaljer

INF1010 våren 2018 tirsdag 23. januar

INF1010 våren 2018 tirsdag 23. januar INF1010 våren 2018 tirsdag 23. januar I/O og litt om bruk av unntak i Java Stein Gjessing Lesing fra terminal og fil navn: mininn Bruk Scanner: Scanner mininn = new Scanner(); Type: Scanner boolean

Detaljer

6105 Windows Server og datanett

6105 Windows Server og datanett 6105 Windows Server og datanett Leksjon 9 Web, HTTP og IIS Applikasjonslaget i Internett Web protokollen: HTTP Webtjeneren IIS Utskrift med HTTP i Internett Pensum Kvisli: Windows Server og datanett, Kap.

Detaljer

Antall oppgaver: 6. Alle trykte og skrevne hjelpemidler

Antall oppgaver: 6. Alle trykte og skrevne hjelpemidler "..{ ~ høgskolen i oslo t:mne:--dtstribuerte informasjonssystemer Emnekode:SO I 34A ~,6ruppe(r):3AA.3AB,3AC,3AD,3AE,3Af I Dato:08. I 2.2003 Faglig veileder: Frode Eika Sandnes Eksamenstid:9-14 Eksamensoppgaven

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 1. desember 2010 Tid for eksamen: 14.00 18.00

Detaljer

Løsningsforslag Test 2

Løsningsforslag Test 2 Løsningsforslag Test 2 Oppgave 1.1: Interface definerer et grensesnitt som kan implementeres av flere klasser. Dette gir en standardisert måte å kommunisere med objekter av en eller flere relaterte klasser.

Detaljer

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 9. juni 2005 Varighet: 4 timer (9:00 13:00) Fagnummer: LO701D Fagnavn: Interaktive Webtjenester med Java

Detaljer

J2EE. CMP Entity Beans, Transaksjoner, JSP

J2EE. CMP Entity Beans, Transaksjoner, JSP J2EE CMP Entity Beans, Transaksjoner, JSP CMP Entity Beans Container Managed Persistence Container sin oppgave å lagre innholdet i EJB til varig lager (typisk DB). Implementasjonsklassen lages abstrakt.

Detaljer

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus // class Bygning Oppgave 1 System.out.println( Bolighus ); // class Bolighus Hva blir utskriften fra dette programmet? class Blokk extends Bolighus{ // class Blokk IN105subclassesII-1 Eksekveringsrekkefølgen

Detaljer

IN Notat om I/O i Java

IN Notat om I/O i Java IN1010 - Notat om I/O i Java Mathias J.P. Stang, Tuva Kristine Thoresen, Ingrid Grønlie Guren 17. januar 2018 Dette notatet handler om I/O (input/output) i Java, og tar for seg innlesning fra terminal,

Detaljer

notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS

notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS Mine notater Gløer Olav Langslet Sandvika VGS Et praktisk eksempel med objekter Vi kjenner alle til korktavlen med gule lapper. Vi henger opp en lapp for at vi selv eller andre skal huske eller bli minnet

Detaljer

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

INF1000 (Uke 5) Mer om løkker, arrayer og metoder INF1000 (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Praktisk informasjon Når disse

Detaljer

Objektorientert Programmering Ekstraordinær eksamen 2014

Objektorientert Programmering Ekstraordinær eksamen 2014 Objektorientert Programmering Ekstraordinær eksamen 2014 Høgskolen i Østfold 2014-01-13 Emnekode Emne ITF10611 Dato 13.01.2014 Eksamenstid 09:00-13:00 Hjelpemidler Faglærer Objektorientert Programmering

Detaljer

Fra Python til Java, del 2

Fra Python til Java, del 2 Fra Python til Java, del 2 Hvordan kjøre Java? På Ifis maskiner På egen maskin Et eksempel Array-er For-setninger Lesing og skriving Metoder Biblioteket Hva trenger vi egentlig? Å kjøre Java For å kunne

Detaljer

Jentetreff INF1000 Debugging i Java

Jentetreff INF1000 Debugging i Java Jentetreff INF1000 Debugging i Java Ingrid Grønlie Guren ingridgg@student.matnat.uio.no 11. november 2013 Kort om feilmeldinger i Java Java har to ulike type feilmeldinger som man kan få når man skriver

Detaljer

Programmeringsspråk for nybegynnere. Krav til språket. Krav til språket. Krav til språket

Programmeringsspråk for nybegynnere. Krav til språket. Krav til språket. Krav til språket Programmeringsspråk for nybegynnere Krav til språket Hva om vi laget vårt eget språk til INF1000? Programmeringsspråket må være så enkelt som mulig. (Programmering er vanskelig nok som det er.) Hvilke

Detaljer

Brukerdokumentasjon. Webservices og webklient for kodeverk/ kodeverdi verifisering

Brukerdokumentasjon. Webservices og webklient for kodeverk/ kodeverdi verifisering Brukerdokumentasjon Webservices og webklient for kodeverk/ kodeverdi verifisering Innholdsfortegnelse... 3... 3... 3... 3... 4... 4... 4... 4... 8... 9... 10!... 10 "... 11 # $... 11 1. Om systemet 1.1.

Detaljer

6105 Windows Server og datanett

6105 Windows Server og datanett 6105 Windows Server og datanett Leksjon 9 Web, HTTP og IIS Applikasjonslaget i Internett Web protokollen: HTTP Webtjeneren IIS Utskrift med HTTP i Internett Pensum Kvisli: Windows Server og datanett, Kap.

Detaljer

Del 3: Evaluere uttrykk

Del 3: Evaluere uttrykk Del 3: Evaluere uttrykk Hva skal vi gjøre? Hvordan lagre Asp-verdier Hvilke operasjoner må jeg implementere? Er operasjonen lovlig? Utføre operasjonen Strukturen til interpreten vår f.asp 3&4 Interpret

Detaljer

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; } Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; Hva skrives ut på skjermen når følgende kode utføres? int [] tallene =

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 10. juni 2009 Tid for eksamen: 9.00 12.00 Oppgavesettet

Detaljer

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 Page 1 Page 2 Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 Introduksjon Michael Preminger (michaelp@hio.no) 23/08-06 I denne forelesningen: Motivasjon: Hvorfor vi lærer å programmere

Detaljer

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; } Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere

Detaljer

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011)

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag til oppgave 7, 8, og 9 mangler Klasser og objekter (kap. 8.1-8.14 i "Rett på Java" 3. utg.) NB! Legg merke til at disse

Detaljer

Steg 1: Sette opp Java-prosjekt, og lage app-mappe og app-klasse

Steg 1: Sette opp Java-prosjekt, og lage app-mappe og app-klasse Hello world Skrevet av: Hallvard Trætteberg Kurs: Javafx Introduksjon Formålet til denne leksjonen er å lære hvordan man får satt opp et Java-prosjekt i Eclipse og kjørt et JavaFX-program. I tillegg skal

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler

Detaljer

Seminaroppgaver IN1010, uke 2

Seminaroppgaver IN1010, uke 2 Seminaroppgaver IN1010, uke 2 1.a: Skriv en klasse HeiVerden.java. Klassen skal inneholde en main- metode (se på notatet fra tidligere). Inne i main -metoden skal programmet først la brukeren oppgi en

Detaljer

Arv. Book book1 = new Book(); book1. title = "Sofies verden" class Book { String title; } class Dictiona ry extends Book {

Arv. Book book1 = new Book(); book1. title = Sofies verden class Book { String title; } class Dictiona ry extends Book { Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere

Detaljer

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidatnr: Eksamensdato: 10.desember 2008 Varighet: 0900 1200 Fagnummer: Fagnavn: LO346D Java EE og distribuerte systemer Klasse(r): NETT

Detaljer

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne Side 1 av 7 Bokmålstekst Emne: PROGRAMMERING (nytt pensum, 10 studiep.) Grupper: laa, lab, lac, lia, lib, lic Eksamensoppgaven best~r av: Tillatte hjelpemidler: Antall sider (inkl. forsiden): 7 Alle trykte

Detaljer

TOD063 Datastrukturer og algoritmer

TOD063 Datastrukturer og algoritmer TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage

Detaljer

Innføring i bruk av CGI4VB

Innføring i bruk av CGI4VB Innføring i bruk av CGI4VB Her kommer en enkel innføring i bruk av modulen CGI4VB som kan benyttes for å lage CGI programmer i Visual Basic. CGI er en forkortelse for Common Gateway Interface den kommunikasjonsprotokollen

Detaljer

Eksamen i Internetteknologi Fagkode: IVA1379

Eksamen i Internetteknologi Fagkode: IVA1379 Høgskolen i Narvik Side 1 av 5 Eksamen i Internetteknologi Fagkode: IVA1379 Tid: Mandag, 07.06.04, 9:00-12:00 Tillatte hjelpemidler: Alle trykte og skrevne hjelpemidler tillatt. Eksamen består av 4 oppgaver

Detaljer

Repitisjonskurs. Arv, Subklasser og Grensesnitt

Repitisjonskurs. Arv, Subklasser og Grensesnitt Repitisjonskurs Arv, Subklasser og Grensesnitt Subklasser Klasser i OO-programmering representerer typer av objekter som deler et sett med egenskaper. En subklasse har egenskapene til en klasse + ett sett

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Side 1 UNIVERSITETET I OSLO Kandidatnr Det matematisk-naturvitenskapelige fakultet Eksamen i: PRØVEEKSAMEN INF1000 Eksamensdag: Prøveeksamen 22.11.2011 Tid for eksamen: 12:15-16:15 Oppgavesettet er på

Detaljer

INF1010 våren januar. Objektorientering i Java

INF1010 våren januar. Objektorientering i Java INF1010 våren 2017 25. januar Objektorientering i Java Om enhetstesting (Repetisjon av INF1000 og lær deg Java for INF1001 og INF1100) Stein Gjessing Hva er objektorientert programmering? F.eks: En sort

Detaljer

Et forsøk på definisjon. Eksempel 1

Et forsøk på definisjon. Eksempel 1 [Kurssidene] [ ABI - fagsider bibin ] Introduksjon Michael Preminger (michael.preminger@hioa.no) 13/12-13 I denne forelesningen: Utvikling av dynamiske nettsteder med PHP og databaser, våren 2014 Motivasjon:

Detaljer

Administrasjon av FLT-Sunnhordland Web-side

Administrasjon av FLT-Sunnhordland Web-side Administrasjon av FLT-Sunnhordland Web-side 1. For å administrere web-sida, gå til denne linken: http://flt-sunnhordland.no/wp-admin 2. Logg inn med brukernavn: avd107 passord: 3. Etter

Detaljer

Oblig 5 Webutvikling. Av Thomas Gitlevaag

Oblig 5 Webutvikling. Av Thomas Gitlevaag Oblig 5 Webutvikling Av Thomas Gitlevaag For oppgave 1 og 2 skal dere levere en funksjonell webside på deres hjemmeområde. Dere skal også levere alle phps-filene slik at man for en hver side kan slenge

Detaljer

INF100 INNLEVERING 3 HØSTEN 2004

INF100 INNLEVERING 3 HØSTEN 2004 INF100 INNLEVERING 3 HØSTEN 2004 Krav til innlevering For at innleveringen skal godkjennes må følgende leveres: Oversikt Et dokument som inneholder en oversikt over innleveringen. Den skal inneholde en

Detaljer

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF 101 - Grunnkurs i objektorientert programmering Eksamensdag : Tirsdag 4. juni 2002 Tid for eksamen : 09.00-15.00 Oppgavesettet

Detaljer

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Formål Formålet med denne oppgaven er å gi trening i hele pensum og i å lage et større program. Løsningen du lager skal være

Detaljer

Bruk av class Scanner, FileWriter og Formatter som alternativ til EasyIO i INF1000.

Bruk av class Scanner, FileWriter og Formatter som alternativ til EasyIO i INF1000. Arne Maus, ver.2.2, august, 2013 Bruk av class, FileWriter og Formatter som alternativ til EasyIO i INF1000. Noen ønsker å bruke noen av de klassene vi finner i pakken java.util og java.io isteden for

Detaljer

INF Notater. Veronika Heimsbakk 10. juni 2012

INF Notater. Veronika Heimsbakk 10. juni 2012 INF1010 - Notater Veronika Heimsbakk veronahe@student.matnat.uio.no 10. juni 2012 1 Tilgangsnivåer 2 CompareTo Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N

Detaljer

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen? OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.

Detaljer

INF1010 våren 2017 Onsdag 25. januar. Litt om unntak i Java

INF1010 våren 2017 Onsdag 25. januar. Litt om unntak i Java INF1010 våren 2017 Onsdag 25. januar Litt om unntak i Java Stein Gjessing Nytt tema: Feilhåndtering (IO: Innlesing/Utskrift) n En metode som kan komme til å gjøre en IO-feil på fil må enten behandle denne

Detaljer

Kom forberedt til tirsdag. INF1000 Tips til obligatorisk oppgave 4. Noen generelle tips. Oblig4: Komme igang

Kom forberedt til tirsdag. INF1000 Tips til obligatorisk oppgave 4. Noen generelle tips. Oblig4: Komme igang Kom forberedt til tirsdag INF1000 Tips til obligatorisk oppgave 4 Kikk på prøveeksamen fra 2004 http://www.uio.no/studier/emner/matnat/ifi/inf1000/h 07/undervisningsmateriale/proveeksamen-H2004.pdf Tittel:

Detaljer

Brukerveiledning for ArkN4

Brukerveiledning for ArkN4 Brukerveiledning for ArkN4 Brukerveiledningen er delt inn i 3 deler: 1. Konfigurasjon av ArkN4 2. Kjøre ArkN4 3. Opprette ny database Eksemplene i dette kapitlet viser hvordan man velger de forskjellige

Detaljer

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: Varighet: Fagnummer: Fagnavn: Klasse(r): Studiepoeng: Faglærer(e): Hjelpemidler: Oppgavesettet består av:

Detaljer

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring -

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: Varighet: Emnekode: Emnenavn: Klasse(r): 3. desember 2009 0900-1100 LO348D/LN349D Web-applikasjoner med

Detaljer

Kalkulator-leksjonen (nesten ferdig)

Kalkulator-leksjonen (nesten ferdig) Kalkulator-leksjonen (nesten ferdig) Introduksjon I denne leksjonen vil du lære hvordan du kan koble FXML-koden til Java-koden og gjøre app-en levende (interaktiv)! Steg 1: Opprette app-pakke, app-klasse,

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når

Detaljer

INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF, 22. mai 23 Prøveeksamen 23 (Eksamen 2. juni 22) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Oppgave a Tegn klassehierarkiet for de 9 produkttypene som er beskrevet over. Inkluder også

Detaljer

INF1000 : Forelesning 4

INF1000 : Forelesning 4 INF1000 : Forelesning 4 Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet

Detaljer

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4 Repetisjon: nesting av løkker Kort repetisjon av doble (nestede) løkker Mer om D-arrayer Introduksjon til D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk

Detaljer

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Mandag 6. august 2012, kl. 15:00-19:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikrer Rune Sætre. Kontaktperson under

Detaljer

Fra problem til program

Fra problem til program Fra problem til program Gitt et problem, hvordan går man fram for å programmere en løsning? UML klassediagrammer Enhetstesting Dokumentasjon Som student ønsker vi oss et program som kan holde oversikt

Detaljer

Løse reelle problemer

Løse reelle problemer Løse reelle problemer Litt mer om løkker, metoder med returverdier, innlesing fra fil og strenger INF1000, uke5 Ragnhild Kobro Runde MER OM LØKKER Repetisjon fra forrige uke: while Syntaks: while (condition)

Detaljer