CodeGym/Java Course/Modulo 3/JSP: modo dichiarativo per definire un servlet

JSP: modo dichiarativo per definire un servlet

Disponibile

1.1 Introduzione a JSP

Ci sono due modi popolari per scrivere un servlet: imperativo e dichiarativo . Abbiamo già affrontato il primo: questo è, in effetti, un Servlet. Il secondo si chiama JSP (Java Server Pages) e ora lo conosceremo.

Esempio JSP servlet:

<html>
    <body>
        <% out.print(2*5); %>
    </body>
 </html>

Non molto simile al classico Servlet a cui siamo abituati, vero? Questo è vero. JSP è una pagina HTML con inserti di codice Java (evidenziati in verde) .

Vedi, se hai molto codice Java in un servlet e poco codice HTML, allora ti senti più a tuo agio nell'usare un classico servlet . Ma cosa succede se hai bisogno di una pagina HTML di grandi dimensioni in cui solo un paio di righe vengono modificate dal server?

In questo caso, la cosa più semplice sarebbe creare questa pagina HTML ed eseguire in qualche modo il codice Java sul server proprio al suo interno.

1.2 Compilazione di JSP

Diamo un'occhiata a un altro esempio:

<html>
  <body>
    <%
        double num = Math.random();
        if (num > 0.95) {
     %>
         <h2>You are lucky, user!</h2><p>(<%= num %>)</p>
    <%
        }
    %>
  </body>
</html>

Otteniamo un numero casuale e, se è maggiore di 0,95, stampiamo il testo "Sei fortunato, utente!"

Il codice Java è evidenziato qui in blu . Normale (non evidenziato) - Codice HTML e rosso - tag di servizio , che aiutano a capire dove si trova il codice Java e dove si trova l'HTML.

Noti qualcosa di strano? La parentesi graffa di chiusura "}"è in un altro "code block". Qual è il modo giusto per scrivere tale codice? Come funziona?

La risposta sarà semplicissima :)

Il web server, dopo aver trovato un file JSP, lo compila in un classico servlet. Sulla base della pagina JSP di cui sopra, verrà generato questo Servlet:

public class HelloServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)  throws Exception {
    PrintWriter out = response.getWriter();
    out.print("<html> ");
    out.print("<body>");
        double num = Math.random();
        if (num > 0.95) {
            out.print("<h2>You're lucky user! </h2><p>(" + num + ")</p>");
        }
    out.print("</body>");
    out.print("</html>");
    }
}

Il contenitore Web ha appena generato il codice servlet, in cui l'HTML si è trasformato in testo e gli inserti di codice Java sono diventati un normale codice Java!

Commenti
  • Popolari
  • Nuovi
  • Vecchi
Devi avere effettuato l'accesso per lasciare un commento
Questa pagina non ha ancora commenti