Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdPhilomena Christiaens Laatst gewijzigd meer dan 9 jaar geleden
1
Java & het Web Programma: 3rd party libraries Standard actions (E)xpression (L)anguage
2
JSP....herhaling Wat doen de volgende commando's? 1. 2. 3.Waar in de servlet komen scriptlets en declararions terecht? 4.Wat zijn tag libraries?
3
3rd party libraries...wat is dat(1)? Veel webapps hebben functionaliteit welke niet of moeilijk met de standaard Java sdk geschreven kan worden. Bijvoorbeeld: Database drivers FTP MVC frameworks (Spring, JSF, Struts) libs voor grafische bewerkingen (pie charts etc..)
4
3rd party libraries...wat is dat(2)? Op internet zijn veel libraries te vinden die in een webapp gebruikt kunnen worden. Het verkrijgen van de libraries kan op verschillende manieren: downloaden en 'ergens' in de webapp zetten Build tools gebruiken als Maven, Ant of Gradle de tweede optie is een 'must' als je met meerdere mensen aan een project werkt. Vraag: waar is 'ergens'?
5
3rd party libraries...wat is dat(3)? Twee 3rd party libraries die we gaan gebruiken zijn de jstl.jar en de standard.jar. Deze jars stellen ons in staat om EL te schrijven en onze JSP pagina's 'scriptless' te krijgen. Vraag: Waarom is het handig om scriptless pagina's te schrijven?
6
Standard actions...wat is dat(1)? Code met scriptlet: Person is: Code met standard action: Person is:
7
Standard actions...wat is dat(2)? jsp:useBean creeert een bean en zet deze in een scope of haalt er een uit een bepaalde scope als deze al bestaat. jsp:useBean: geeft de standard action aan id="person": definieert identifier, zoals request.setAttribute("person", p); class="foo.Person": declareert het class type van de bean scope="request": geeft scope voor de bean jsp:getProperty: geeft de standard action aan name="person":identificeert bean object (="id" uit jsp:useBean) propery="name":geeft de property uit de "Person" class die je wilt hebben
8
Standard actions...wat is dat(3)? jsp:useBean kan een body hebben welke wordt aangeroepen als de bean niet wordt gevonden en dus wordt gecreeerd //geen slash! jsp:setProperty: geeft de standard action aan name="person":identificeert bean object (="id" uit jsp:useBean) propery="name":geeft de property uit de "Person" class die je wilt hebben value="Piet": zet de waarde van de property
9
Standard actions...wat is dat(4)? vertaalt in java code in _jspService() methode: foo.Person person = null; //gebruik "id" synchronized(request) { person = (foo.Person)_jspx_page_context.getAttribute("person", PageContext.REQUEST_SCOPE); if (person == null) { person = new foo.Person(); _jspx_page_context.setAttribute("person", person, PageContext.REQUEST_SCOPE); }
10
Standard actions...wat is dat(5)? Een property van een property weergeven: Zonder standard actions: Met standard actions: Wat is de output?
11
Standard actions...wat is dat(6)? Aiii een probleem!! Wat nu?
12
Expression Language(1) Probleem is op te lossen met: ${person.dog.name} "person" hoeft niet eens gedeclareerd te worden! ${person.dog.name} is equivalent met:
13
Expression Language(2) ${eersteDing.tweedeDing} eersteDing is altijd: -attribuut in 1 van de 4 scopes (page, request, session, application) of -een EL implicit object pageScope, requestScope, sessionScope, applicationScope, param, paramValues, header,headerValues, cookie, initParam, pageContext implicit object niet te verwarren met JSP implicit objects!
14
Expression Language(3) ${eersteding.tweededing} Als eersteDing gevolgd wordt door een punt ". ", dan is: -eersteDing een java.util.Map waarvan tweedeDing de 'key' is OF -eersteDing is een bean waarvan tweedeDing een property is
15
Expression Language(4) De " [] " operator is als de ". " maar dan beter! Dit: ${person["name"]} is hetzelfde als ${person.name}
16
Expression Language(5) "." : eersteDing mag een Map of een Bean zijn. "[]" :eersteDing mag een Map, Bean, List of array zijn. ${eersteDing["tweedeDing"]} eersteDing=Map ->tweedeDing=key eersteDing=Bean ->tweedeDing=property van Bean eersteDing=List ->tweedeDing=index van List eersteDing=array ->tweedeDing=index van array
17
Expression Language(6) In een servlet: String[] muziek = {"Disco", "Hardrock","Country","Pop"} request.setAttribute("muziekLijst", muziek); In een JSP: Muziek is : ${muziekLijst}, output = ? Muziek is : ${muziekLijst[0]}, output = ? Muziek is : ${muziekLijst["3"]}, output = ?
18
Expression Language(7) EL Operators: Rekenen: +, -, *, /, div, %, mod Logisch: &&, and, ||, or, !, not Relationeel: ==, eq, !=, ne,, gt, =, ge EL is 'null' friendly, d.w.z dat in geval van een onmogelijke expressie niet snel een exception gegooid wordt, bijv er bestaat geen atribuut 'foo' ${foo}, $[foo[bar]} doet niets ${7 + foo} -> 7, ${7 /foo} -> infinity, ${7 % foo} -> exception ${foo == foo} -> true, ${7 == foo} -> false
19
Expression Language(8) In een servlet: java.util.Map muziekMap = {"Disco", "Hardrock","Country","Pop"} muziekMap.put("Ambient","Zero 7"); muziekMap.put("Surf","Tahiti 80"); muziekMap.put("DJ","Tiesto"); muziekMap.put("Indie","Frou Frou"); request.setAttribute("muziekMap", muziekMap); String[] muziekTypes = {"Ambient", "Surf","DJ","Indie"} request.setAttribute("muziektypes", muziekTypes); In JSP ${muziekMap[muziekTypes[0]]} -> output = ?
20
Expression Language(9) In een servlet: java.util.ArrayList nums =new ava.util.ArrayList(); nums.add("1"); nums.add("2");nums.add("3"); request.setAttribute("numbers", nums); String[] muziek = {"Zero 7", "Tahiti 80","Tiesto","Frou Frou"} request.setAttribute("muziek", muziek); In JSP ${muziek[numbers[0]]} -> output = ? ${muziek[numbers[0] + 1]} -> output = ? ${muziek[numbers["2"]]} -> output = ? ${muziek[numbers[numbers[1]]]} -> output = ?
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.