2.1 Directives JSP

Puisque nous avons découvert que le fichier JSP est converti en un servlet normal, vous pouvez y écrire du code Java normal. Et dans ce code Java, vous pouvez utiliser différentes classes (Math de l'exemple). C'est encore mieux ! Mais nous pouvons voir que tout le code a été déplacé vers une doGet()méthode de servlet. Et cela soulève immédiatement plusieurs questions :

  • Comment faire pour que le code soit déplacé vers la méthode doPost()?
  • Comment ajouter votre propre code à la méthode init()?
  • Comment au final enregistrer les importations de classe ?

Excellentes questions, et, bien sûr, elles ont une réponse - les directives JSP. Tout code non-HTML dans une JSP doit être placé entre crochets spéciaux <%et %>. Toutes les directives JSP sont données par un modèle :

<%@ directive %>

Voici une liste des attributs de directive de page les plus populaires :

Exemple Description
1 importer <%@ page import="java.util.Date" %> Importe une classe
2 type de contenu <%@ page contentType=text/html %> Définit le type de contenu
3 s'étend <%@ page extends="Object" %> Vous pouvez définir la classe de base
4 Info <%@ page info="Author: Peter Ivanovich; version:1.0" %> Définit les données pour getServletInfo()
5 amortir <%@ page buffer="16kb" %> Définit la taille du tampon de réponse
6 langue <%@ page language="java" %> Spécifie la langue, la valeur par défaut est Java
7 estELignoré <%@ page isELIgnored="true" %> Permet de désactiver les scripts EL
8 isThreadSafe <%@ page isThreadSafe="false" %> Pointe vers threadsafe
9 autoFlush <%@ page autoFlush="false" %> Gère les écritures de tampon
dix session <%@ page session="false" %> Vous pouvez désactiver la session pour la page
onze pageEncoding <%@ page pageEncoding="UTF-8"%> Vous pouvez définir l'encodage de la page
12 erreurPage <%@ page errorPage="errorpage.jsp" %> Vous pouvez définir une page d'erreur

2.2 Importations

Ajoutons quelques importations à notre fichier JSP pour le plaisir et définissons une classe de base.

Exemple de fichier 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> 

Et voici ce qu'il en sortira :

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> ");
    }
}

Travaux. Super!