JSP - Sintassi
In questo capitolo, discuteremo la sintassi in JSP. Comprenderemo l'uso di base della sintassi semplice (cioè gli elementi) coinvolti nello sviluppo di JSP.
Elementi di JSP
Gli elementi di JSP sono stati descritti di seguito:
Lo Scriptlet
Uno scriptlet può contenere un numero qualsiasi di istruzioni in linguaggio JAVA, dichiarazioni di variabili o metodi o espressioni valide nel linguaggio di scripting della pagina.
Di seguito è riportata la sintassi di Scriptlet:
<% code fragment %>
È possibile scrivere l'equivalente XML della sintassi precedente come segue:
<jsp:scriptlet>
code fragment
</jsp:scriptlet>
Qualsiasi testo, tag HTML o elemento JSP che scrivi deve essere esterno allo scriptlet. Di seguito è riportato il semplice e primo esempio per JSP:
<html>
<head><title>Hello World</title></head>
<body>
Hello World!<br/>
<%
out.println("Your IP address is " + request.getRemoteAddr());
%>
</body>
</html>
NOTE - Supponendo che Apache Tomcat sia installato in C: \ apache-tomcat-7.0.2 e il tuo ambiente sia configurato come da tutorial sull'impostazione dell'ambiente.
Cerchiamo di mantenere il codice sopra nel file JSP hello.jsp e metti questo file in C:\apache-tomcat7.0.2\webapps\ROOTdirectory. Sfoglia lo stesso utilizzando l'URLhttp://localhost:8080/hello.jsp. Il codice sopra genererà il seguente risultato:
Dichiarazioni JSP
Una dichiarazione dichiara una o più variabili o metodi che è possibile utilizzare nel codice Java successivamente nel file JSP. È necessario dichiarare la variabile o il metodo prima di utilizzarlo nel file JSP.
Di seguito è riportata la sintassi per le dichiarazioni JSP:
<%! declaration; [ declaration; ]+ ... %>
È possibile scrivere l'equivalente XML della sintassi precedente come segue:
<jsp:declaration>
code fragment
</jsp:declaration>
Di seguito è riportato un esempio per le dichiarazioni JSP:
<%! int i = 0; %>
<%! int a, b, c; %>
<%! Circle a = new Circle(2.0); %>
Espressione JSP
Un elemento espressione JSP contiene un'espressione del linguaggio di scripting che viene valutata, convertita in una stringa e inserita nel punto in cui viene visualizzata l'espressione nel file JSP.
Poiché il valore di un'espressione viene convertito in una stringa, è possibile utilizzare un'espressione all'interno di una riga di testo, indipendentemente dal fatto che sia contrassegnata o meno con HTML, in un file JSP.
L'elemento espressione può contenere qualsiasi espressione valida in base alla specifica del linguaggio Java ma non è possibile utilizzare un punto e virgola per terminare un'espressione.
Di seguito è riportata la sintassi di JSP Expression:
<%= expression %>
È possibile scrivere l'equivalente XML della sintassi precedente come segue:
<jsp:expression>
expression
</jsp:expression>
L'esempio seguente mostra un'espressione JSP:
<html>
<head><title>A Comment Test</title></head>
<body>
<p>Today's date: <%= (new java.util.Date()).toLocaleString()%></p>
</body>
</html>
Il codice sopra genererà il seguente risultato:
Today's date: 11-Sep-2010 21:24:25
Commenti JSP
Il commento JSP contrassegna il testo o le istruzioni che il contenitore JSP deve ignorare. Un commento JSP è utile quando si desidera nascondere o "commentare" una parte della pagina JSP.
Di seguito è riportata la sintassi dei commenti JSP:
<%-- This is JSP comment --%>
L'esempio seguente mostra i commenti JSP:
<html>
<head><title>A Comment Test</title></head>
<body>
<h2>A Test of Comments</h2>
<%-- This comment will not be visible in the page source --%>
</body>
</html>
Il codice sopra genererà il seguente risultato:
A Test of Comments
Ci sono pochi costrutti speciali che puoi usare in vari casi per inserire commenti o caratteri che altrimenti verrebbero trattati in modo speciale. Ecco un riepilogo:
S.No. | Sintassi e scopo |
---|---|
1 | <%-- comment --%> Un commento JSP. Ignorato dal motore JSP. |
2 | <!-- comment --> Un commento HTML. Ignorato dal browser. |
3 | <\% Rappresenta static <% literal. |
4 | %\> Rappresenta% statico> letterale. |
5 | \' Una virgoletta singola in un attributo che utilizza virgolette singole. |
6 | \" Virgolette doppie in un attributo che utilizza virgolette doppie. |
Direttive JSP
Una direttiva JSP influisce sulla struttura complessiva della classe servlet. Di solito ha la seguente forma:
<%@ directive attribute="value" %>
Esistono tre tipi di tag di direttiva:
S.No. | Direttiva e descrizione |
---|---|
1 | <%@ page ... %> Definisce gli attributi dipendenti dalla pagina, come il linguaggio di scripting, la pagina di errore e i requisiti di buffering. |
2 | <%@ include ... %> Include un file durante la fase di traduzione. |
3 | <%@ taglib ... %> Dichiara una libreria di tag, contenente azioni personalizzate, utilizzata nella pagina |
Spiegheremo la direttiva JSP in un capitolo separato JSP - Direttive
Azioni JSP
Utilizzo delle azioni JSP constructsnella sintassi XML per controllare il comportamento del motore servlet. È possibile inserire dinamicamente un file, riutilizzare i componenti JavaBeans, inoltrare l'utente a un'altra pagina o generare HTML per il plug-in Java.
Esiste una sola sintassi per l'elemento Action, poiché è conforme allo standard XML:
<jsp:action_name attribute="value" />
Gli elementi di azione sono fondamentalmente funzioni predefinite. La tabella seguente elenca le azioni JSP disponibili:
S.No. | Sintassi e scopo |
---|---|
1 | jsp:include Include un file nel momento in cui viene richiesta la pagina. |
2 | jsp:useBean Trova o crea un'istanza di un JavaBean. |
3 | jsp:setProperty Imposta la proprietà di un JavaBean. |
4 | jsp:getProperty Inserisce la proprietà di un JavaBean nell'output. |
5 | jsp:forward Inoltra il richiedente a una nuova pagina. |
6 | jsp:plugin Genera codice specifico del browser che crea un tag OBJECT o EMBED per il plug-in Java. |
7 | jsp:element Definisce dinamicamente gli elementi XML. |
8 | jsp:attribute Definisce l'attributo dell'elemento XML definito dinamicamente. |
9 | jsp:body Definisce il corpo dell'elemento XML definito dinamicamente. |
10 | jsp:text Utilizzato per scrivere il testo del modello nelle pagine e nei documenti JSP. |
Spiegheremo le azioni JSP in un capitolo separato JSP - Azioni
Oggetti impliciti JSP
JSP supporta nove variabili definite automaticamente, chiamate anche oggetti impliciti. Queste variabili sono:
S.No. | Oggetto e descrizione |
---|---|
1 | request Questo è il HttpServletRequest oggetto associato alla richiesta. |
2 | response Questo è il HttpServletResponse oggetto associato alla risposta al cliente. |
3 | out Questo è il PrintWriter oggetto utilizzato per inviare l'output al client. |
4 | session Questo è il HttpSession oggetto associato alla richiesta. |
5 | application Questo è il ServletContext oggetto associato al contesto dell'applicazione. |
6 | config Questo è il ServletConfig oggetto associato alla pagina. |
7 | pageContext Questo incapsula l'uso di funzionalità specifiche del server come prestazioni più elevate JspWriters. |
8 | page Questo è semplicemente un sinonimo di this, e viene utilizzato per chiamare i metodi definiti dalla classe servlet tradotta. |
9 | Exception Il Exception L'oggetto consente l'accesso ai dati dell'eccezione da parte del JSP designato. |
Spiegheremo gli oggetti impliciti JSP in un capitolo separato JSP - Oggetti impliciti .
Dichiarazioni di flusso di controllo
Puoi utilizzare tutte le API e gli elementi costitutivi di Java nella tua programmazione JSP, comprese le istruzioni per il processo decisionale, i loop, ecc.
Dichiarazioni sul processo decisionale
Il if...else Il blocco inizia come un normale Scriptlet, ma lo Scriptlet è chiuso ad ogni riga con il testo HTML incluso tra i tag Scriptlet.
<%! int day = 3; %>
<html>
<head><title>IF...ELSE Example</title></head>
<body>
<% if (day == 1 || day == 7) { %>
<p> Today is weekend</p>
<% } else { %>
<p> Today is not weekend</p>
<% } %>
</body>
</html>
Il codice sopra genererà il seguente risultato:
Today is not weekend
Ora guarda quanto segue switch...case blocco che è stato scritto in modo leggermente diverso usando out.println() e dentro Scriptletas -
<%! int day = 3; %>
<html>
<head><title>SWITCH...CASE Example</title></head>
<body>
<%
switch(day) {
case 0:
out.println("It\'s Sunday.");
break;
case 1:
out.println("It\'s Monday.");
break;
case 2:
out.println("It\'s Tuesday.");
break;
case 3:
out.println("It\'s Wednesday.");
break;
case 4:
out.println("It\'s Thursday.");
break;
case 5:
out.println("It\'s Friday.");
break;
default:
out.println("It's Saturday.");
}
%>
</body>
</html>
Il codice sopra genererà il seguente risultato:
It's Wednesday.
Dichiarazioni di loop
Puoi anche utilizzare tre tipi base di blocchi di loop in Java: for, while, and do…while blocchi nella programmazione JSP.
Diamo un'occhiata a quanto segue for esempio di ciclo -
<%! int fontSize; %>
<html>
<head><title>FOR LOOP Example</title></head>
<body>
<%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
<font color = "green" size = "<%= fontSize %>">
JSP Tutorial
</font><br />
<%}%>
</body>
</html>
Il codice sopra genererà il seguente risultato:
JSP Tutorial
JSP Tutorial
JSP Tutorial
L'esempio sopra può essere scritto usando il while loop come segue -
<%! int fontSize; %>
<html>
<head><title>WHILE LOOP Example</title></head>
<body>
<%while ( fontSize <= 3){ %>
<font color = "green" size = "<%= fontSize %>">
JSP Tutorial
</font><br />
<%fontSize++;%>
<%}%>
</body>
</html>
Il codice sopra genererà il seguente risultato:
JSP Tutorial
JSP Tutorial
JSP Tutorial
Operatori JSP
JSP supporta tutti gli operatori logici e aritmetici supportati da Java. La tabella seguente elenca tutti gli operatori con la precedenza più alta che compaiono nella parte superiore della tabella, quelli con la priorità più bassa in fondo.
All'interno di un'espressione, verranno valutati per primi gli operatori con precedenza più alta.
Categoria | Operatore | Associatività |
---|---|---|
Postfix | () []. (operatore punto) | Da sinistra a destra |
Unario | ++ - -! ~ | Da destra a sinistra |
Moltiplicativo | * /% | Da sinistra a destra |
Additivo | + - | Da sinistra a destra |
Cambio | >> >>> << | Da sinistra a destra |
Relazionale | >> = <<= | Da sinistra a destra |
Uguaglianza | ==! = | Da sinistra a destra |
Bitwise AND | & | Da sinistra a destra |
Bitwise XOR | ^ | Da sinistra a destra |
OR bit per bit | | | Da sinistra a destra |
AND logico | && | Da sinistra a destra |
OR logico | || | Da sinistra a destra |
Condizionale | ?: | Da destra a sinistra |
Incarico | = + = - = * = / =% = >> = << = & = ^ = | = | Da destra a sinistra |
Virgola | , | Da sinistra a destra |
Letterali JSP
Il linguaggio delle espressioni JSP definisce i seguenti letterali:
Boolean - vero e falso
Integer - come in Java
Floating point - come in Java
String- con virgolette singole e doppie; "è sottoposto a escape come \", 'è sottoposto a escape come \' e \ è preceduto da \\.
Null - null