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