CodeGym/Java tanfolyam//JSP: deklaratív módszer a szervlet meghatározására

JSP: deklaratív módszer a szervlet meghatározására

Szint, Lecke
Elérhető

1.1 Bevezetés a JSP-be

Két népszerű módja van a szervlet írásának: kötelező és deklaratív . Az elsővel már foglalkoztunk - ez valójában egy Servlet. A második neve JSP (Java Server Pages), ezzel fogunk most megismerkedni.

Servlet JSP példa:

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

Nem nagyon hasonlít a klasszikus Servlethez, amit megszoktunk, igaz? Ez igaz. A JSP egy HTML-oldal Java kód beillesztésekkel (zöld színnel kiemelve) .

Látod, ha sok Java kódod van egy szervletben és kevés HTML kódod, akkor kényelmesebb a klasszikus szervlet használata . De mi van akkor, ha egy nagy HTML-oldalra van szüksége, amelyben csak néhány sort változtat meg a szerver?

Ebben az esetben a legegyszerűbb az lenne, ha létrehoznánk ezt a HTML oldalt, és valahogy végrehajtanánk a Java kódot a szerveren, közvetlenül rajta.

1.2 JSP-k fordítása

Nézzünk egy másik példát:

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

Kapunk egy véletlen számot, és ha nagyobb, mint 0,95, akkor kinyomtatjuk a "Szerencséd van, felhasználó!"

A Java kód itt kék színnel van kiemelve . Normál (nem kiemelve) - HTML kód és piros - service tagek , amelyek segítenek megérteni, hol van a Java kód és hol a HTML.

Észrevesz valami furcsaságot? A záró göndör zárójel "}"egy másikban van "code block". Mi a helyes módja egy ilyen kód írásának? Egyáltalán hogy működik?

Nagyon egyszerű lesz a válasz :)

A webszerver, miután talált egy JSP-fájlt, lefordítja azt egy klasszikus szervletté. A fenti JSP-oldal alapján ez a Servlet jön létre:

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

A webkonténer éppen a servlet kódot generálta, ahol a HTML szöveggé, a Java kód beillesztései pedig normál Java kódokká váltak!

Hozzászólások
  • Népszerű
  • Új
  • Régi
Hozzászólás írásához be kell jelentkeznie
Ennek az oldalnak még nincsenek megjegyzései