Médiaforma

Java – Première approche – JSP

Print Friendly

Cette série d’articles passe en revue des domaines de programmation avancés de Java. Nous allons commencer par la création de pages Web dynamiques.

Deux approches sont possibles. Vous pouvez utiliser :

  • Java Server Page (JSP) en incluant des instructions Java dans les pages HTML/XML.
  • Des codes Java précompilés (servlets) pour générer plus rapidement les pages Web dynamiques.

Première approche – JSP

Le serveur reçoit une demande de page JSP. Cette page est identifiée en tant que Java Server Page. Elle est alors routée au processus de traitement des JSP. La page est analysée et une servlet (code Java) est générée puis compilée par ce processus. Le code correspondant est alors acheminé vers le demandeur.

 

Une page JSP peut contenir :

  • des directives : informations globales sur la page ;
  • des déclarations : pour déclarer des méthodes et attributs ;
  • des scriptlets : code Java transformé en code dans la méthode service() de la servlet ;
  • des expressions : pour envoyer des chaînes créées dynamiquement au navigateur.

Les instructions JSP

Nous allons passer en revue les différentes instructions utilisables dans une page JSP.

Commentaires

Visible dans le code source HTML

<!-- commentaire [<%= expression %>] -->

Non visible dans le code source HTML, uniquement à but documentaire dans JSP

<%-- commentaire --%>

Directives JSP

Elles permettent d’indiquer le langage utilisé, les classes à inclure et à étendre, etc. Elles sont insérées dans des balises spécifiques :

<%@ directive { attribut="valeur"} %>

La directive page donne des informations sur la page JSP :

<%@ page
[language="java"] [extends="package.class"]
[import="{package.class|package.*}, ..."] [session="true|false"]
[buffer="none|8kb|sizekb"] [autoflush="true|false"]
[isThreadSafe="true|false"] [info="text"]
[errorPage="relativeURL"]
[contentType="mimeType [charset=characterSet]" |
                       "text/html;charset=ISO-8859-17"]
[iserrorPage="true|false"]
%>

Voici la signification de ces paramètres :

  • extends définit la classe parente de la servlet générée par JSP ;
  • import permet d’importer des classes ou des packages (comme en Java) ;
  • session indique si la page peut accéder aux données de session (true) ou non (false) ;
  • buffer indique si les données sont placées dans un buffer avant l’envoi ;
  • autoflush indique si le tampon doit être vidé quand il est plein (true) ou non (false) ;
  • isThreadSafe indique si plusieurs clients peuvent utiliser la servlet simultanément (true) ou non (false) ;
  • info retourne une description avec la méthode servlet.getServletInfo() ;
  • errorPage définit la page utilisée pour gérer les exception non gérées dans la page ;
  • isErrorPage indique si la page est (true) ou n’est pas (false) une page d’erreur ;
  • contentType indique le type MIME de la page et le jeu de caractères utilisé.

 

La directive include permet d’inclure des fichiers dans la page HTML :

<%@ include file="relativeURL" %>

Déclarations JSP

Elles permettent de définir des variables et des méthodes de classe qui seront utilisables dans la page.

Voici un exemple de déclaration JSP :

<%! String Chaine = "bonjour";
Int Numero = 10;
public void jspInit() {
// Une ou plusieurs instructions;
}
%>

 

Scriptlets

Les scriptlets sont des blocs de code Java encadrés par <% et %>. Voici un exemple :

<% String[] prenoms = {"Pierre", "Paul", "Jean", "Jacques"};
for (int i=0; i<prenoms.length; i++) {
  out.println(prenoms[i]);
}
%>

 

Expressions

Elles permettent de définir des chaînes de caractères qui seront affichées dans la page :

<%= Expression %>
<%= request.getRemoteAddr() %>

 

Pour résumer, voici la syntaxe des instructions JSP :

Instruction JSP Signification
<%@  nom de la directive  %> Directive
<%– … Le commentaire… –%> Commentaire
<%!  la déclaration   %> Déclaration
<%=    l’expression   %>// Expression
<%     la scriptlet   %>// Scriptlet
Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.

Leave a Reply