Les Servlets
Cycle de vie d'une Servlet
Traitement des données de formulaires
Gestion de l'état avec cookies et sessions
Introduction aux JSP
Les balises JSP personnalisées
Règles de conception
Les Servlets
Cycle de vie d'une Servlet
Traitement des données de formulaires
Gestion de l'état avec cookies et sessions
Introduction aux JSP
Les balises JSP personnalisées
Règles de conception
Présentation sur Ajax en Java dans le cadre du cours combiné GTI780 / MTI780, Sujets spéciaux en TI, donné par Claude Coulombe, à l'École de technologie supérieure, Montréal, Automne 2009
Présentation sur Ajax en Java dans le cadre du cours combiné GTI780 / MTI780, Sujets spéciaux en TI, donné par Claude Coulombe, à l\'Ecole de technologie supérieure, Montréal, Automne 2008
Workshop Spring - Session 1 - L'offre Spring et les basesAntoine Rey
Rejoignez les millions de développeurs Spring
De par sa forte pénétration dans les entreprises, tout développeur Java /JEE a ou aura à travailler sur une application s’appuyant sur Spring. Or Spring dépasse le cadre du simple framework open source.
Cette série de 5 workshops a pour objectif de faire un tour d’horizon de l’écosystème des technologies supportées par Spring avant de se focaliser plus spécifiquement sur certaines d’entre elles.
Retours d’expérience, bonnes pratiques, techniques avancées seront de partie.
Propulsée dans Java EE 6 avec CDI et plus récemment au sein de JavaScript avec Google Gin, l’injection de dépendance sera au cœur du premier workshop.
Voici le support de présentation du workshop sur Spring que j'ai animé en novembre 2011 au sein de ma SSII et que j'ai réactualisé avant sa diffusion sur Slideshare.
Au sommaire du workshop :
1. Zoom sur le portfolio Spring Source
1. Le cœur du framework Spring : IoC, AOP et support
2. Le support proposé par Spring : persistance, présentation, communication, test, outils …
2. Les fondamentaux
1. Fonctionnement du conteneur léger
2. Les beans Spring
3. Les design patterns rencontrés dans Spring
Présentation sur Ajax en Java dans le cadre du cours combiné GTI780 / MTI780, Sujets spéciaux en TI, donné par Claude Coulombe, à l'École de technologie supérieure, Montréal, Automne 2009
Présentation sur Ajax en Java dans le cadre du cours combiné GTI780 / MTI780, Sujets spéciaux en TI, donné par Claude Coulombe, à l\'Ecole de technologie supérieure, Montréal, Automne 2008
Workshop Spring - Session 1 - L'offre Spring et les basesAntoine Rey
Rejoignez les millions de développeurs Spring
De par sa forte pénétration dans les entreprises, tout développeur Java /JEE a ou aura à travailler sur une application s’appuyant sur Spring. Or Spring dépasse le cadre du simple framework open source.
Cette série de 5 workshops a pour objectif de faire un tour d’horizon de l’écosystème des technologies supportées par Spring avant de se focaliser plus spécifiquement sur certaines d’entre elles.
Retours d’expérience, bonnes pratiques, techniques avancées seront de partie.
Propulsée dans Java EE 6 avec CDI et plus récemment au sein de JavaScript avec Google Gin, l’injection de dépendance sera au cœur du premier workshop.
Voici le support de présentation du workshop sur Spring que j'ai animé en novembre 2011 au sein de ma SSII et que j'ai réactualisé avant sa diffusion sur Slideshare.
Au sommaire du workshop :
1. Zoom sur le portfolio Spring Source
1. Le cœur du framework Spring : IoC, AOP et support
2. Le support proposé par Spring : persistance, présentation, communication, test, outils …
2. Les fondamentaux
1. Fonctionnement du conteneur léger
2. Les beans Spring
3. Les design patterns rencontrés dans Spring
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
NodeJs, GruntJs, Bower, Karma, ... des buzzwords dont nous entendons parler, que nous voyons passer dans les blogs/articles. Mais à quoi servent-ils ?
Comment industrialiser nos développements Javascript ? Mettre en place des tests unitaires dans une application Web ? Générer de la documentation ? Des métriques qualités ? La couverture de code ? Comme avec Maven ? Nous verrons concrètement comment articuler tous ces outils autour d'une application école, pour démystifier tout ça.
Rencontre du CRIPS / Act Up-Paris "Personnes trans : quels enjeux de santé ?"...Santé des trans
Le 26 juin 2007 se tenait la 67ème Rencontre du CRIPS Île-de-France, en partenariat avec Act Up-Paris, consacrée au thème : "Personnes trans : quels enjeux de santé ?".
Il s'agit du dossier documentaire constitué à cette occasion. Il comporte nombre d'articles et documents qui sont autant d'outils et de ressources utiles à la réflexion, et à l'action militante.
My presentation at BarCamp Ghent 2 (nov 29, 2008), providing a quick overview of HTML 5. Includes two detailed cases, one about local storage APIs and one about the new video element. Check http://lensco.be for more.
A presentation to Refresh DC about the emerging HTML 5 and CSS 3 standards, namely about aspects that are beginning to become applicable to web design and development. Given by Jason Garber and M. Jackson Wilkinson.
about this presentation:
1) this presentation was a quickie for non-tech employees, who wanted a basic understanding of html/css, as it related to a white-label SAAS product;
2) the back-end/front-end definitions relate to the specific application (it's inaccurate if node.js is in the picture)
Ce support explique les concepts de bases du principe de l'inversion de contrôle et d'injections des dépendances.
Les concepts les plus importants à comprendre par les futurs ingénieurs du génie Logiciel.
Ce Support explique quelques concepts de base de NodeJS et montre comment mettre en oeuvre la technologie NodeJS pour développer la partie Backend d'une application.
Les vidéos des démonstrations sont publiées sur les adresse suivantes :
- https://www.youtube.com/watch?v=-X_C1tS5-9Y
- https://www.youtube.com/watch?v=rE-xRH28m0s
- https://www.youtube.com/watch?v=tnxjkTvWoKA
Cette série explique les éléments suivants :
- Architecture Web
- Modèles Multi-Threads avec les entrées sorties bloquantes
- Modèles Single Thread avec les entrées sortie non bloquantes
-Technologie Node JS
- Comment créer une simple application Node JS avec java Script
- Architecture du Framwork Express
- Comment créer une application NodeJS avec Type Script
- Comment écrire des tests unitaires avec Jest
- Quelques concepts sur MongoDb
- Comment Créer une API Rest avec NodeJS, Express et MongoDb
- Comment tester l'API Rest
- Comment Créer la partie FrontEnd avec Angular.
Même si la qualité audio n'est pas bonne, ses vidéos peuvent aider ceux qui débutent dans NodeJS en attendant d'autres vidéos avec plus qualité audio et de contenu.
Bonne lecture
GWT Principes & Techniques
Des IHM avec GWT
Des IHM avec GWT +
Communiquer avec le serveur
Internationalisation I18n
Développer un composant graphique
Historique du navigateur
Logging
Tester avec JUNIT
Divers principes avancées
JavaScript overlay types
Intégrer une appli GWT dans JavaScript
Code Splitting
Étendre la JRE Émulation
Sérialisation spécifique
Compile Reports
Au cours des 10 précédentes années, nous avons eu des sessions de Devoxx FR et plusieurs versions dont certaines majeures de Java.
L’objectif de ce talk est de revenir rétrospectivement sur certaines annonces et sur certaines des nombreuses évolutions de Java, notamment récentes afin d’en profiter dans nos applications. Au-delà des évolutions syntaxiques et dans les API, ce sera aussi l’occasion de justifier la migration vers des versions plus récentes de Java.
Formation M2i - Prise de parole face caméra : performer en distancielM2i Formation
Le travail en distanciel est de plus en plus incontournable et s'installe durablement dans la société, mais bien souvent, les collaborateurs d'une même entreprise n'ont pas toutes les aptitudes permettant d'être efficaces et impactants avec cette nouvelle façon de travailler : le télétravail !
Cette formation flash vous montrera qu'il est important de se professionnaliser et de faire du distanciel un agréable moment de travail.
Pour approfondir ces sujets et aller plus loin, vous pourrez vous inscrire à notre formation Prise de parole face caméra : performer en distanciel.
Formation offerte animée à distance par notre expert Camel Termellil
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptxMartin M Flynn
sainte patronne de la France, honorée en tant que défenseure de la nation française pour son rôle dans le siège d'Orléans et son insistance sur le couronnement de Charles VII de France pendant la guerre de Cent Ans.
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24BenotGeorges3
Les informations et évènements agricoles en province du Luxembourg et en Wallonie susceptibles de vous intéresser et diffusés par le SPW Agriculture, Direction de la Recherche et du Développement, Service extérieur de Libramont.
https://agriculture.wallonie.be/home/recherche-developpement/acteurs-du-developpement-et-de-la-vulgarisation/les-services-exterieurs-de-la-direction-de-la-recherche-et-du-developpement/newsletters-des-services-exterieurs-de-la-vulgarisation/newsletters-du-se-de-libramont.html
Bonne lecture et bienvenue aux activités proposées.
#Agriculture #Wallonie #Newsletter #Recherche #Développement #Vulgarisation #Evènement #Information #Formation #Innovation #Législation #PAC #SPW #ServicepublicdeWallonie
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24BenotGeorges3
Les informations et évènements agricoles en province du Luxembourg et en Wallonie susceptibles de vous intéresser et diffusés par le SPW Agriculture, Direction de la Recherche et du Développement, Service extérieur de Libramont.
https://agriculture.wallonie.be/home/recherche-developpement/acteurs-du-developpement-et-de-la-vulgarisation/les-services-exterieurs-de-la-direction-de-la-recherche-et-du-developpement/newsletters-des-services-exterieurs-de-la-vulgarisation/newsletters-du-se-de-libramont.html
Résultats enquête RH 2024 Fonction Publique.pdfGERESO
Nous avons le plaisir de vous présenter les résultats de la 1ère édition de l’enquête « Professionnels RH de la Fonction Publique, comment allez-vous ? »
Forts du succès de notre baromètre annuel « Professionnels RH, comment allez-vous ? », publié pour la 4e fois en début d’année, et qui concerne principalement les professionnels RH des entreprises privées (90% des répondants exercent dans le secteur privé) nous avons souhaité, à travers ce nouveau baromètre, nous intéresser spécifiquement au moral des professionnels RH de la fonction publique.
En effet, les enjeux, les missions, les conditions de travail
des professionnels RH dans les établissements publics sont souvent bien distincts de ceux de leurs homologues du secteur privé…
Et leur moral également ! Ces différences justifiaient donc une enquête spécifique !
Merci à vous ! Vous avez été 240 professionnels RH dans
des établissements publics à répondre à nos questions et à nous livrer des aspects très personnels de votre vie de professionnel(le) des
ressources humaines du secteur public.
Alors, avez-vous un bon ou un mauvais moral en ce printemps 2024 ? Découvrez dans ce document tous les résultats de cette étude !
1. JSP Le langage Java
JavaServer Pages
(JSP)
XVIII-1 JMF
2. JSP Le langage Java
Prérequis pour ce cours
• Ce cours a trait à la programmation Java
coté serveur
• Il faut connaître un minimum de
technologie J2EE
• Il faut connaître les servlets
XVIII-2 JMF
3. JSP Le langage Java
Motivation et historique
• Nécessité d'avoir des pages HTML
dynamiques i.e. pages créées lors de la
requête (météo, cours de la bourse, vente
aux enchères, etc.)
• Technologie des server side include (ssi)
• Des pages HTML contiennent du code à
exécuter lors de la requête
• Traiter par le serveur Web car ayant un
suffixe caractéristique (.shtml, etc.)
XVIII-3 JMF
4. JSP Le langage Java
ssi : la technique
• Le serveur Web, lorsqu'une telle page est
demandée, passe la main au programme
adéquat qui traite la partie de la page le
concernant.
• Ce programme génère la partie dynamique
en HTML
• La page HTML créée dans son ensemble est
retournée au client Web.
XVIII-4 JMF
5. JSP Le langage Java
JavaServer Pages
• = JSP = la technique des ssi en Java
• = une page HTML contenant du code Java
• => meilleure division des tâches :
– présentation générale par les graphistes
– coté dynamique par des programmeurs (Java)
XVIII-5 JMF
6. JSP Le langage Java
Comment ça marche ?
• Concrêtement :
– toute la page HTML est convertie en une
servlet
– cette servlet est traitée par le moteur Java
intégré au serveur Web (technologie des
servlets) et retourne la page HTML construite
XVIII-6 JMF
7. JSP Le langage Java
JSP vs. Servlets
• Servlet = du code Java contenant de
l'HTML
• JSP = une page HTML contenant du code
Java
• Concrètement avec les JSP :
– les parties statiques de la page HTML sont
écrites en HTML
– les parties dynamiques de la page HTML sont
écrites en Java
XVIII-7 JMF
8. JSP Le langage Java
Notre première JSP
• fichier date.jsp
<html><head><title>Obtenu par une JSP</title></head>
<body>
<h3>Bonjour de ma part </h3> <hr>
La date courante est : <%= new java.util.Date() %>
</body>
</html>
• Traité quand le client demande l’URL de la JSP :
http://serveurWeb:<port>/.../date.jsp
XVIII-8 JMF
9. JSP Le langage Java
Moteurs de JSP (et de servlets)
• Pour exécuter des JSP (resp. des servlets), il
faut un moteur de JSP (resp. de servlets)
dans le serveur Web.
• Ces moteurs sont des plug-in pour des
serveurs Web existants
• Souvent des serveurs Web eux mêmes
• Deux candidats plug-in : JRun
(www.allaire.com), tomcat
(jakarta.apache.org)
XVIII-9 JMF
10. JSP Le langage Java
Serveurs Web et JSP
• Il existe des serveurs Web qui traitent les
servlets et JSP :
– IBM WebSphere
– iPlanet Enterprise 4.x (ex Netscape)
• Voir à
java.sun.com/products/jsp
XVIII-10 JMF
11. JSP Le langage Java
Tomcat
• Développé par la communauté qui
implémente les spécifs servlets et JSP.
• Téléchargeable (en version d'utilisation
élémentaire) gratuitement à
http://jakarta.apache.org/downloads/bin
index.html
• Plug-in de Apache version 1.3 ou plus,
Microsoft IIS version 4.0 ou plus, Netscape
Enterprise Server version 3.0 ou plus
XVIII-11 JMF
12. JSP Le langage Java
Tomcat (suite)
• Peut être utilisé comme serveur Web (bien
qu'industriellement déconseillé)
• Existe pour plusieurs Unix et Win32
• Pour Win32 un .zip ou .exe de 8 Mo
• Lire docreadme (et les fichiers du
répertoire doc)
• Nécessite d'avoir un JRE 1.1 ou plus
XVIII-12 JMF
13. JSP Le langage Java
Bidouilles Tomcat
• Il faut aussi :
– positionner la variable TOMCAT_HOME au
répertoire racine de la hiérarchie d'installation
de Tomcat. Exemple :
set TOMCAT_HOME=C:jakarta-tomcat-3.2.3
– positionner la variable JAVA_HOME au
répertoire racine de la hiérarchie du JDK.
Exemple :
set JAVA_HOME=C:Applicationsjdk1.3
XVIII-13 JMF
14. JSP Le langage Java
Tomcat et JSP
• Des exemples de JSP (code + liens pour
l'exécution) sont disponibles dans
REP_INSTALL_TOMCAT/webapps/examples/jsp
/index.html
XVIII-14 JMF
15. JSP Le langage Java
Exécution de JSP
• Il faut mettre les pages JSP dans un endroit
particulier du serveur Web
• Cet endroit dépend du serveur Web et de sa
configuration
• Pour tomcat en configuration standard,
http://serveurWeb/examples/jsp/date.jsp
~
REP_INSTAL_TOMCATwebappsexamplesjsp
date.jsp
XVIII-15 JMF
16. JSP Le langage Java
Exécution de JSP (suite)
• Le résultat de date.jsp est :
• Une autre exécution donne une
autre date => dynamicité
XVIII-16 JMF
17. JSP Le langage Java
Que s'est il passé ?
• Le moteur de JSP a construit une servlet
(_0002fjsp_0002fdate_0002ejspdate_jsp_0.java
dans
)
REP_INSTALL_TOMCATworklocalhost_8080%2Fexamples
• Cette phase est parfois appelée la
traduction de la JSP
• Puis a compilé et exécuté la servlet
XVIII-17 JMF
18. JSP Le langage Java
La servlet construite
package jsp;
...
public class _0002fjsp_0002fjsp_0002fdate_0002ejspdate_jsp_1 extends
HttpJspBase {
...
public void _jspService(HttpServletRequest request, HttpServletResponse
response) throws IOException, ServletException {
...
_jspx_init();
...
pageContext = _jspxFactory.getPageContext(...);
session = pageContext.getSession();
out = pageContext.getOut();
// HTML
// begin [file="C:...examplesjspdate.jsp";from=(0,0);to=(4,24)]
out.write("<html><head><title>Obtenu par une JSP</title></head>rn
<body>rnrn<h3>Bonjour de ma part</h3> < hr>rn
La date courante est : ");
// end
//begin [file="C:...examplesjspdate.jsp";from=(4,27)to=(4,49)]
out.print( new java.util.Date() );
// end
// HTML
// begin [file="C:...examplesjspdate.jsp";from=(4,51);to=(6,7)]
out.write("rn</body>rn</html>"); // end
...
}
}
XVIII-18 JMF
19. JSP Le langage Java
Algorithme d'exécution de la JSP
La servlet associée à la
JSP demandée est-elle Oui
Requête client
chargée en mémoire du
moteur de servlets ?
Non
Non
Conteneur de JSP
Oui servlet
précompilée
disponible?
Non Le fichier JSP a-t-
Oui il été modifié
Traduire en servlet et depuis la dernière
compiler traduction en
servlet ?
Charger la servlet Non
Réponse au client Exécuter la servlet
XVIII-19 JMF
21. JSP Le langage Java
Scriptlets <% %>
• contient du code Java
• insérer dans _jspservice() de la
servlet, donc peut utiliser out, request,
response, etc.
• Exemple :
<%
String[] langages = {"Java", "C++", "Smalltalk", " Simula 67"};
out.println("<h3>Principaux langages orientés objets : </h3>");
for (int i=0; i < langages.length; i++) {
out.println("<p>" + langages[i] + "</p>");
}
%>
XVIII-21 JMF
22. JSP Le langage Java
Déclarations <%! %>
• Sont des déclarations Java.
• Seront insérées comme des membres de la
servlet
• Permet de définir des méthodes ou des
données membres
• Exemples :
<%!
int random4() { <%!
return (int)(Math.random() * 4); int nombreFetiche = 2;
} %>
%>
XVIII-22 JMF
23. JSP Le langage Java
Expressions <%= %>
• En fait expression Java qui renvoie un
objet String ou un type primitif.
• Un raccourci pour <%out.println(…); %>
• <%= XXX %> ~ <% out.println(XXX); %>
• attention au ;
• est donc converti en out.println(…) dans
la méthode _jspService(…) de la servlet.
La somme est: <%= (195 + 9 + 273) %>
Je vous réponds à l'adresse : <%= request.getParameter("email_address") %>
XVIII-23 JMF
24. JSP Le langage Java
Objets prédéfinis dans une JSP
• 3 objets peuvent être immédiatement
utilisés dans une expression ou une scriptlet
d'une JSP :
– out : le canal de sortie
– request (HttpServletRequest) : l'objet requête
– response (HttpServletResponse) : l'objet réponse
• Il y en a d'autres
• Cf. ces mêmes objets dans une servlet
XVIII-24 JMF
25. JSP Le langage Java
Un exemple complet :
complet.jsp
<html><head><title>JSP complet</title></head>
<body>
<%! String[] langages = {"Java", "C++", "Smalltalk", "Simula 67"};
int random4() {
return (int) (Math.random() * 4);
}
%>
<p>Parmi tous les langages orientés objets :</p>
<ol>
<%
for (int i=0; i < langages.length; i++) {
out.println("<li>" + langages[i] + "</li>");
}
%>
</ol>
<p>Le prochain que j'apprends est <b><%= langages[random4()] %> </b></p>
</body>
</html>
XVIII-25 JMF
27. JSP Le langage Java
Déboguer les JSP
• La fenêtre de lancement du serveur Web
donne des indications. Suivant les serveurs,
une page HTML est retournée avec des
indications.
• Ces éléments sont très souvent relatifs à la
servlet et pas à la page JSP.
• Directives <%@ page errorPage= ...%>
et
<%@ page isErrorPage="true"%>
XVIII-27 JMF
28. JSP Le langage Java
Déboguer les JSP (suite)
• Un page JSP peut référencer une page
erreur par <%@ page
errorPage="page.jsp"%>
• La page erreur est indiquée par l'entête
<%@ page isErrorPage="true"%>
• Si une exception est levée le traitement est
dérouté vers la page erreur qui connaît la
référence exception qui repère l'exception
XVIII-28 JMF
29. JSP Le langage Java
Déboguer les JSP : exemple
langages.jsp
<%@ page errorPage="erreur.jsp"%>
<%! String[] langages = {"Java", "C++", "Smalltalk", "Simula 67"};
%>
<p>Parmi tous les langages orientés objets :</p>
<ol>
<%
// levée d'une ArrayIndexOutOfBoundsException
for (int i=0; i < 7; i++) {
out.println("<li>" + langages[i] + "</li>");
}
%>
XVIII-29 JMF
30. JSP Le langage Java
Déboguer les JSP : exemple
(suite)
erreur.jsp
<%@ page isErrorPage="true"%>
<html><body>
exception levée <b> <%= exception %> </b>
<hr>
<h3>trace de la pile</h3>
<pre>
<%
java.io.PrintWriter myWriter = new java.io.PrintWriter(out);
exception.printStackTrace(myWriter);
%>
</pre>
</body></html>
XVIII-30 JMF
31. JSP Le langage Java
Déboguer les JSP : exemple (fin)
• Charger la page langages.jsp amène à :
XVIII-31 JMF
32. JSP Le langage Java
Enchaîner les pages
• Un page JSP peut en appeler une autre par
la directive : <jsp:forward>
• Syntaxe :
<jsp:forward page="pageDeRedirection" />
lanceForward.jsp
<% String repUtilisateur = request.getParameter("repTextField");
int rep = Integer.parseInt(repUtilisateur);
if ((rep % 2) == 0) {
%>
<jsp:forward page="gagne.jsp"/>
<% } else { %>
<jsp:forward page="perdu.jsp"/>
<% } %>
On n'affiche jamais cela
XVIII-32 JMF
33. JSP Le langage Java
Enchaîner les pages (suite)
• Après un <jsp:forward>, le traitement
est entièrement pris en charge par nouvelle
page
Serveur Web lanceForward.jsp
Navigateur
1. lanceForward.jsp
<jsp:forward
page="gagne.jsp"/>
3. Retourner gagne.jsp gagne.jsp
worker.jsp
Transmis à gagne.jsp
XVIII-33 JMF
34. JSP Le langage Java
JSP et Java beans
• But : avoir le moins de code Java possible
dans une page JSP (HTML)
• Sous-traiter le code à un Java bean
• balise XML : <jsp:useBean>
XVIII-34 JMF
35. JSP Le langage Java
JSP et Java beans (suite)
• Syntaxe générale :
<jsp:useBean id="nomInstanceJavaBean"
class="nomClasseDuBean"
scope="request|session|application|page
">
</jsp:useBean>
• Le bean est alors utilisable par
nomInstanceJavaBean
• balise sans corps donc utilisation de
<jsp:useBean … />
XVIII-35 JMF
36. JSP Le langage Java
l'attribut scope
• Il indique la portée du bean.
valeur Description
request Le bean est valide pour cette requête. Il est utilisable dans les pages de redirection
de la requête (<jsp:forward>). Il est détruit à la fin de la requête.
page Similaire à request, mais le bean n'est pas transmis aux pages de redirection
<jsp:forward>. C'est la portée par défaut
session Le bean est valide pour la session courante. S’ n’il existe pas encore dans la
session courante, il est créé et placé dans la session du client. Il est réutilisé
jusqu’ ce que la session soit invalidée
à
application Le bean est valide pour l’ application courante. Il est créé une fois et partagé par
tous les clients des JSP.
XVIII-36 JMF
37. JSP Le langage Java
JSP et Java beans : exemple
• Soit le bean :
public class SimpleBean implements java.io.Serializable
{
private int compter;
public SimpleBean() {
compter = 0;
}
public void setCompter(int theValue) {
compter = theValue;
}
public int getCompter() {
return compter;
}
public void increment() {
compter++;
}
}
XVIII-37 JMF
38. JSP Le langage Java
Utilisation du bean dans une JSP
• Utilisation à l'aide de son nom
• Récupération des propriétés :
– Par appel de méthode getXXX() :
– Par la balise <jsp:getProperty …>
<p> on repere le bean par le nom nomBean<br>
<jsp:useBean id="nomBean" class="SimpleBean" scope="session">
</jsp:useBean>
<p> On accede a une propriéte avec une expresion:
<br> compteur = <%= nomBean.getCompter() %>
<hr>
On incrémente le compteur <% nomBean.increment(); %>
<p>On peut accéder à la propriété par une balise :<br>
<jsp:getProperty name="nomBean" property="compter" />
XVIII-38 JMF
39. Le langage Java
JSP
Positionner les propriétés
du bean dans une JSP
• Par appel de méthode setXXX(...) :
• Par la balise <jsp:setProperty …>
<p> on repere le bean par le nom nomBean<br>
<jsp:useBean id="nomBean" class="SimpleBean" scope="session">
</jsp:useBean>
<p> On positionne une propriéte avec une expresion:
<br> compteur = <%= nomBean.setCompter(6) %>
<p>ou par une balise :<br>
<jsp:setProperty name=”noBean" property="compter" value="6" />
XVIII-39 JMF
40. JSP Le langage Java
Architecture MVC
• modèle = les données accédées par un code
Java (JDBC, RMI, EJB, etc.)
• vues = JSP
• contrôleur = servlets
XVIII-40 JMF
41. JSP Le langage Java
Architecture MVC (suite)
Modèle
Servlet (Contrôleur) Composants
1 2
Requête
3
JSP (Vue)
Réponse
4
• Syntaxe dans la servlet pour lancer la JSP :
public void doPost(HttpServletRequest request, HttpServletResponse response){
ServletContext context = getServletContext(); // héritée de GenericServlet
RequestDispatcher dispatcher =
context.getRequestDispatcher("/maPageMiseEnForme.jsp");
dispatcher.forward(request, response);
}
XVIII-41 JMF
42. JSP Le langage Java
Architecture MVC (suite)
• La servlet peut passer des valeurs à la JSP
appelé grâce à setAttribute()
public void doPost(HttpServletRequest request, HttpServletResponse response) {
// appelle les méthodes sur les objets métiers
ArrayList theList = // un objet à passer
// ajoute à la requête
request.setAttribute("nomDelObjet", theList);
ServletContext context = getServletContext();
RequestDispatcher dispatcher = context.getRequestDispatcher("/jspAAppeler.jsp");
dispatcher.forward(request, response);
}
• La JSP extrait les objets de request grâce à
getAttribute()
<% ArrayList theList = (ArrayList)
request.getAttribute("nomDelObjet");
// maintenant, utiliser l'ArrayList
%>
XVIII-42 JMF
43. JSP Le langage Java
Bibliographie
• JavaServer Pages. Hans Bergsten; ed
O'Reilly. ISBN 1-56592-746-X
• Technologie Apache/Tomcat à
http://jakarta.apache.org
XVIII-43 JMF