De JSP Expression Language

8 belangrijke vragen over De JSP Expression Language

Kunt uitleggen wat het verband is tussen EL-expressies en JavaBeans

De JSP Expression Language (EL) voorziet in een compacte syntax waardoor je data kan pakken van JavaBeans, maps, arrays en lists die bewaard zijn als attributen van een webapplicatie.

Gegeven is een servlet TestServlet. Schrijf Java-opdrachten die binnen de methode doGet staan en een bean user van type User opslaan in achtereenvolgens
a) het request-object
b) het session-object
c) het ServletContext-object

a) Het request-object is een parameter van de doGet, dus hier volstaat de volgende opdracht:
request.setAttribute("user", user);
b) Het session-object moet eerst worden opgehaald:
HttpSession session = request.getSession();
session.setAttribute("user", user);
c)Ook het servletContext moet worden opgehaald:
ServletContext sc = this.getServletContext();
sc.setAttribute("user", user);

Schrijf JSP-expressies die overeenkomen met elk van de volgende expressies hieronder:
a) ${best}
b) ${requestScope.best}
c) ${best.klant}
d) ${requestScope.best.klant.klantnummer}
e) ${best.artikel.leverbaar}

a) <%= request.getAttribute("best").toString() %> of
  <%= request.getAttribute("best") %>
  De aanroep naar toString is ook in JSP-expressies impliciet en mag dus ook   worden weggelaten
b) <%= request.getAttribute("best") %>
c)  <%= request.getAttribute("best").getKlant() %>
d)  <%= request.getAttribute("best").getKlant().getKlantnummer() %>
e) <%= request.getAttribute("best").getKlant().isLeverbaar() %>
  • Hogere cijfers + sneller leren
  • Niets twee keer studeren
  • 100% zeker alles onthouden
Ontdek Study Smart

Schrijf de volgende expressies zonder gebruik te maken van de punt:
a) ${requestScope.best}
b) ${best.klant}
c) ${requeatScope.best.klant.klantnummer}
d) ${best.artikel.leverbaar}

a) ${requestScope ["best"]}
b) ${best ["klant"]}
c) ${requeatScope["best"] ["klant"] ["klantnummer"]}
d) ${best ["artikel"] ["leverbaar"]}

Een project bevat 2 JSP pagina's namelijk coderen.jsp en gecodeerd.jsp. Veravng de volgende scriptlet en JSP-expressies door EL:

De pagina coderen.jsp bevat de volgende scriptlet en 2 JSP expressies:
<%
  String bericht = request.getParametr("bericht");
  String foutboodschap = (String) request.getAtribute ("foutboodschap");
  if (bericht == null) {
    foutboodschap = "";
    bericht = "";
  }
%>

<% foutboodschap %>
<% bericht %>

In de pagina gecodeerd staan 2 JSP-expressies:
<%= request.getParameter("bericht") %>
<%= request.getAttribute("code") %>

Als gebruik wordt gemaakt vam EL, dan is de scriplet geheel overbodig en worden de JSP-expressies in coderen.jsp vervangen door;
${foutboodschap}
${param.bericht}

In de pagina gecodeerd.jsp worden de 2 JSP-expressies vervangen door:
${param.bericht}
${code}

A) Aan welke eisen moet een klasse voldoen om aangemerkt te kunnen worden als JavaBean?
b) Welke extra eigenschap is gebruikelijk voor JavaBeans?

a) Een JavaBean is een Java-klasse die
- een parameterloze constructor bevat
- waarvan alle object-attributen private of protected zijn (eventuele klassenattributen mogen wel public zijn)
- voor elk attribuut set- en get-methoden bevat volgens de gebruikelijke naamconvente: een niet-boolean attribuut van x van tpe Y heeft methoden getX() en setX(Y); een boolean attribuut x heeft methoden isX() en setX(boolean)
b) Het is gebruikelijk dateen JavaBean de interface java.io.Serializable implementeert en dus weggeschreven kan worden als object (serialisatie)

A) Aan welke eis moet een Java-attribuut voldoen om toegankelijk te zijn via een EL-expressie?
b) Betekent dit noodzakelijkerwijs dat de klasse een JavaBean moet zijn?

a) Een Java-attribuut is toegankelijk via een EL-expressie als het een property is, ofwel een get-methode heeft volgens de gebruikelijk naamconventie
b) Deze eis is minder zwaar dan de eis dat de klase een Javabean is; een parameterloze constructor in de klasse en een set-methode voor het attribuut zijn niet nodig

Gegeven zijn de volgende 2 EL-expressies:
${sessionScope.x}
${x}
Is de betekenis van deze expressies identiek? Zo ja, waarom; zo niet, wat is het verschil?

De betekenis van deze expressies is niet gelijk. De eerste expressie levert de warde van het scope-attribuut met de naam x in het session-object (of null als dat attribuut niet bestaat). de tweede expressie doorzoekt vier mogelijke scopes naar een attribuut met die naam: page, request, session en application in deze volgorde

De vragen op deze pagina komen uit de samenvatting van het volgende studiemateriaal:

  • Een unieke studie- en oefentool
  • Nooit meer iets twee keer studeren
  • Haal de cijfers waar je op hoopt
  • 100% zeker alles onthouden
Onthoud sneller, leer beter. Wetenschappelijk bewezen.
Trustpilot-logo