CodeGym/Java kurs/Modul 3/JSP: deklarativ måte å definere en servlet på

JSP: deklarativ måte å definere en servlet på

Tilgjengelig

1.1 Introduksjon til JSP

Det er to populære måter å skrive en servlet på: imperativ og deklarativ . Vi har allerede behandlet den første - dette er faktisk en Servlet. Den andre heter JSP (Java Server Pages), og vi skal gjøre oss kjent med den nå.

Servlet JSP eksempel:

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

Ikke veldig lik den klassiske Servlet vi er vant til, er det vel? Dette er sant. JSP er en HTML-side med Java-kodeinnlegg (uthevet i grønt) .

Du skjønner, hvis du har mye Java-kode i en servlet og lite HTML-kode, er du mer komfortabel med å bruke en klassisk servlet . Men hva om du trenger en stor HTML-side der bare et par linjer endres av serveren?

I dette tilfellet ville det enkleste være å lage denne HTML-siden og på en eller annen måte kjøre Java-koden på serveren rett i den.

1.2 Kompilere JSP-er

La oss se på et annet eksempel:

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

Vi får et tilfeldig tall, og hvis det er større enn 0,95, skriver vi ut teksten "Du er heldig, bruker!"

Java-kode er uthevet her i blått . Normal (ikke uthevet) - HTML-kode, og rød - service-tags , som hjelper til med å forstå hvor Java-koden er og hvor HTML-en er.

Legger du merke til noe rart? Den avsluttende krøllete bøylen "}"er i en annen "code block". Hva er den riktige måten å skrive slik kode på? Hvordan fungerer det i det hele tatt?

Svaret blir veldig enkelt :)

Nettserveren, etter at den finner en JSP-fil, kompilerer den til en klassisk servlet. Basert på JSP-siden ovenfor, vil denne Servleten bli generert:

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>");
    }
}

Nettbeholderen genererte nettopp servlet-koden, der HTML ble til tekst og Java-kodeinnleggene ble vanlig Java-kode!

Kommentarer
  • Populær
  • Ny
  • Gammel
Du må være pålogget for å legge igjen en kommentar
Denne siden har ingen kommentarer ennå