J2EE Java Server Pages (JSP) Introduktion Internetteknologi 2 (ITNET2)

Slides:



Advertisements
Lignende præsentationer
HUNDE SPEED km h 34,4 HUNDE SPEED km h 34,1 HUNDE SPEED km h 32,8 HUNDE SPEED km h 31,9 HUNDE SPEED km h 31,8 HUNDE SPEED km h 30,9.
Advertisements

Den danske befolknings syn på handicappedes rettigheder
VMS data Geografisk og tidsmæssig udvikling af indsatsen i tobisfiskeriet v/ dataspecialist Josefine Egekvist Sekretariat for myndighedsbetjening.
Atomer Et programmeret forløb. En måde at lære på.
SharePoint /36 2 General SettingsPermissions and ManagementCommunications Titel, description and navigation Versioning settings Advanced settings.
Børns indflydelse på familiens købsbeslutninger
UU-Aalborg Evaluering af brobygning og intro 2013/14 Velkommen UU-Aalborg Ungdommens Uddannelsesvejledning.
Introduktion til CSS Godt i gang med CSS. 201 – V1 – Introduktion til CSS Hvad er stylesheet?
Produktionsøkonomi Planteavl 2013
Funktioner Grundbegreber.
Hjemmesidekonstruktion Tjekspørgsmål 1.Hvad er et markup-sprog – hvad bruges det til? 2.Hvad er forskellen mellem et markup-sprog og et scriptsprog? 3.Hvad.
Prospekt. Ideen •Casa della filosofia er navnet på en forening, der giver almin- delige mennesker mulighed for at have brugsret til et hus i Italien på.
Torbenfeldvej Vallensbæk strand Tlf.: – – dagligt brug af vores hjemmeside •AGEN LYS har en stor og omfattende.
Kap. 2 Fiskeri med trawl 2.1 · En smakke med trawlet ude.
Samlet årsrapport for Gårdhaven 2012 SIP-socialpsykiatri
v/ Professor Lars Ehlers, Aalborg Universitet
Velkommen hos Juvel A/S
Cascading style sheets (CSS) Formål med css • Adskillelse af indhold og udtryk • Større typografisk frihed • Nemmere redigering Eksempel uden style sheetuden.
Bolig selskabernes Landsforening– Almene lejeboliger - Maj/Juni Almene lejeboliger - Danmarkspanelet - Maj/Juni 2010.
16 - JSP. 2 NOEA2009Java-kursus – JSP Developement platform You need a J2ee compatible server There is more possibilities. Here we look at: –Tomcat &
Efteruddannelsesindsatsen 2007 Analyse Danmarks undersøgelse januar 2008 Oplæg på Kompetencerådets møde den v./ Merete.
1 Effektiv forrentning Kjeld Tyllesen PEØ, CBS Erhvervsøkonomi / Managerial Economics Kjeld Tyllesen, PEØ, CBS.
Arbejdsmarkedsuddannelser – også for personer med læse-, skrive- og regnevanskeligheder Oplæg fra AMU-Fyn Konference d. 22/5 -07.

Skoleporten Hvordan tilpasser jeg layout mulighederne i
Representations for Path Finding in Planar Environments.
Intro Variabler - datatyper. 2. forelæsning Hvad skete sidste gang Hvad er PHP? Kursussammensætning: læse – newsgroup – forelæsning – øvelsestime – aflevering.
Kvalitetstest af Palles Gavebod Spørgeskemaundersøgelse November 2010 – januar 2011 Center for Playware DPU.
Masterpages/Otto Knudsen 1 Master Pages Master Pages i ASP.NET 2.0.
Eksekvering/Otto Knudsen 1 Udrulning Publicering af en web-applikation.
HUSKESPIL – den lille tabel
Titel: Arial, fed, skriftstr. 20, mørkegrå. Tekst: Arial, normal, fed eller kursiv, skriftstr. 10, 12 og 14 til print – 16 og 18 til projektor – mørkegrå.
Relativ vigtighed for elektroniske ressourcer,24,22,20,18,16,14,12,10 Indeks FARM nem at bruge Info om anvendelse af elektroniske.
 2 3  3 =  83  43  53  63  73  93  10 4.
Oplæg til Nofa4 i Trondheim d maj 2013 Ved Lektor Rune Christiansen
1 GIS i Gymnasiet på Fyn - en introduktion til brugen af Geografiske Informations Systemer i undervisningen.
Pleje og Sundhed Gennemførte719 Inviterede895 Svarprocent80% FREDERICIA KOMMUNE MTU og Psykisk APV 2012 Rapportspecifikationer.
1 Powerpointserie om In-line færdiggørelse ved Heatsettrykning Avisrotation Magasindybtryk Den Grafiske Højskole.
Region Midtjyllands tilbud 2013
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
Trivselsundersøgelse og ledelsesevaluering Anæstesiologisk Afdeling Flere ledere
ETU 2008 | Elevtilfredshedsundersøgelse Erhvervsskolen Nordsjælland HTX (Teknisk Gymnasium) - Hillerød Baseret på 313 besvarelser.
1 Borgerpanelet i Silkeborg Kommune.
Internetteknologi (ITNET2) Præsentation 6: Arkitektur i (Java) Web Applikationer.
J2EE Java Server Pages (JSP) Avanceret Internetteknologi 2 (ITNET2)
Globaliseringsredegørelsen 24.mar. 14 Figurer fra Danmark tiltrækker for få udenlandske investeringer i Sådan ligger landet
1 Sortering I elementære metoder. 2 Plan Terminologi Elementære metoder til sortering -sortering ved udvælgelse -sortering ved indsættelse -Shellsort.
Affaldsordninger Lemvig Kommune. Dagrenovation Ændringer pr. 1. januar 2011 Frivægt pr. tømning er 5 kg. Herudover er kg. prisen 1 kr. Fra 1. januar 2011.
Internetteknologi 2 (ITNET2) Java teknologi på Internettet J2EE Servlets.
Matematik B 1.
Claus Brabrand, ITU, Denmark Mar 10, 2009EFFECTIVE JAVA Effective Java Presentation Workshop Claus Brabrand [ ] ( “FÅP”: First-year Project.
MSBuild & Team Build i C#/C++ solutions VSTS ERFA d. 25 November.
Rapporter (Access, del 5). RHS – Informationsteknologi – Udgangspunkt Vi har oprettet en database Vi har defineret en eller flere tabeller, og.
1 Tråde 2 Plan Trådbegrebet Synkronisering Koordinering Eksempel: et flertrådet spil.
1 Bilag 1 Busafgange mellem Silkeborg by og andre byer i kommunen D. 2. oktober 2008.
Grunde til at jeg elsker dig
Januar 2009 MandagTirsdagOnsdagTorsdagFredagLørdagSøndag Uge 2. Anette Ø. Kl Tina H. Lone M. 6 Kl Britt H. 7 Kl Vinnie G. Gerda.
Fundamentale datastrukturer
Slide Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 15 Algorithms for Query Processing and Optimization.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
FYSISK DESIGN 1. Hvem er vi Oskar, Troels og David.
Internetteknologi (ITNET2) Præsentation 21: Common Gateway Interface (CGI) illustreret med Perl og C.
1 Kap. 4, Jordens Tyngdefelt = Torge, 2001, Kap. 3. Tyngdekraftens retning og størrelse g (m/s 2 ) Acceleration Tyngdepotentialet (W): evene til at udføre.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
Fremstilling af Simple WEB steder [ITPL] Foråret 2004
XML 2. Formatering af XML data med CSS Når man arbejder med XML og CSS er fremgangsmåden den samme som i forbindelse med HTML og CSS.
1 Erfaringer fra videnledelse i COWI Fredag d. 24. august Aalborg Universitet Livslang Uddannelse 2001.
Svampebekæmpelse – sidste nyt fra landsforsøgene Landskonsulent Ghita Cordsen Nielsen Dansk Landbrugsrådgivning Landscentret | Planteavl Planteproduktion.
PD – kursusgang 2 Introduktion til Frames og Cascading Style Sheets.
Web- og serverprogrammering Dette materiale er under Åben Dokumentlicens, se Java Server Pages - dag 2 Java Server.
Præsentationens transcript:

J2EE Java Server Pages (JSP) Introduktion Internetteknologi 2 (ITNET2)

Ingeniørhøjskolen i Århus Slide 2 af 68 Indhold i denne præsentation •”Klassisk” Java Server Pages (JSP): –Udtryk, Scriplets, Direktiver, implicitte objekter, standard actions –Vi tager nogle eksempler – det gør det nemmere at illustrere –Brug af Java Beans til ”pænere” struktur (afkobling & Command Pattern) –Deployment •Næste gang JSF

Ingeniørhøjskolen i Århus Slide 3 Gode nyheder •Der er gode nyheder for de der syntes at Servlets var trælse og tidskrævende •JSP er sjove, nemme og effektive (lige så hurtige som Servlets) •Faktisk så kan det meste af den funktionalitet som Servlets skal løse klares ved brug af JavaBeans (Command Pattern)

Ingeniørhøjskolen i Århus Slide 4 Java Server Pages introduceret •JavaServer Pages (JSP) –Udvidelse af servlet teknologi –MEN bliver altid i sidste ende til Servlets –Blot en nemmere repræsentation –Kan bruges med EJB 2.1 / 3.0 eller JDBC / POJO •JSF: potentiel afløser

Ingeniørhøjskolen i Århus Slide 5 Simplest tænkelige JSP side •Oprindeligt elementet der skaber en JSP side. I dag kan EL benyttes i stedet/supplerende •En JSP side (simpel.jsp) kan altså se sådan ud: – en meget, meget simpel side ” %> •Brug af = svarer til out.print(…) og kaldes et “udtryk” •Næste side følger en komplet side

Ingeniørhøjskolen i Århus Slide 6 af 58 Clock.jsp Simple JSP expression 1 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 3 " A Simple JSP Example big { font-family: helvetica, arial, sans-serif; 16 font-weight: bold; 17 font-size: 2em; } Simple JSP Example JSP expressions deliniated by. This will insert a string representation of the date.

Ingeniørhøjskolen i Århus Slide 7 af 58 Clock.jsp Program Output

Ingeniørhøjskolen i Århus Slide 8 Implicitte objekter •Følgende implicitte variable skabes ved load –application (scope: application) –session (scope: session) –pagecontext (scope: page) –out (-”-) –config (-”-) –page (-”-) –exception (-”-) –response (-”-) –request (request) •Og er tilgængelige i netop dette scope

Ingeniørhøjskolen i Århus Slide 9 Brug af scripting i JSP •Scripting –Tillader JSP sider at have Java kode indlejret i siden –Der skelnes mellem: •Deklarationer (declarations) •Scriptlets •Udtryk (expressions) •Kommentarer

Ingeniørhøjskolen i Århus Slide 10 Scripting komponenter •Scriptlets –Afgrænset af –Større blokke af Java kode (pas på – brug Command Pattern) •Kommentarer –Inde i scriptlets bruges // og /* */ som kendt fra Java –Rene JSP kommentarer –XHTML kommentarer (ikke JSP) •Udtryk (Expressions) –Afgrænset af –Resultatet konverteres automatisk til et String objekt

Ingeniørhøjskolen i Århus Slide 11 Scripting komponenter fortsat •Deklarationer (declarations) –Afgrænses af –Bruges til at definere metoder og variable –Dette kan dog gøres i en alm. Scriptlet i stedet –Bør generelt undgås, brug Command Pattern i stedet •Direktiver –Afgrænses af –F.eks. import og extend (kommer senere) •Escape –Se DEITEL tabel næste side

Ingeniørhøjskolen i Århus Slide 12 Escape af tegn

Ingeniørhøjskolen i Århus Slide 13 Scripting Eksempel •På de næste par sider følger et DEITEL eksempel som viser større mængder af Java kode indlejret som Scriptlets i en JSP side •Generel anbefaling: undgå eller minimer mængden af Scriptlets, øger kobling og gør mere forvirrende

Ingeniørhøjskolen i Århus Slide 14 af 58 Welcome.jsp Demonstrate scriptlet and expressions 1 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 3 " Processing "get" requests with data <% // begin scriptlet String name = request.getParameter( "firstName" ); if ( name != null ) { %> Hello, 27 Welcome to JavaServer Pages! <% // continue scriptlet } // end if 33 else { 34 Obtain request parameter via scriptlet. Expression will display the string value of name

Ingeniørhøjskolen i Århus Slide 15 af 58 Welcome.jsp 35 %> Type your first name and press Submit <% // continue scriptlet } // end else %> Program Output

Ingeniørhøjskolen i Århus Slide 16 Standard metoder (actions) •Hjælper med at løse en lang række almindelige JSP opgaver –Dynamisk inkludering af indhold (fra andre JSP sider m.v.) –Forwarding af Requests –Brug af JavaBeans (altså brug af objekter) –De fleste behandles dynamisk ved run time (requst time) –Genkendes ved og •En oversigt er hentet fra DEITEL på de følgende sider •Nærmere eksempler gives efterfølgende •ALLE KAN LØSES “MANUELT” VED BRUG AF REN JAVA KODE i SCRIPTLETS!!!!

Ingeniørhøjskolen i Århus Slide 17 Standard metoder (actions)

Ingeniørhøjskolen i Århus Slide 18 action •Mulighed for at inkluderer indhold dynamisk –Skaber en kopi af en resource •Som regel en XHTML eller en anden JSP side •Sker dynamisk •Svarer til RequestDispatcher.include() i Servlets •

Ingeniørhøjskolen i Århus Slide 19 Action eksempel •Eksempel hentet fra DEITEL –Bruger action til at hente et par HTML og JSP sider –Banner.html og Toc.html samt Clock2.jsp i siden Include.html

Ingeniørhøjskolen i Århus Slide 20 af 58 Banner.html Java(TM), C, C++, Visual Basic(R), 6 Object Technology, and Internet and 7 World Wide Web Programming Training 8 On-Site Seminars Delivered Worldwide B Boston Post Road, Suite 200, 17 Sudbury, MA

Ingeniørhøjskolen i Århus Slide 21 af 58 Toc.html Publications/BookStore What's New Downloads/Resources FAQ (Frequently Asked Questions) Who we are Home Page Send questions or comments about this site to Copyright by Deitel & Associates, Inc. 33 All Rights Reserved. 34

Ingeniørhøjskolen i Århus Slide 22 af 58 Clock2.jsp <p class = "big" style = "color: cyan; font-size: 3em; 8 font-weight: bold;">

Ingeniørhøjskolen i Århus Slide 23 af 58 Include.jsp 1 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 3 " Using jsp:include body { 14 font-family: tahoma, helvetica, arial, sans-serif; 15 } table, tr, td { 18 font-size:.9em; 19 border: 3px groove; 20 padding: 5px; 21 background-color: #dddddd; 22 } <img src = "images/logotiny.png" 31 width = "140" height = "93" 32 alt = "Deitel & Associates, Inc. Logo" />

Ingeniørhøjskolen i Århus Slide 24 af 58 Include.jsp <jsp:include page = "banner.html" 39 flush = "true" /> <jsp:include page = "clock2.jsp" 56 flush = "true" /> action tag, accesses external resources.

Ingeniørhøjskolen i Århus Slide 25 Hvad kan vi bruge det til? •Vi får en yderligere mulighed for at afgrænse form og indhold fra hinanden •Kløgtige studerende husker måske brug af CSS til dette formål •Frames er nu ikke længere nødvendigt hvis man vil undgå at lave ”template programmering” på en smart måde

Ingeniørhøjskolen i Århus Slide 26 Action Gør det muligt for en JSP side at redirecte til en anden side •Den kørende JSP stopper med at processere og overføre straks HTTP request til den nye side •Dette har dog givet lidt ballade ved nogle JSP containere!! •Page attributten bestemmer hvad der forwardes til •Eksempel fra DEITEL følger

Ingeniørhøjskolen i Århus Slide 27 af 58 Forward1.jsp 1 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 3 " Forward request to another JSP <% // begin scriptlet String name = request.getParameter( "firstName" ); if ( name != null ) { %> <jsp:param name = "date" 24 value = " " /> <% // continue scriptlet } // end if 30 else { %> Type your first name and press Submit If the firstname parameter is specified, forward the user to the second page with the current date.

Ingeniørhøjskolen i Århus Slide 28 af 58 Forward1.jsp Program Output <% // continue scriptlet } // end else %>

Ingeniørhøjskolen i Århus Slide 29 af 58 Forward2.jsp 1 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 3 " <html xmlns = " Processing a forwarded request big { 14 font-family: tahoma, helvetica, arial, sans-serif; 15 font-weight: bold; 16 font-size: 2em; 17 } Hello, 24 Your request was received and forwarded at

Ingeniørhøjskolen i Århus Slide 30 af 58 Forward2.jsp Program Output

Ingeniørhøjskolen i Århus Slide 31 Action • Action –Tilføjer f.eks. Applet, JavaBean or XHTML element –Gør det muligt for klienten at downloade Java plug-in –Finder selv ud af hvilken klient der er tale om, og hvordan den understøtter plug-ins –(DEITEL har et eksempel – det vil vi ikke gennemgå her

Ingeniørhøjskolen i Århus Slide 32 Action •Måske DET vigtigste Action element •Gør det muligt for JSP at bruge Java Objekter •Samme scope muligheder som de implicitte –Dvs. application, session, page og request •Må specifiere attributterne class eller type –Attributten class vil instansiere et nyt objekt –DEITEL tabel følger med oversigt over useBean attributter

Ingeniørhøjskolen i Århus Slide 33 Action •I det følgende vises et eksempel på UseBean –En Java klasse “Rotator” defineres og –Adrotator.jsp siden benytter Rotator klassen til at skifte bannere ud dynamisk –Da det er på “application” scope, så er det på tværs af sessioner. Der sikres altså at hver ny forespørgsel får et nyt banner –Dette kunne være hentet via database opslag, eller RMI eller andet! –Derfor smart med “afkobling” •Efterfølgende tager vi et mere avanceret eksempel

Ingeniørhøjskolen i Århus Slide 34 af 58 Rotator.java Define JavaBean Rotator 1 // Fig : Rotator.java 2 // A JavaBean that rotates advertisements. 3 package com.deitel.advjhtp1.jsp.beans; 4 5 public class Rotator { 6 private String images[] = { "images/jhtp3.jpg", 7 "images/xmlhtp1.jpg", "images/ebechtp1.jpg", 8 "images/iw3htp1.jpg", "images/cpphtp3.jpg" }; 9 10 private String links[] = { 11 " "deitelassociatin", 13 " "deitelassociatin", 15 " "deitelassociatin", 17 " "deitelassociatin", 19 " "deitelassociatin" }; private int selectedIndex = 0; // returns image file name for current ad 25 public String getImage() 26 { 27 return images[ selectedIndex ]; 28 } // returns the URL for ad's corresponding Web site 31 public String getLink() 32 { 33 return links[ selectedIndex ]; 34 } 35

Ingeniørhøjskolen i Århus Slide 35 af 58 Rotator.java 36 // update selectedIndex so next calls to getImage and 37 // getLink return a different advertisement 38 public void nextAd() 39 { 40 selectedIndex = ( selectedIndex + 1 ) % images.length; 41 } 42 }

Ingeniørhøjskolen i Århus Slide 36 af 58 Adrotator.jsp 1 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 3 " <jsp:useBean id = "rotator" scope = "application" 8 class = "com.deitel.advjhtp1.jsp.beans.Rotator" /> AdRotator Example big { font-family: helvetica, arial, sans-serif; 17 font-weight: bold; 18 font-size: 2em } AdRotator Example <a href = "<jsp:getProperty name = "rotator" 30 property = "link" />"> <img src = "<jsp:getProperty name = "rotator" 33 property = "image" />" alt = "advertisement" /> 34 Create a new instance of the rotator bean named rotator. getProperty action functions the same as calling rotator.getLink()

Ingeniørhøjskolen i Århus Slide 37 af 58 Adrotator.jsp Program Output

Ingeniørhøjskolen i Århus Slide 38 Action •Senere kigger vi på lidt mere avancerede anvendelser af use bean –Eksemplet er en gæste bog (GuestBook) –Der benytter sig af en database til at gemme data og afkobler præsentations JSP fra databasen via en database wrapper og value beans.

Ingeniørhøjskolen i Århus Slide 39 Direktiver •Information der sendes til JSP containeren til at specificere egenskaber ved løsningen (properties) –Error pages (fejl sider) –Statisk inkludering af indhold (i modsætning til dynamisk) –Specificering af skræddersyede tag libraries (kommer vi til) –Der bruges –Sker på oversættelses tidspunktet (complilering) OG ER ALTSÅ STATISK!

Ingeniørhøjskolen i Århus Slide 40 Directives fra DEITEL

Ingeniørhøjskolen i Århus Slide 41 Page Directive •Specificerer JSP indstillinger for siden •Bl.a. nedarvning fra klasse (skal være en Servlet i sagens natur), “import” af pakker, brug af fejlsider, mime type (XHTML eller WML osv.) •Oversigt vises i følgende DEITEL tabel •Eksempel: •

Ingeniørhøjskolen i Århus Slide 42 Page Directive

Ingeniørhøjskolen i Århus Slide 43 Page Directive fortsat

Ingeniørhøjskolen i Århus Slide 44 Include Directive •Inkluderer indhold fra en given kilde •Har een attribut: file –Specificerer den URL der skal loades •Forskelle fra –<jsp:include) opdaterer dynamisk hver gang koden køres –Ændringer er altså reflekteret straks –Include direktivet fastholder det originale materiale fra kompilerings tidspunktet – hurtigere – men ej dynamisk •Eksempel fra DEITEL: –Laver include.jsp men denne gang med include direktivet

Ingeniørhøjskolen i Århus Slide 45 af 58 Include- Directive.jsp Include directive examples

Ingeniørhøjskolen i Århus Slide 46 Deployment •Der gælder basalt set de samme regler som for Servlets •MEN: det er IKKE nødvendigt manuelt at mappe JSP sider – de kan kaldes direkte •WEB-INF kataloget skal stadigvæk bruges til at gemme klasser, og WEB.XML kan bruges (bør bruges) – til opsætning af diverse parameter (såsom ”session- timeout” m.v.) •Der skal stadigvæk oprettes en ”Context” i Server.xml