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!