Академический Документы
Профессиональный Документы
Культура Документы
Suite au prcdent sondage 2014 sur votre langage serveur prfr pour le Web en 2014, qui a
vu 321 votants, nous avons dcid de le renouveler, pour cette anne 2015.
Le trio gagnant en 2014 tait :
Serveur d'applications
Un serveur d'applications est un logiciel d'infrastructure offrant un contexte d'excution
pour des composants applicatifs. Le terme est apparu dans le domaine des applications web.
Au sens strict les composants hbergs par le serveur d'applications ne sont pas de simples
procdures ou scripts mais de rels composants logiciels conformes un modle de
composants (EJB, COM, Fractal, etc.).
1
Interfaces de programmation
Ci-dessous, une liste de composants pouvant tre contenus dans une implmentation Java EE :
2
Structure des fichiers d'une application web JSP/Servlet Standard
Quelques prcisions :
La racine de l'application, en violet sur le schma, est le dossier qui porte le nom de votre
projet et qui contient l'intgralit des dossiers et fichiers de l'application.
Le dossier nomm WEB-INF est un dossier spcial. Il doit obligatoirement exister et tre
plac juste sous la racine de l'application. Il doit son tour obligatoirement contenir :
o le fichier de configuration de l'application (web.xml) ;
o un dossier nomm classes, qui contient son tour les classes compiles (fichiers .class) ;
o un dossier nomm lib, qui contient son tour les bibliothques ncessaires au projet (archives
.jar).
Bref, tous les dossiers et fichiers marqus en rouge sur le schma doivent obligatoirement tre
nomms et placs comme indiqu sur le schma.
Les fichiers et dossiers perso placs directement sous la racine, en bleu sur le schma, sont
publics et donc accessibles directement par le client via leurs URL. (*)
Les fichiers et dossiers perso placs sous le rpertoire WEB-INF, en orange sur le schma,
sont privs et ne sont donc pas accessibles directement par le client. (*)
3
Structure des fichiers d'une application web JSP/Servlet Sous Eclipse
Le vert sur le schma, Eclipse a dplac la structure standard de l'application vers un dossier
nomm WebContent, et ajoute sous la racine un dossier src qui contiendra le code source de
vos classes (les fichiers .java). En outre (je ne les ai pas reprsents ici), sachez qu'Eclipse
ajoute galement sous la racine quelques fichiers de configuration qui lui permettront, via une
tambouille interne, de grer correctement l'application !
Sur le serveur d'applications que nous lui avons intgr. Ceci implique donc deux choses trs
importantes :
le dossier WebContent n'existe lgitimement qu'au sein d'Eclipse. Si vous dveloppez sans
IDE, ce rpertoire ne doit pas exister et votre application doit imprativement suivre la
structure standard prsente prcdemment ;
pour cette mme raison, si vous souhaitez utiliser votre application en dehors de l'IDE, il
faudra obligatoirement utiliser l'outil d'export propos par Eclipse. Raliser un simple copier-
coller des dossiers ne fonctionnera pas en dehors d'Eclipse
4
Dans une application Java EE le Framework est compos de :
la couche Modle est constitue d'objets Java ;
la couche Vue est constitue de pages JSP ;
la couche Contrle est constitue de servlets.
<!-- URL avec un paramtre nomm 'cat' et ayant pour valeur 'java' -->
/page.jsp?cat=java
<!-- URL avec deux paramtres nomms 'lang' et 'admin', et ayant pour valeur
respectivement 'fr' et 'true' -->
/page.jsp?lang=fr&admin=true
5
Chemin JSP complet en Servlet par Eclipse
C:\eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalin
a\localhost\test\org\apache\jsp\test_jsp.java
this.getServletContext().getRequestDispatcher("/WEB-INF/test.jsp").forward(
request, response );
}
6
Une page JSP ressemble en apparence une page HTML, mais en ralit elle est bien
plus proche d'une servlet : elle contient des balises derrire lesquelles se cache du code
Java.
Une page JSP est excute sur le serveur, et la page finale gnre et envoye au client
est une simple page HTML : le client ne voit pas le code de la JSP.
Idalement dans le modle MVC, une page JSP est accessible l'utilisateur travers une
servlet, et non pas directement.
Le rpertoire /WEB-INF cache les fichiers qu'il contient l'extrieur de l'application.
La mthode forward() de l'objet RequestDispatcher permet depuis une servlet de
rediriger la paire requte/rponse HTTP vers une autre servlet ou vers une page JSP.
Un Java Bean :
1. Doit tre une classe publique ;
2. Doit avoir au moins un constructeur par dfaut, public et sans paramtres. Java
l'ajoutera de lui-mme si aucun constructeur n'est explicit ;
3. Peut implmenter l'interface Serializable, il devient ainsi persistant et son tat peut
tre sauvegard ;
4. Ne doit pas avoir de champs publics ;
5. Peut dfinir des proprits (des champs non publics), qui doivent tre accessibles
via des mthodes publiques getter et setter, suivant des rgles de nommage.
7
Apprendre utiliser un Bean depuis une page JSP sans utiliser de code Java !
Un Bean est un objet Java rutilisable qui reprsente une entit, et dont les
donnes sont reprsentes par des proprits.
Un Bean est une classe publique et doit avoir au moins un constructeur par dfaut,
public et sans paramtres.
Une proprit d'un Bean est un champ non public, qui doit tre accessible travers
un couple de getter/setter.
Il faut configurer le build-path d'un projet web sous Eclipse pour qu'il y dpose
automatiquement les classes compiles depuis les codes sources Java de vos
objets.
Un Bean peut par exemple tre transmis d'une servlet vers une page JSP (ou une
autre servlet) en tant qu'attribut de requte.
8
La technologie JSP
Les balises
Balise Fonctionnement
<%--Commentaire --%> Commentaires
<%@ page pageEncoding="UTF-8" %> Changer lencodage de la page
out.println("") Ecrire du Code
request.getParameter("") Rcupration du paramtre partir du URL
request.getAttribute("") Rcupration du un Objet partir du request
request.setAttribute("","") Stockage du un Objet dans l'objet request
Retourne le contenu d'une chane, Notez bien
<%= "Text" %>
l'absence de point-virgule
<%! String chaine = "." ; %> Dclarer une variable l'intrieur d'une JSP
<%@ et %> elles contrlent comment le conteneur de servlets va
grer votre JSP
<%@ page import="java.util.List, importer des classes Java :
java.util.Date" %>
9
Les directives
Les Directives JSP Permettent :
d'importer un package ;
d'inclure d'autres pages JSP ;
d'inclure des bibliothques de balises (nous y reviendrons dans un prochain chapitre) ;
de dfinir des proprits et informations relatives une page JSP.
<%@ page
Language = "..."
extends = "..."
import = "..."
session = "true | false"
buffer = "none | 8kb | sizekb"
autoFlush = "true | false"
isThreadSafe = "true | false"
isELIgnored = "true | false"
info = "..."
errorPage = "..."
contentType = "..."
pageEncoding = "..."
isErrorPage = "true | false"
%>
10
La porte des objets
Il existe au total quatre portes diffrentes dans une application :
page (JSP seulement) : les objets dans cette porte sont uniquement accessibles dans
la page JSP en question ;
requte : les objets dans cette porte sont uniquement accessibles durant l'existence de
la requte en cours ;
session : les objets dans cette porte sont accessibles durant l'existence de la session en
cours ;
application : les objets dans cette porte sont accessibles durant toute l'existence de
l'application.
11
Laction standard
A). <jsp:include> :
Inclure une page JSP dans une autre, au moment o la requte est traite.
B). <jsp:useBean> :
La valeur de l'attribut id est le nom du Bean rcuprer, ou le nom que vous souhaitez
donner au Bean crer.
L'attribut class correspond logiquement la classe du Bean. Il doit obligatoirement tre
spcifi si vous souhaitez crer un Bean, mais pas si vous souhaitez simplement rcuprer
un Bean existant.
L'attribut optionnel scope correspond la porte de l'objet. Si un Bean du nom spcifi en
id existe dj dans ce scope, et qu'il est du type ou de la classe prcis(e), alors il est
rcupr, sinon une erreur survient. Si aucun Bean de ce nom n'existe dans ce scope, alors
un nouveau Bean est cr. Enfin, si cet attribut n'est pas renseign, alors le scope par
dfaut sera limit la page en cours.
L'attribut optionnel type doit indiquer le type de dclaration du Bean. Il doit tre une
superclasse de la classe du Bean, ou une interface implmente par le Bean. Cet attribut
doit tre spcifi si class ne l'est pas, et vice-versa.
12
C). <jsp:getProperty>
D). <jsp:setProperty>
E). <jsp:forward>
La dernire action que nous allons dcouvrir permet d'effectuer une redirection vers une autre
page. Comme toutes les actions standard, elle s'effectue ct serveur et pour cette raison il est
impossible via cette balise de rediriger vers une page extrieure l'application. L'action
de forwarding est ainsi limite aux pages prsentes dans le contexte de la servlet ou de la JSP
utilise :
13
Il faut savoir que lorsque vous utilisez le forwarding, le code qui existe aprs cette balise dans la
page il ne sexcute pas
Expression Langage
La ralisation de tests
14
Il est uniquement disponible dans les pages d'erreur JSP. Il
6 exception Throwable reprsente l'exception qui a conduit la page d'erreur en
question.
Il reprsente le contenu de la rponse qui va tre envoye au
7 out JspWriter
client. Il est utilis pour crire dans le corps de la rponse.
Il permet depuis une page JSP d'obtenir les ventuels paramtres
8 config ServletConfig
d'initialisation disponibles.
Il est l'quivalent de la rfrence this et reprsente la page JSP
9 page objet this courante. Il est dconseill de l'utiliser, pour des raisons de
dgradation des performances notamment.
15
16