2.1 JSP-richtlijnen
Omdat we erachter zijn gekomen dat het JSP-bestand wordt omgezet in een gewone servlet, kun je er normale Java-code in schrijven. En in deze Java-code kun je verschillende klassen gebruiken (Math uit het voorbeeld). Dit is nog beter! Maar we kunnen zien dat alle code is verplaatst naar een doGet()
servletmethode. En dit roept meteen verschillende vragen op:
- Hoe zorg je ervoor dat de code naar de methode wordt verplaatst
doPost()
? - Hoe voeg je je eigen code toe aan de methode
init()
? - Hoe uiteindelijk klasse-import registreren?
Geweldige vragen, en natuurlijk hebben ze een antwoord: JSP-richtlijnen. Alle niet-HTML-code binnen een JSP moet tussen speciale haakjes <%
en %>
. Alle JSP-richtlijnen worden gegeven door een sjabloon:
<%@ directive %>
Hier is een lijst met de meest populaire kenmerken van paginarichtlijnen:
Voorbeeld | Beschrijving | ||
---|---|---|---|
1 | importeren | <%@ page import="java.util.Date" %> |
Importeert een klasse |
2 | contentType | <%@ page contentType=text/html %> |
Stelt contentType in |
3 | strekt zich uit | <%@ page extends="Object" %> |
U kunt de basisklasse instellen |
4 | informatie | <%@ page info="Author: Peter Ivanovich; version:1.0" %> |
Stelt gegevens in voor getServletInfo() |
5 | buffer | <%@ page buffer="16kb" %> |
Stelt de grootte van de responsbuffer in |
6 | taal | <%@ page language="java" %> |
Specificeert de taal, standaard is Java |
7 | wordt genegeerd | <%@ page isELIgnored="true" %> |
Hiermee kunt u EL-scripts uitschakelen |
8 | isThreadSafe | <%@ page isThreadSafe="false" %> |
Verwijst naar threadsafe |
9 | autoFlush | <%@ page autoFlush="false" %> |
Beheert bufferschrijfbewerkingen |
10 | sessie | <%@ page session="false" %> |
U kunt de sessie voor de pagina uitschakelen |
elf | paginaCodering | <%@ page pageEncoding="UTF-8"%> |
U kunt de paginacodering instellen |
12 | foutPagina | <%@ page errorPage="errorpage.jsp" %> |
U kunt een foutpagina instellen |
2.2 Invoer
Laten we voor de lol een paar imports aan ons JSP-bestand toevoegen en een basisklasse definiëren.
JSP-bestand voorbeeld:
<%@ page import="java.util.Date" %>
<%@ page import="java.lang.Math" %>
<%@ page extends="com.codegym.MyHttpServlet" %>
<html>
<body>
<%
double num = Math.random();
if (num > 0.95) {
%>
<h2>You are lucky, user!</h2><p>(<%= num %>)</p>
<%
}
%>
</body>
</html>
En dit is wat er van komt:
import java.util.Date;
import java.lang.Math;
public class HelloServlet extends com.codegym.MyHttpServlet {
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> ");
}
}
Werken. Geweldig!
GO TO FULL VERSION