F8 Webbteknologier 2. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

Relevanta dokument
F8 Webbteknologier 2. PHP PHP: Hypertext Preprocessor

F10 Webbteknologier. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

F10 Webbteknologier. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

F10 Webbteknologier. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

Dynamiska webbsidor. F10 Webbteknologier EDA095 Nätverksprogrammering. Serversidan eller klientsidan? Common Gateway Interface

Karlstads Universitet, Datavetenskap 1

F8 Webbteknologier 1. Dynamiska webbsidor

DOM (Document Object Model) är modellen efter vilken en webbläsaren är uppbyggd. Alla objekt/element i webbläsaren finns hierarkiskt ordnade i DOM.

Introduk+on +ll programmering i JavaScript

PHP. Dynamiska webbsidor

PHP. TNMK30 - Elektronisk publicering

JAVASCRIPT. Beteende

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

Avancerade Webbteknologier

E12 "Evil is going on"

Programmeringteknik. Planering MÅL LABB: MOMENT LAB4 HTML - EXEMPEL HTML. Webbdelen

Introduktion till användning av linux-servern sledge och några övningsuppgifter

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

Introduktion HTML och PHP 732G16 Databaser design och programmering

Innehåll. JavaScript - Grundkurs. Vad är JavaScript? Vad är JavaScript? Vad behövs? Lite historia

Webbservrar, severskript & webbproduktion

Matematisk Modellering

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Webbprogrammering. Sahand Sadjadee

Olika slags datornätverk. Föreläsning 5 Internet ARPANET, Internet började med ARPANET

E13 "Behind the Wild"

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Programmering för språkteknologer II, HT2014. Rum

Innehåll. PHP Grundkurs. Introduktion till PHP. Kurslitteratur. Webbserver. Lite historik. PHP Grundkurs 1

Namn: (Ifylles av student) Personnummer: Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

Elektronisk publicering TNMK30

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

Arrayer. results

Webbprogrammering - 725G54 PHP. Foreläsning II

Introduktion till PHP

E11 "Protection" Föreläsning 11, HT2014 Säkerhet, tillgänglighet. Johan Leitet. Kurs: 1dv403 Webbteknik I

Nya webbservern Dvwebb.mah.se

E13 Behind the Wild. Dagens agenda. Cookies Context/ändra context Augmentation (förstärkning) Klassiskt arv Att låna metoder Namespaces Postludium

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

729G28. Webbprogrammering och databaser. Introduktion till webbutveckling med PHP. Jakob Pogulis Institutionen för Datavetenskap (IDA)

JavaScript. En Introduktion

JS & beteende. TNMK30 - Elektronisk publicering

Modul 8 Hantering av indata

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

1ME323 Webbteknik 3 Lektion 6 API. Rune Körnefors. Medieteknik Rune Körnefors

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Föreläsning 4 Serverskript PHP Validering av data med serverskript Formulär

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Föreläsning 3-4 Innehåll

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Användarhandledning Version 1.2

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Typkonvertering. Java versus C

E12 "Evil is going on"

Databaser på webben. Revision Johan Näsholm, johan@nasholm.com

! HTML Formulär! JavaScript! Syntax! Events! DOM. ! URL variabler i en query string (get) ! HTTP post request (post)

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

Webbprogrammering. Introduktion till PHP. Christian Ohlsson

PHP. PHP: Hypertext Preprocessor

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

JavaScript En Introduktion

Dynamisk HTML JavaScript och webbläsarens objektmodell

TDP013. Webbprogrammering och interaktivitet. AJAX, CORS & jquery. Marcus Bendtsen Institutionen för Datavetenskap (IDA)

Föreläsning 2. Operativsystem och programmering

Innehåll. MySQL Grundkurs

Webbprogrammering TDDD52

L04.1 Marodören. Inledning. Mål. Genomförande. Uppgift 1 Hello World. Moment I

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

Allmänna anvisningar: Skriv dina svar på svarsblanketten (se nästa sida) Markera och ange alla svar tydligt och entydigt efter instruktionerna.

ASP.NET Thomas Mejtoft

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:

Tentamen Nätverksprogrammering Lösningsförslag

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Introduktion till MATLAB, med utgångspunkt från Ada

TDP013 Node.js, JSCoverage, Mocha. Marcus Bendtsen Institutionen för Datavetenskap

Modul 6 Webbsäkerhet

Objektorienterad programmering i Java I

Webbsidor och webbservrar

Föreläsning 6: Metoder och fält (arrays)

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Appar med ryggrad. Introduktion till JavaScriptramverket Backbone

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Föreläsning 10. ADT:er och datastrukturer

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Tentamen Grundläggande programmering

EDA095 HTML. Per Andersson. April 26, Lund University Innehåll: HTML, CSS, DOM, JavaScript

Labora&on 8 Formulär övningar/uppgi6er

Extramaterial till Matematik Y

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

Exemple på Tentauppgifter Webbprogrammering

Kursplanering Utveckling av webbapplikationer

JavaScript. DOM Scripting

Ajax TruClient. Erfarenheter, tips och trix från Swedbank IT. Christian Gerdes Performance Engineer, LIGHTS IN LINE AB

Matematisk Modellering

Transkript:

F8 Webbteknologier 2 EDA095 Nätverksprogrammering Roger Henriksson Datavetenskap Lunds universitet

PHP PHP: Hypertext Preprocessor Skriptspråk särskilt lämpligt för webbapplikationer. Öppen, gratis, programvara. HTML-kod med PHP-taggar inlagda där dynamiskt beteende behövs (jämför JSP). Vanlig och mycket spridd teknik: CMS Content Management Systems (ex LTH). Wiki Många wikiimplementationer i PHP. Webbkopplingar till databassystem, t.ex. webbshopgränssnitt. URL: www.php.net 2

Struktur/taggar HTML-kod med PHP-taggar insprängda. <?php?>... All text utanför PHP-taggarna skickas oförändrad till klienten. Filändelse:.php 3

Datatyper Dynamiska typer, ingen variabeldeklaration behövs. boolean Sant/falskt. integer Heltal. float Flyttal. string Strängar. array Vektorer. object Objekt. resource Referens till externa resurser, t.ex. filer. NULL Tomt värde. Variabler inleds med $, exempel: $value. 4

Språkkonstruktioner Några språkkonstruktioner: $a = $b*3; // Tilldelning, uttryck echo Svar:.$a. \n ; // Utskrift, strängkonkatenering if ($a==0) {... } else {... } // If-sats for($i=0;$i<10;$i++) {... } // For-sats 5

Vektorer Vektorer är associativa! (Egentligen en ordered map.) Index kan vara av godtycklig typ. $arr = array(); // Tom array $arr[ roger ] = duktig ; $arr[2] = 45; $arr[] = NP ; // Index: högsta numeriska // index + 1 Iterator över vektorn: foreach($arr as $key => $value) { } echo $key. :.$value. \n ; 6

Funktioner <?php function sum($arg_1, $arg_2, $arg_3) { }?> echo Example function\n. $retval = $arg_1+$arg_2+$arg_3; return $retval; Summan är: <?php echo sum(2,5,8);?> 7

Biblioteksfunktioner Stor mängd inbyggda biblioteksfunktioner. Betoning på webbrelaterade uppgifter. Med mera... Audio Autentisering Datum/tid Komprimering Kreditkortsbetalningar Filhantering Teckenkodning Stränghantering Bildmanipulering Mail Matematik Nätverk Kryptering Databaser (SQL) Processhantering 8

Koppling till webbservern Request Parametrar accessas genom superglobala variabler, t.ex: $_GET $_PUT $_COOKIE Parametrar vid GET-anrop. Vektor. Parametrar vid PUT-anrop. Vektor. Cookies. Vektor. Response HTML-kod skrivs till standard output. Cookies: setcookie(...); 9

En elektronisk shoppinglista Fallstudie: Implementera en webbaserad tjänst för att hantera en familjs gemensamma shoppinglista. Lista över dagligvaror som saknas i hemmet. Enkel inläggning av varor från Internetanslutna enheter. Stöd både för att skapa listan och vid shoppingtillfället. DEMO shoppinglist.php 10

Design Lagring Textfil med en rad per artikel. Webbsida Formulär med: Checkbox för varje artikel. Textinmatningsfält för ny artikel Implementation PHP-skript: 1. Läs in artiklar från fil. 2. Om checkbox ikryssad: tag bort motsvarande artikel. 3. Om textinmatningsfält ifyllt: lägg till artikel. 4. Om ändringar gjorts: spara artiklar på fil. 5. Skapa nytt formulär med aktuella artiklar. 11

JavaScript Skriptspråk för webbläsare Syntax som påminner lite om Java. I övrigt har JavaScript och java inget med varandra att göra. Historia Skapat av netscape. Ursprungligen kallat LiveScript. Fick namnet JavaScript i Netscape 2.0. Microsofts variant, JScript, nästan kompatibelt. 12

Vad kan JavaScript göra? JavaScript kan t.ex: Göra beräkningar på tal och strängar. Modifiera utseende och innehåll i ett webbläsarfönster. Skapa nya fönster och ladda in nya sidor. Manipulera HTML-element på en webbsida, t.ex. innehåll i ett formulär. JavaScript kan inte: Kommunicera direkt via nätverket (via UDP/TCP). Använda filsystemet. 13

JavaScript och webbsidor JavaScript kan läggas in som en del av HTML-koden för en webbsida. JavaScript kan antingen fås att exekvera när webbsidan laddas, eller när någon speciell händelse inträffar. JavaScript vid laddning av en webbsida Skriptet körs i samband med att webbsidan ritas upp. Utdata från skriptet kompletterar den övriga HTML- koden före uppritning. Händelsestyrda JavaScript Skriptet körs när en viss händelse inträffar, t.ex. att användaren klickar i webbläsarfönstret. Kan påverka webbläsarfönster eller någon HTML-komponent. 14

<script>-tagen HTML-kod för att definiera ett JavaScript Syntax: <script>... </script> eller <script language="javascript">... </script> Generell HTML-tag för skript oavsett skriptspråk. JavaScript är oftast standardskriptspråk. Andra möjligheter: VBScript. 15

Hello, world! <html> <head><title>helloworldscript</title></head> <body> <h1>a greeting from our JavaScript:</h1> <script language="javascript"> document.write("hello, World!"); </script> </body> </html> 16

Datatyper Variabeldeklaration dynamiska typer! var name; Typer tal Numeriska tal, både heltal och flyttal. sträng Texter ungefär som i Java. boolean Sant eller falskt. undefined Värde oinitialiserade variabler har. null Tomt värde. Dessutom finns vektorer och objekt. 17

Några satskonstruktioner Tilldelning a = a + 3; If-sats if (a>b) { document.writeln("tal A är störst!"); } else { document.writeln("tal A är INTE störst!"); } For-sats for(i=1;i<=10;i++) { document.writeln(i+" "+i*i); } Väldigt likt Java! 18

Funktioner Precis som man kan definiera metoder i Java kan man definiera funktioner i JavaScript. <script language="javascript"> function printsquare(x) { document.writeln(x+" "+x*x+"<br>"); } var i; for(i=1;i<=30;i++) { printsquare(i); } </script> Kan till exempel användas för att beskriva vad som ska hända när någon viss händelse inträffar. DEMO - Kvadrattabell (square.html) 19

Standardobjekt För att påverka omvärlden, t.ex. webbläsarfönstret, används olika s.k. standardobjekt. Exempel: navigator window document Standardklasser Date, Math, Array. Tillhandahåller information om webbläsaren. Funktionalitet för att öppna/påverka fönster. Motsvarar HTML-dokumentet i webbläsaren och ger tillgång till alla HTML-komponenter i detta, t.ex. formulär. 20

Formulär och JavaScript JavaScript är bland annat bra för att behandla inmatade data i ett HTML-formulär. Låt användaren fylla i ett värde samt anropa sedan JavaScript-funktionen "compute()": <form name="inputform"> <input name="field" type="text"> <input type="button" value="enter!" onclick="compute()"> </form> Ett JavaScript kan nå fälten i formuläret via "document"- objektet: var uservalue; uservalue = document.inputform.field.value; DEMO - Gissa talet (game.html) 21

Animeringar Man kan ange att JavaScriptkod ska köras efter en viss fördröjning eller med ett regelbundet intervall. Kan t.ex. användas för enklare animeringar. Exempel: var buttonnotpressed = settimeout("window.alert( Tryck på OK för att fortsätta! )",10000); cleartimeout(buttonnotpressed); var change = setinterval("changeimage()",2000); clearinterval(change); 22

Ajax Asynchronous JavaScript and XML Samling av relaterade tekniker för interaktiv webb. Förbättrar svarstider genom att HTML-sidor genereras lokalt mha JavaScript istället för på servern. Endast små datamängder överförs. Data/skript överförs asynkront i bakgrunden. Bygger på JavaScript och (ofta, men inte alltid) XML för överföring av data till/från servern. Sidans struktur kan manipuleras dynamiskt. Exempel: Sidor med sökresultat. Endast själva sökresultatet behöver överföras/genereras och bytas ut på sidan. 23