- · Niveau : AVANCÉ
- · Compatibilité : IE / Netscape
Description de JSIP
Pour répondre au besoin de génération de page HTML dynamique, j’ai développé ma propre syntaxe d’inclusion dans les pages HTML que j’appelle JSIP pour Java Servlet Include Pages. Le principe de ces JSIP est d’utiliser le tag <SERVLETS> des pages SSI pour indiquer un emplacement à compléter par la Servlet.
En fonctionnement, la Servlet charge la page JSIP en mémoire, l’analyse pour récupérer les noms des tags <SERVLETS> indiqués par l’attribut " CODE ". Puis la Servlet remplace chacun des codes par une portion de page et enfin retourne en résultat la page JSIP ainsi modifiée.
Vous trouverez la classe Page.java nécessaires à l’utilisation de JSIP dans le package " com.jsip ".
On peut dire que les pages JSIP ne sont pas liées au code java qui l’utilise. Par ailleurs, les concepts introduits par JSIP sont classiques en Java (Hashtable) et ne nécessite pas d’apprendre un nouveau langage comme les JSP.
Voici un exemple de code HTML pour une page utilisée par la Servlet Bonjour :
<HTML>
<BODY>
<TITLE>Essai d’utilisation de JSIP</TITLE>
<P>
Voici un exemple d’utilisation de la sortie produite par une Servlet.
</P>
<SERVLET CODE=Bonjour>
Ceci montre la puissance de JSIP :
<SERVLET CODE=Aurevoir>
</BODY>
</HTML>
On remarque une balise inhabituelle : la balise <SERVLET>. C’est elle qui indique que l’on veut inclure le contenu produit par une Servlet dans la page Web. Cette balise reconnaît un attribut, CODE, indiquant le nom de l’insert à placer par la Servlet.
La servlet Bonjour, appelée lors de l’analyse de la page HTML ci-dessus, pourrait être la suivante :
import javax.servlet.*;
import java.servlet.http.*;
import com.jsip.* ;
public class BonjourMonde extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws
ServletException, IOException) {
PrintWriter out = res.getWriter();
I Page p = new Page("Bonjour.html") ;
p.put("Bonjour","<B>Bonjour !</B>");
p.put("Aurevoir","<B>Au revoir !</B>");
out.print(p.toString()) ;
}
}
- Cette Servlet permet de découpler le code source de la page HTML.
- On note la compacité du code par rapport à une Servlet autonome produisant le même effet.
- Les tags <SERVLET> peuvent se répéter avec la même valeur d’attribut CODE ; le même contenu sera alors inséré.
- Si tous les tags ne sont pas renseignés, ceux-ci seront remplacé par une chaîne de caractères vide.
- Cette solution élégante est à disposition de tous selon la licence fournie en entête de la classe Page.java.
À propos de Christophe Roux