1.1 Introduktion till JSP
Det finns två populära sätt att skriva en servlet: imperativ och deklarativ . Vi har redan tagit itu med den första - det här är faktiskt en Servlet. Den andra heter JSP (Java Server Pages), och vi ska bekanta oss med den nu.
Servlet JSP exempel:
<html>
<body>
<% out.print(2*5); %>
</body>
</html>
Inte särskilt lik den klassiska Servlet vi är vana vid, eller hur? Detta är sant. JSP är en HTML-sida med Java-kodinfogningar (markerad i grönt) .
Du förstår, om du har mycket Java-kod i en servlet och lite HTML-kod, är du mer bekväm med att använda en klassisk servlet . Men vad händer om du behöver en stor HTML-sida där endast ett par rader ändras av servern?
I det här fallet skulle det enklaste vara att skapa den här HTML-sidan och på något sätt köra Java-koden på servern direkt i den.
1.2 Kompilera JSP:er
Låt oss titta på ett annat exempel:
<html>
<body>
<%
double num = Math.random();
if (num > 0.95) {
%>
<h2>You are lucky, user!</h2><p>(<%= num %>)</p>
<%
}
%>
</body>
</html>
Vi får ett slumptal, och om det är större än 0,95 skriver vi ut texten "Du har tur, användare!"
Java-koden är markerad här i blått . Normal (ej markerad) - HTML-kod och röd - servicetaggar , som hjälper till att förstå var Java-koden finns och var HTML-koden finns.
Märker du något konstigt? Den avslutande lockiga tandställningen "}"
finns i en annan "code block"
. Vad är det rätta sättet att skriva sådan kod? Hur fungerar det ens?
Svaret blir superenkelt :)
Efter att webbservern hittar en JSP-fil, kompilerar den till en klassisk servlet. Baserat på ovanstående JSP-sida kommer denna Servlet att genereras:
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>");
}
}
Webbbehållaren genererade precis servletkoden, där HTML förvandlades till text och Java-kodinläggen blev vanlig Java-kod!
GO TO FULL VERSION