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