Outils de développement informatique

JavaServer Pages (1)

kn@lri.fr

Principe

Programmation Web coté serveur

(rappel) génération de pages-web dynamiques (i.e. dont le contenu est calculé en fonction de la requête HTTP). Plusieurs choix de langage côté serveur.

JSP

JSP (JavaServer Pages) est un framework permettant de créer des pages Web dynamiques en Java. Il fait partie de la suite Java EE (Entreprise Edition). Rappel :

Architecture

Nécessite un serveur Web particulier. Le standard est Apache Tomcat.

Exemple

<%@ page contentType="text/html; charset=UTF-8" %> test JSP Page generated on ]]><% java.util.Date d = new java.util.Date(); out.println(d.toString()); %> ]]>

balises spéciales JSP

JSP introduit 4 balises spéciales qui sont interprétée par le serveur Tomcat.

Balise de configuration
<%@ … %> (options HTML, import de packages, …)
Balise de déclarations
<%! … %> (déclarer des attributs et des méthodes)
Balises d'instructions
<% … %> (permet de mettre une suite d'instructions)
Balises d'expressions
<%= … %> (permet de mettre une expression dont le résultat est converti en String)

Exemple complet

<%@ page contentType="text/html; charset=UTF-8" %> <%@ page import="java.util.Date" %> test JSP ]]> <%! Date maDate; Date maMethode() { return new Date(); } %>]]> <% maDate = maMethode(); %> Page created on <%= maDate %> ]]>

Pages JSP

Le code d'une page JSP est transformé en classe Java et compilé par le serveur Web (tomcat). La classe générée hérite de HttpServlet.

Le protocole HTTP

Caractéristiques du protocole HTTP

Format des messages HTTP

Les messages ont la forme suivante

Formulaire HTML (version simple)

L'élément <form> permet de créer des formulaires HTML. Un formulaire est constitué d'un ensemble de widgets (zones de saisies de textes, boutons, listes déroulantes, cases à cocher, ... ) et d'un bouton submit. Lorsque l'utilisateur appuie sur le bouton, les données du formulaires sont envoyées au serveur. Exemple, fichier age.html :

method="get" action="display.jsp" Entrez votre âge : name="val_age"
]]>

Paramètres

Les paramètres envoyés au serveur Web par la méthode get, sont accessibles en Java l'objet implicite request. Exemple : display.jsp

Vous avez <%= request.getParameter("val_age") %> ans! ]]>

Différence entre get et post

La seule différence entre get et post est la manière dont les paramètre sont passés :

get
les paramètres sont encodés dans l'url : display.jsp?val_age=22
post
les paramètres sont stockés dans la requête HTTP

Il est donc judicieux d'utiliser post lorsque les paramètres sont longs ou contiennent des caractères ne pouvant pas être présents dans une URL (upload de fichier par exemple).

Session HTTP

Rappel : une session HTTP est un ensemble de connexions et d'échange de requêtes HTTP entre le serveur et un même client. C'est le serveur qui décide de la durée d'une session et qui gère le mécanisme de reconnaissance du client (usuellement grâce à des cookies).

Conception d'application Web

Dans le cadre du projet :