2.1 Direttive JSP
Poiché abbiamo scoperto che il file JSP viene convertito in un normale servlet, puoi scrivere il normale codice Java al suo interno. E in questo codice Java, puoi usare varie classi (Math dall'esempio). Questo è ancora meglio! Ma possiamo vedere che tutto il codice è stato spostato in un doGet()
metodo servlet. E questo solleva immediatamente diverse domande:
- Come fare in modo che il codice venga spostato nel metodo
doPost()
? - Come aggiungere il proprio codice al metodo
init()
? - Come alla fine registrare le importazioni di classe?
Ottime domande e, naturalmente, hanno una risposta: le direttive JSP. Tutto il codice non HTML all'interno di un JSP deve essere racchiuso tra parentesi speciali <%
e %>
. Tutte le direttive JSP sono fornite da un modello:
<%@ directive %>
Ecco un elenco degli attributi delle direttive di pagina più popolari:
Esempio | Descrizione | ||
---|---|---|---|
1 | importare | <%@ page import="java.util.Date" %> |
Importa una classe |
2 | tipo di contenuto | <%@ page contentType=text/html %> |
Imposta contentType |
3 | estende | <%@ page extends="Object" %> |
Puoi impostare la classe base |
4 | informazioni | <%@ page info="Author: Peter Ivanovich; version:1.0" %> |
Imposta i dati per getServletInfo() |
5 | respingente | <%@ page buffer="16kb" %> |
Imposta la dimensione del buffer di risposta |
6 | lingua | <%@ page language="java" %> |
Specifica la lingua, il valore predefinito è Java |
7 | isELIgnorato | <%@ page isELIgnored="true" %> |
Consente di disabilitare gli script EL |
8 | èThreadSafe | <%@ page isThreadSafe="false" %> |
Punta a thread-safe |
9 | autolavaggio | <%@ page autoFlush="false" %> |
Gestisce le scritture nel buffer |
10 | sessione | <%@ page session="false" %> |
Puoi disabilitare la sessione per la pagina |
undici | pageEncoding | <%@ page pageEncoding="UTF-8"%> |
È possibile impostare la codifica della pagina |
12 | errorPage | <%@ page errorPage="errorpage.jsp" %> |
È possibile impostare una pagina di errore |
2.2 Importazioni
Aggiungiamo alcune importazioni al nostro file JSP per divertimento e definiamo una classe base.
Esempio di file JSP:
<%@ 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>
E questo è ciò che ne verrà fuori:
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> ");
}
}
Lavori. Grande!
GO TO FULL VERSION