2.1 Directivas JSP
Dado que descubrimos que el archivo JSP se convierte en un servlet normal, puede escribir código Java normal en él. Y en este código Java, puede usar varias clases (Matemáticas del ejemplo). ¡Esto es aún mejor! Pero podemos ver que todo el código se ha movido a un doGet()
método de servlet. Y esto plantea inmediatamente varias preguntas:
- ¿Cómo hacer que el código se mueva al método
doPost()
? - ¿Cómo agregar su propio código al método
init()
? - ¿Cómo al final registrar las importaciones de clase?
Grandes preguntas y, por supuesto, tienen una respuesta: directivas JSP. Todo el código que no sea HTML dentro de un JSP debe encerrarse entre corchetes especiales <%
y %>
. Todas las directivas JSP están dadas por una plantilla:
<%@ directive %>
Aquí hay una lista de los atributos de directiva de página más populares:
Ejemplo | Descripción | ||
---|---|---|---|
1 | importar | <%@ page import="java.util.Date" %> |
Importa una clase |
2 | tipo de contenido | <%@ page contentType=text/html %> |
Establece contentType |
3 | extiende | <%@ page extends="Object" %> |
Puede establecer la clase base |
4 | información | <%@ page info="Author: Peter Ivanovich; version:1.0" %> |
Establece datos para getServletInfo() |
5 | buffer | <%@ page buffer="16kb" %> |
Establece el tamaño del búfer de respuesta |
6 | idioma | <%@ page language="java" %> |
Especifica el idioma, el predeterminado es Java |
7 | esELignorado | <%@ page isELIgnored="true" %> |
Le permite deshabilitar los scripts EL |
8 | es seguro para subprocesos | <%@ page isThreadSafe="false" %> |
Puntos para threadsafe |
9 | descarga automática | <%@ page autoFlush="false" %> |
Administra las escrituras en el búfer |
10 | sesión | <%@ page session="false" %> |
Puede deshabilitar la sesión para la página. |
once | codificación de página | <%@ page pageEncoding="UTF-8"%> |
Puede configurar la codificación de la página |
12 | página de error | <%@ page errorPage="errorpage.jsp" %> |
Puede establecer una página de error |
2.2 Importaciones
Por diversión, agreguemos algunas importaciones a nuestro archivo JSP y definamos una clase base.
Ejemplo de archivo 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>
Y esto es lo que saldrá de ello:
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> ");
}
}
Obras. ¡Excelente!