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!
GO TO FULL VERSION