Active Server Pages. Föreläsning 5. Exempel. Exempel. Exempel: Javascript. Klient- och serverscript. Active Server Pages (ASP)

Relevanta dokument
Dagordningen. Internetprogrammering. Om talaren. Klient dynamik. Webbservrar och Active Server Pages

Innehåll. Föreläsning 3. javax.naming.context. javax.sql.datasource. Vad är JDBC? Java Naming and Directory Interface(JNDI) Viktigaste metoder:

F8 Webbteknologier 1. Dynamiska webbsidor

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

Karlstads Universitet, Datavetenskap 1

WWW. Exempel på klientsidan. Överföring av en html-fil. Snyggare variant. Verkligt format. Meddelandeformat för begäran HTTP

JAVASCRIPT. Beteende

Webbsidor och webbservrar

F8 Webbteknologier 2. PHP PHP: Hypertext Preprocessor

Statistik från webbplatser

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

Avancerade Webbteknologier

Webbteknik II. Föreläsning 5. Restless farewell. John Häggerud, 2011

Webbprogrammering. Sahand Sadjadee

Introduktion HTML och PHP 732G16 Databaser design och programmering

Webbservrar, severskript & webbproduktion

E12 "Evil is going on"

ADO.NET Murach Kapitel 17-20

Lite mer om CGI-programmering

Översikt över Visual Basic

Introduk+on +ll programmering i JavaScript

Appar med ryggrad. Introduktion till JavaScriptramverket Backbone

ASP.NET Thomas Mejtoft

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

Statistik från webbplatser

Användarhandledning Version 1.2

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

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

Inneh ll. CGI och CGI-programmering. Common Gateway Interface. Common Gateway Interface. Mera dynamisk WWW. Kompletterande l sningar

Visual Basic, en snabbgenomgång

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

Uniform Resource Locator (URL) JavaServer Pages - JSP. Webbklienter. Webbserver. Hypertext Transfer Protocol (HTTP) HTTP Request

Webbprogrammering grunder

Klientprogrammering mot databaser

Modul 8 Hantering av indata

Webbprogrammering grunder

Modul 6 Webbsäkerhet

Säkerhet i applikationslagret och slaget om webben. John Wilander, Omegapoint, Rätt säkerhet, maj 2010

Webbprogrammering - 725G54 PHP. Foreläsning II

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

Creo Customization. Lars Björs

Lektion 5 HTML, CSS, PHP och MySQL

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

Internationalisering/lokalisering på webben

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Vad gör européer på dagarna? Anders Kraftling SAS-ansvarig Statistiska Centralbyrån

Säkra webbapplikationer. John Wilander, Omegapoint, KTH maj 2010

Arrayer. results

PHP - Fortsättning. PHP och MySQL

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

Småföretags elektroniska handel över Internet

Exemple på Tentauppgifter Webbprogrammering

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

"HTML5 och relaterade API:er"

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

ASP.NET MVC. Copyright Mahmud Al Hakim Innehåll

Kursplanering Utveckling av webbapplikationer

JavaScript. En Introduktion

Web Services. Cognitude 1

INTRODUKTION TILL ANGULAR JS

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

Surfning. Webbklienter och webbservrar. Specialskrivna webbservrar. Kommunikation med sockets

ASP.NET Web Pages. Copyright Mahmud Al Hakim Först lite Classic ASP :-)

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

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

Asp.net mvc intro PER KVARNBRINK,

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

JavaScript. DOM Scripting

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

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

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.

Samlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering!

PHP. PHP: Hypertext Preprocessor

JavaScript in SharePoint and not just for Apps. Wictor Wilén

Server-kod. TDDD80 Mobila och sociala applikationer

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

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Objektorienterad Programkonstruktion. Föreläsning 10 7 dec 2015

JS & beteende. TNMK30 - Elektronisk publicering

Objektorienterad Programmering (OOP) Murach s: kap 12-16

Webbaserade informationssystem med PHP och databaser

Webbprogrammering. Introduktion till PHP. Christian Ohlsson

Du skall naturligtvis visa körexempel med output där det behövs i din rapport!

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

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

Alternativet är iwindows registret som ni hittar under regedit och Windows XP 32 bit.

Essential Php Security Författare: Shiflett, Chris Antal sidor: 124 Förlag: O'Reilly

Webbaserade informationssystem med PHP och databaser

Datahantering vid dynamiska webbteknologier

1. PLSQL 2 2. Select into

Björn Andersson Martin Meijer ASP och PHP En jämförelse mellan de båda teknikerna

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

Modern webbutveckling. av Robert Welin-Berger

PHP. TNMK30 - Elektronisk publicering

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

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: Mottagare: Visi Web kund

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Typkonvertering. Java versus C

Support Manual HoistLocatel Electronic Locks

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

Transkript:

Active Server Pages Föreläsning 5 Active Server Pages (ASP) Sidorna ska sluta på.asp Ska ligga i en virtuell katalog, åtkomstbar utifrån Betraktas via en brower, inte via filsystemet Koden som skall köras på servern skrivs innanför... taggar Väldigt likt jsp Exempel <HTML> <HEAD><TITLE>Example</TITLE></HEAD> <BODY> Comments goes here strgreetingmsg = Hello Hello.. It is now _ & Time() & on the server. Response.Write strgreetingmsg </BODY> </HTML> Indikerar för interpretatorn att koden fortsätter på nästa rad Exempel Vad skickas till klienten? <HTML> <HEAD><TITLE>Example</TITLE></HEAD> <BODY> Helllo. It is now 10:42:43 on the server </BODY> </HTML> Klient- och serverscript Klientscript Vanligtvis javascript Användaren kan se koden under View source i sin browser Klientscript brukar typiskt användas till felkontroll Finns det ett @-tecken i den angivna emailadressen? Är alla obligatoriska fält i formuläret i fyllt? Hur många tecken finns det kvar att skriva i mitt SMS-medelande Även öppna nya browserfönster, gå tillbaka till föregående sida, etc. Serverscript asp-kod Körs på server innan resultatet skickas till klienten Är inte synligt för användaren Används vanligtvis för databasinteraktion och skapar HTML-sidorna därefter Exempel: Javascript <head><title>exempel</title></head> <script language="javascript"> function correctinput(){ if(document.test.deposit.value>0 && document.test.time.value>0) document.test.submit(); else alert("felaktig inmatning!"); } </script> <body> <center> <h2>sparandeberäkning</h2> <form name="test" action="exempel.asp"> <p>insättning första året: <input type=text name="deposit"> <p>antal år att förräntas: <input type=text name="time"> <p><input type=button onclick="correctinput()" value="beräkna"> </form> </center> </body> 1

Component Object Model (COM) COM definierar ett gränssnitt mellan objekt, dvs hur objekt kommunicerar med varandra Distributed COM (DCOM) motsvarigheten till Javas RMI eller CORBA dvs ett sätt att göra objekten tillgängliga från andra datorer. Man kan använda COM objekt från sin ASPkod för att på så sätt inte vara begränsad av script-språk, jämför JSP/JavaBeans Internet Server Application Programming Interface (ISAPI) ISAPI löste ett av problemen med CGI CGI startade en ny process för varje anrop ISAPI använder sig av DLL och använder samma minnesutrymme som Webbservern ASP.DLL DLL:er är att likna vid java:s klassbibliotek VBScript Dim deklaration av variabler (array:er) statisk eller dynamisk ReDim Storleksförändring av dynamisk array Preserve nyckelord för behålla tidigare deklarerade element Ex: Dim stremployees() ReDim stremployees (9,1) [9,1] matris stremployees(9,1) = Sven Svensson ReDim stremployees(9,2) tappar innehållet i 9,1 ReDim Preserve stremployees(9,2) för att behålla Ubound bestämmer en arrays storlek Dim strcustomers (10,5) intsizefirst = UBound(strCustomers,1) ger 10 For.. Next Dim intsalary (10) For intcounter = 0 to 10 intsalary (intcounter) = 20000 Next For Each Item in Collection Response.Write Item & <BR> Next Do... Loop Do While strday <> Saturday And strday <> Sunday MsgBox( Get Up! Time for work ) klientscriptfunktion... Loop Do MsgBox( Get Up! Time for work )... Loop Until strday = Saturday Or strday = Sunday 2

If...Then...Else- If intage < 18 Then MsgBox( Minderårig ) ElseIf intage < 30 Then MsgBox( OK ) Else MsgBox( Gå hem... ) End If Select Case Select Case poang Case 3,4,5 MsgBox( Godkänd ) Case 1,2 MsgBox( Undermåligt ) End Select Konstanter Empty deklarerad utan datatyp men inte tilldelad Nothing deklarerad med datatyp men utan referens Null - Not valid True Numeriskt värde 1 False Numeriskt värde 0 If isempty(session( loggedin ))... ASP objektmodell Viktiga objekt i ASP.DLL Request Response Viktigast för förståelsen, de vanligaste Session objekten. Klienten Application; ASP tillämpningen själv Server Ger tillgång till webbservern. Används för att instansiera objekt med metoden CreateObject Request objektet Request objektet är inkapsling av den HTTPförfrågan man skickar när man anropar en URL Där finns alltså metoder för att hitta de eventuella parametrar som skickas från formulär HTTP Request GET /F5/exempel.asp?deposit=1000&time=10 HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.msexcel, application/vnd.ms-powerpoint, application/msword, application/x-shockwav e-flash, */* Referer: http://localhost/f5/exempel.html Accept-Language: sv Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;.NET CLR 1.1.4322) Host: localhost Connection: Keep-Alive Cookie: ASPSESSIONIDACCBTAAA=HOLDGCAAAFBKHHDIJBOBJHDP 3

Att läsa parametrarna Att läsa parametrarna från en request kan se ut på följande sätt: Namn.html <head> <title> Ditt namn! </title> </head> <body> <form action= "hello.asp" method="post" > Skriv ditt namn: <input type= "text" name= "namn" > <br> <input type= "submit" value= Skicka > </form> </body> hello.asp <head> <title> Välkommen =Request.Form( namn )! </title> </head> <body> Hej =Request.Form( namn )! </body> Properties TotalByte QueryString Form Cookies ClientCertificate ServerVariables Metoder BinaryRead Request objektet Read-only Collection är en typ av dynamisk array med 0 eller flera namn/värde par Request objektet (forts.) deposit = Cdbl(Request.QueryString("deposit")) eller deposit = Cdbl(Request("deposit")) Den sista varianten söker i tur och ordning i 1. QueryString Parametrar från get 2. Form Parametrar från post 3. Cookies 4. ClientCertificate Har med säkerhet att göra 5. ServerVariabler Se nästa bild Request objektet (forts.) ServerVariables Fördefinerade variabler strvar = Request.ServerVariables(key) key kan bland annat vara REMOTE_HOST faun.nada.kth.se LOGON_USER stene REQUEST_METHOD POST eller GET HTTP_USER_AGENT Mozilla/4.0 Response objektet Response objektet är inkapsling av det HTTPsvar användaren får tillbaka Där finns bland annat metoder för att infoga html, skicka nya cookies till användaren eller att skicka användaren till en annan sida Header HTTP Response Ett HTTP Response utan cookies HTTP/1.0 200 OK Date: Thursday, 02-Nov-95 08:44:52 GMT Server: WebSite/1.1 Last-Modified: Wednesday, 01-Nov-95 02:04:33 GMT Content-Type: text/html Content-length: 8151 [1 obligatorisk blankrad] <HTML><HEAD> <TITLE>... Body 4

Response objektet Att använda sig av Response objektet kan se ut på följande sätt: <!-- Example 1 --> For intloop = 1 to 6 The number is: = intloop <P> Next <!-- Example 2 --> For intloop = 1 to 6 stroutput = The number is: & intloop & <P> Response.write(strOutput) Next Ger samma resultat Properties (bland annat) Buffer ContentType Cookies Metoder (bland annat) Redirect Write End Flush Response objektet Response -Buffer Avgör om allt innehåll ska skickas på en gång eller om det ska skickas rad för rad allt efter det processas. Response.Buffer [ = true [false]] Bör sättas till True för snabbare processande av sidan redirect Response Cookies reponse.cookies( kundnr ) = 123 Om man inte sätter en tid kommer cookien försvinna när browsern stängs response.cookies( kundnr ).expires =#6/6/2004_ 00:00:00# Session objektet Ett session objekt är ett objekt som automatiskt tillfaller och följer varje användare Det är till för att lagra information om användaren, vanligt är t.ex. att hålla reda på om vederbörande är inloggad eller inte Session objektet (forts.) Properties (bland annat) SessionID // read only Timeout // i minuter default 20 Contents // Se Application StaticObjects // -- -- Metoder Abandon // Omedelbar timeout Events Session_OnStart Session_OnEnd 5

Session objektet Ett exempel på hur man använder ett session objekt kan se ut så här: <H3>sessionID = = session.sessionid </H3> <H3>timeout = = session.timeout </H3> <P> Du har besökt den här sidan = session( intsessionobjvisit ) den här sessionen </P> session( intsessionobjvisit )_ =session( intsessionobjvisit ) + 1 Databas koppling Set db = Server.CreateObject( ADODB.Connection ) db.open ( test ) Använder ODBC Set ors = db.execute( select * from studenter ) Vanliga metoder i Connection Open Close Execute BeginTrans Commit/RollbackTrans ODBC Databasen (Access) Databas Recordset <ol> Do while Not ors.eof Response.Write( <li> & _ ors.( enamn )) ors.movenext Loop </ol> Databasuppdatering Att uppdatera databasen med ny information skiljer sig inte mycket från att läsa data från databasen En sak är dock viktig att tänka på Katalogen som uppdateringarna skall ske i måste tillåta skrivhändelser Detta gör man genom att högerklicka på katalogen och lägga till en användare IUSR_datornamn 6

Properties Inga Contents StaticObjects Metoder Lock Unlock Event OnStart OnEnd Application objektet Application objektet är samma för alla användare och kan användas för t.ex. statistik GLOBAL.ASA Fil i rotbiblioteket av tillämpningen c:\intepub\wwwroot\f5\ Deklaration av objekt, variabler och event handlers Session_OnStart Session_OnEnd Application_OnStart Application_OnEnd Förändringar kräver omstart Exempel 1:4 (IE) Exempel 2:4 (databasen) Exempel 3:4 (exempel.html) <head><title>exempel</title></head> <script language="javascript"> function correctinput(){ if(document.test.deposit.value>0 && document.test.time.value>0) document.test.submit(); else alert("felaktig inmatning!"); } </script> <body><center> <h2>sparandeberäkning</h2> <form name="test" action="exempel.asp"> <p>insättning första året: <input type=text name="deposit"> <p>antal år att förräntas: <input type=text name="time"> <p><input type=button onclick="correctinput()" value="beräkna"> </form> </center></body> Exempel 4:4 <head><title>exempel</title></head> <body><center> Set db = Server.CreateObject("ADODB.Connection") 'ADO är ett databas-api db.open("test") y = DatePart("yyyy", date) ' fungerar även med Year(Date) Set rs = db.execute("select * from interest where year = " & y) rs.movefirst rate = Cdbl(rs("rate")) deposit = Cdbl(request.QueryString("deposit")) tid = Cdbl(request.QueryString("time")) withdrawal = Cint (deposit * Exp (tid * Log ((100+rate)/100))) rs.close db.close <h2>resultat</h2> <p>du får ut = withdrawal kr. <p>beräkningen är baserad på = rate % ränta för år = y. </center></body> 7