Médiaforma

All posts tagged jsp

Vous allez maintenant écrire quelques servlets et les exécuter sous Tomcat.

Rendez-vous dans le dossier d’installation de Tomcat : c:\Program Files\Apache Software Foundation\Tomcat 8.0 par défaut. Déplacez-vous dans le sous-dossier webapps, créez le dossier premier et le fichier premier.jsp. Insérez les instructions suivantes dans ce fichier :

<html>
  <head>
    <title>Premier test JSP</title>
  </head>
  <body>
    <%
      out.println("<ul>");
      for (int i=0;i<5;i++)
         out.println("<li>"+i);
      out.println("</ul>");
    %>
  </body>
</html>

Exécutez ce code en entrant l’URL http://localhost:8080/test/premier.jsp dans la barre d’adresse de votre navigateur. Voici ce que vous devez obtenir :

 

 

 

Exercice

Ecrivez un servlet qui effectue les actions suivantes :

  • Définition de la variable int taille et initialisation à 30 ;
  • Définition de la variable string couleur et initialisation à red ;
  • Affichage d’un texte en utilisant les variables taille et couleur.

Voici le résultat à obtenir :

 

 

Solution

Voici le code :

<html>
  <head>
    <title>Taille et couleur</title>
  </head>
  <body>
    <% int taille = 30; String couleur = "red"; %>
    <font color="<%=couleur%>" size="<%=taille%>">Bonjour JSP</font>
  </body>
</html>

 

Affichez le code de la page. Voici ce que vous devriez obtenir :

<html>
  <head>
    <title>Taille et couleur</title>
  </head>
  <body>

    <font color="red" size="30">Bonjour JSP</font>
  </body>
</html>

Comme vous pouvez le voir, le code JSP a été remplacé par du code HTML.


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

Comme son nom pourrait le laisser suggérer, Java EE (Java Enterprise Edition) n’est pas une alternative plus complète à Java SE (Java Standard Edition). C’est plutôt un ensemble d’extensions de Java SE. Notez qu’il existe également Java ME (Java Micro Edition). Il s’agit d’une bibliothèque et d’un environnement runtime pour les équipements de petite taille, tels les téléphones portables et les tablettes.

Java SE est amplement suffisant pour créer des applications et des applets client et serveur, des interfaces utilisateur AWT (Abstract Window Toolkit) et Swing. Par contre, Java EE sera utile si vous voulez créer des applications serveur : servlets (création de pages dynamiques depuis un serveur HTTP), JSP (Java Server Pages pour créer des pages dynamiques) et EJB (Enterprise Java Beans : architecture serveur Java) par exemple.