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!
GO TO FULL VERSION