Expressietaal in JSP
โก Slimme samenvatting
De expressietaal in JSP vereenvoudigt de toegang tot gegevens die zijn opgeslagen in JavaBeans en impliciete objecten zoals request, session en application. Geรฏntroduceerd in JSP 2.0, ondersteunt het rekenkundige, logische en relationele operatoren, evenals beslissings- en lusinstructies die binnen EL-tags zijn geschreven.

Wat is expressietaal (EL)?
Expression Language (EL) is een mechanisme dat de toegankelijkheid van de gegevens die zijn opgeslagen in Java bean-component en andere objecten zoals aanvraag, sessie en applicatie, enz.
Er zijn veel operatoren in JSP die in EL worden gebruikt, zoals rekenkundige en logische operatoren om een โโexpressie uit te voeren. Het werd geรฏntroduceerd in JSP 2.0
JSP-syntaxis van expressietaal (EL)
Syntaxis van EL : ${expressie}
- In JSP wordt alles wat aanwezig is in de accolades tijdens runtime geรซvalueerd en naar de uitvoerstroom verzonden.
- De uitdrukking is een geldige EL-uitdrukking en kan worden gemengd met een statische tekst en kan worden gecombineerd met andere uitdrukkingen om een โโgrotere uitdrukking te vormen.
Om een โโbeter idee te krijgen van hoe expressie werkt in JSP, zullen we het onderstaande voorbeeld bekijken. In dit voorbeeld zullen we zien hoe EL wordt gebruikt als een operator om twee getallen (1+2) op te tellen en respectievelijk de output te krijgen.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru JSP1</title> </head> <body> <a>Expression is:</a> ${1+2}; </body> </html>
Uitleg van Code:
- Code Regel 11: Expression Language (EL) wordt gebruikt om twee getallen op te tellen (1+2), waardoor het resultaat 3 is.
Wanneer u de bovenstaande code uitvoert, krijgt u de volgende uitvoer.
uitgang:
- De uitdrukking is: 3 (Aangezien de getallen 1+2 worden opgeteld en als uitvoer dienen)
Flow Control-verklaringen:
JSP biedt de kracht van Java in de applicatie te integreren. We kunnen alle APIโs en bouwstenen van gebruiken Java in JSP-programmering inclusief controlestroominstructies die besluitvorming en de lusinstructies omvatten.
Er worden hieronder twee typen stroombesturingsinstructies beschreven;
- Besluitvormingsverklaringen
- Loop-verklaringen
Besluitvormingsverklaringen:
De besluitvormingsverklaring in JSP is gebaseerd op de vraag of de gestelde voorwaarde waar of onwaar is. De verklaring zal zich dienovereenkomstig gedragen.
Hieronder worden twee soorten besluitvormingsverklaringen beschreven:
- Als โ anders
- schakelaar
JSP Als-anders
De instructie 'If else' is de basis van alle instructies voor de besturingsstroom en vertelt het programma dat het een bepaald gedeelte van de code alleen moet uitvoeren als de specifieke test als 'true' wordt beoordeeld.
Deze voorwaarde wordt gebruikt om voor meer dan รฉรฉn voorwaarde te testen of deze waar of onwaar is.
- Als de eerste voorwaarde waar is, wordt โif blockโ uitgevoerd en
- als het false is, wordt โelse blockโ uitgevoerd
Syntaxis voor if โ else-instructie:
If(test condition) { //Block of statements } else { //Block of statements }
In dit voorbeeld gaan we de โif elseโ-voorwaarde testen door een variabele te nemen en de waarde ervan te controleren om te zien of de variabele overeenkomt met wat deze heeft geรฏnitialiseerd:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru JSP2</title> </head> <body> <%! int month=5; %> <% if(month==2){ %> <a>Its February</a> <% }else{ %> <a>Any month other than February</a> <%} %> </body> </html>
Uitleg van de code:
- Code Regel 10: Variabele met de naam maand wordt geรฏnitialiseerd op 5 in de expressietags
- Code Regel 11: In de EL-tags staat een โif-voorwaardeโ waarin staat dat als de maand gelijk is aan 2 (de voorwaarde wordt hier getest als waar of onwaar)
- Code Regel 12: Als de voorwaarde waar is, dat wil zeggen dat de variabele maand 2 is, wordt deze afgedrukt naar de uitvoerstroom
- Code Lijn 13-15: Als bovenstaande voorwaarde mislukt, wordt deze verplaatst naar het andere gedeelte voor alle andere gevallen waarin de instructie naar de uitvoerstroom wordt afgedrukt en de voorwaarde is gesloten
Wanneer u de bovenstaande code uitvoert, krijgt u de volgende uitvoer.
Output:
- Omdat de maand die we hebben 5 is, wat niet gelijk is aan #2 (februari). Daarom hebben we de uitvoer "Elke maand behalve februari" (maand wordt genoemd als 5, dus anders worden uitgevoerd)
JSP-schakelaar
De hoofdtekst van de switch-instructie wordt een โswitch-blokโ genoemd.
- De switchcase wordt gebruikt om het aantal mogelijke uitvoeringspaden te controleren.
- Een switch kan bij alle datatypen worden gebruikt
- De switch-instructies bevatten meer dan รฉรฉn case en รฉรฉn standaardcase
- Het evalueert de expressie en voert vervolgens alle statements uit die de overeenkomende hoofdlettergevoeligheid volgen
Syntaxis voor switch-instructie:
switch (operator) { Case 1: Block of statements break; Case 2: Block of statements break; case n: Block of statements break; default: Block of statements break; }
- Het schakelblok begint met รฉรฉn parameter, namelijk de operator die moet worden doorgegeven en
- Dan zijn er nog verschillende gevallen die voorwaarden bieden en de voorwaarde die overeenkomt met de operator die het geval betreft, wordt uitgevoerd.
In het onderstaande voorbeeld hebben we een variabele 'week' gedefinieerd, die wordt gekoppeld aan de voorwaarde dat deze waar is. In dit geval is 'week' 2, dus 2.nd case komt overeen en de uitvoer is dinsdag:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru JSP3</title> </head> <body> <%! int week=2; %> <% switch(week){ case 0: out.println("Sunday"); break; case 1: out.println("Monday"); break; case 2: out.println("Tuesday"); break; case 3: out.println("wednesday"); break; case 4: out.println("Thursday"); break; case 5: out.println("Friday"); break; default: out.println("Saturday"); } %> </body> </html>
Uitleg van Code:
- Code Regel 10: Variabele met de naam week wordt geรฏnitialiseerd op 2 in de expressietags
- Code Regel 11: In de EL-tags wordt het schakelgeval gestart waarbij week als parameter wordt doorgegeven
- Code Regel 12 โ 29: Alle gevallen zijn genoemd, beginnend bij geval 0 tot en met geval 5, waarbij de waarde van de weekparameter overeenkomt met de gevallen, en dienovereenkomstig wordt de uitvoer afgedrukt. In dit geval is de waarde 2. In dit geval wordt geval 2 uitgevoerd. Hier is โoutโ de klasse van JSP die de uitvoerstroom schrijft voor het gegenereerde antwoord en โprintlnโ is een methode van die klasse.
- Code Lijn 30-32: Als de bovengenoemde gevallen mislukken, wordt het naar het standaardgedeelte verplaatst en uitgevoerd, waarbij de instructie naar de uitvoerstroom wordt afgedrukt en de voorwaarde wordt gesloten
Wanneer u de bovenstaande code uitvoert, krijgt u de volgende uitvoer.
Output:
- De uitvoer in dit geval is dinsdag, aangezien het tweede geval wordt aangeroepen.
Lusinstructies:
JSP Voor lus
Het wordt gebruikt voor het itereren van de elementen voor een bepaalde voorwaarde, en het heeft drie parameters.
- Variabele teller wordt geรฏnitialiseerd
- Voorwaarde totdat de lus moet worden uitgevoerd
- De teller moet worden verhoogd
For-lussyntaxis:
For(inti=0;i<n;i++) { //block of statements }
In dit voorbeeld hebben we een for-lus die itereert totdat de teller kleiner is dan het opgegeven getal:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru JSP4</title> </head> <body> <%! int num=5; %> <% out.println("Numbers are:"); for(int i=0;i<num;i++){ out.println(i); }%> </body> </html>
Uitleg voor de code:
- Code Regel 10: Variabele met de naam โnumโ wordt geรฏnitialiseerd op 5 in de expressietags
- Code Lijn 11-14: In de EL-tags is โoutโ de klasse van JSP en โprintlnโ is de methode van out die de uitvoerstroom afdrukt en de for-lus start die drie parameters heeft:
- Variabele i wordt geรฏnitialiseerd op 0,
- Er wordt een voorwaarde gesteld waarbij i kleiner is dan de lokale variabele num,
- En i wordt elke keer dat de lus itereert verhoogd.
In de hoofdtekst van "forloop" bevindt zich een klasse JSP die in de uitvoerstroom afdrukt met behulp van de methode println, waarbij we de variabele i afdrukken.
Wanneer u de bovenstaande code uitvoert, krijgt u de volgende uitvoer.
Output:
- uitgang Numbers zijn 0 1 2 3 4. In dit voorbeeld geven we de voorwaarde dat totdat de teller kleiner is dan gelijk aan een variabele, de โfor-lusโ moet worden uitgevoerd. Het getal is 5, dus de lus begint bij 0 en loopt tot 4 (5 keer). Vandaar de uitvoer.
JSP While-lus
Het wordt gebruikt om de geeft je de mogelijkheid waarin het รฉรฉn parameter van de voorwaarde heeft.
Syntax:
While(i<n) { //Block of statements }
In dit voorbeeld hebben we een while-lus die herhaalt totdat dag groter is dan gelijk aan de teller:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru JSP5</title> </head> <body> <%! int day=2; int i=1; %> <% while(day>=i){ if(day==i){ out.println("Its Monday"); break;} i++;} %> </body> </html>
Uitleg van de code:
- Code Regel 10: Variabele met de naam i wordt geรฏnitialiseerd op 1 en dag is 2 in de expressietags
- Code Lijn 11-17: In de EL-tags bevindt zich een "while-lus" die herhaalt totdat aan een voorwaarde is voldaan: als de dag groter of gelijk is aan de variabele i, is de voorwaarde waar (dag >= i). Binnen die lus bevindt zich een "if-voorwaarde" (dag is gelijk aan i). Als deze voorwaarde waar is, wordt de uitvoerstroom afgedrukt en wordt de while-lus beรซindigd; anders wordt de variabele i verhoogd en herhaalt de lus zich.
Wanneer we de code uitvoeren, krijgen we de volgende uitvoer
Uitvoer is:
- De uitvoer van deze code is โits Monday'.
JSP Operaverdraaid
JSP Operators ondersteunt de meeste rekenkundige en logische operatoren die worden ondersteund door Java binnen expressietaal (EL) tags. Veelgebruikte operatoren worden hieronder genoemd:
Hieronder staan โโde operatoren:
| . | Toegang tot een boneneigenschap of kaartinvoer |
| [] | Toegang tot een array- of lijstelement |
| () | Groepeer een subexpressie om de evaluatievolgorde te wijzigen |
| + | Toevoeging |
| - | Subtracde ontkenning of negatie van een waarde |
| * | Vermenigvuldiging |
| / of afd | afdeling |
| % of mod | Modulo (rest) |
| == of verg | Test voor gelijkheid |
| != of โโnee | Test voor ongelijkheid |
| < of lt | Test voor minder dan |
| > of gt | Test voor groter dan |
| <= of le | Test op minder dan of gelijk |
| >= of ge | Test op groter dan of gelijk |
| && of en | Test op logische AND |
| || of of | Test op logische OR |
| ! of niet | Unary Booleaans complement |
| Leeg | Test op lege variabelewaarden |
In dit voorbeeld
- We declareren twee variabelen num1 en num2 en nemen vervolgens een variabele num3, waarbij we de JSP-operator + by gebruiken om num1 en num2 op te tellen en num3 te krijgen.
- Vervolgens controleren we of num3 niet gelijk is aan 0 met behulp van JSP-operatoren (!=, >) en
- Neem vervolgens nog een variabele num4 door twee num1 te vermenigvuldigen en num2 krijgen we num4.
Al deze getallen moeten als uitvoer worden afgedrukt:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru JSP6</title> </head> <body> <% int num1=10; int num2 = 50; int num3 = num1+num2; if(num3 != 0 || num3 > 0){ int num4= num1*num2; out.println("Number 4 is " +num4); out.println("Number 3 is " +num3); }%> </body> </html>
Uitleg van de code:
- Code Regel 10: Variabele met de naam num1 wordt geรฏnitialiseerd op 10 en num2 op 50 in de expressietags
- Code Regel 11: De variabele num3 is de som van num1 en num2 waarbij we de opteloperator gebruiken
- Code Lijn 12-16: In de EL-tags hebben we een OR-voorwaarde gebruikt, een combinatie van logische en rekenkundige operatoren, om te controleren of num3 groter is dan 0 in de if-voorwaarde. De OR-voorwaarde wordt gebruikt wanneer een van de voorwaarden waar is; in dat geval wordt de if-voorwaarde uitgevoerd, waarin we de getallen "num1" en "num2" vermenigvuldigen en de uitvoer "num4" verkrijgen, waarna de uitvoerstroom wordt afgedrukt.
Wanneer u de bovenstaande code uitvoert, krijgt u de volgende uitvoer.
Output:
- De eerste uitvoer is Nummer 4 is 500 (variabele num4, dat is num1*num2)
- De tweede uitvoer is Nummer 3 is 60 (variabele num3 welke num1+num2)






