Introduction Aux JSP: JSP: Java Server Pages
Introduction Aux JSP: JSP: Java Server Pages
Netbe
ans
Web
webContent
Pages
Que contient une JSP?
<body>
<% String visitor= request.getParameter("name");
if(visitor== null) visitor="World";%>
Hello, <%=visitor %>!
</body>
<body>
<jsp:useBean id="Bean" class="ensat.cours.HelloBean" />
<jsp:setProperty name="Bean" property="name" param="x"/>
Hello, <jsp:getProperty name="Bean" property="name"/>
</body>
JSP : éléments du code
• Page JSP:
– Html: structure statique de la page
– Code JSP: éléments dynamiques de la
page
• 4 types d’éléments
JSP: éléments de
script
<%@……%>
Les directives de jsp 1.2:
• Page : informations relatives à la page
• Include : fichiers à inclure littéralement
• Taglib : URI d’une bibliothèque de balises utilisée dans la page
<%@ pagela
page [extends="package.class"] [import="{package.class|
[language="java"]
package.*}, ..."] [session="true|false"]
[buffer="none|8kb|sizekb"] [autoflush="true|false"]
[contentType="mimeType [charset=characterSet]" |
"text/html;charset=ISO-8859-17"]
[iserrorPage="true|false"]
%>
JSP : les directives de
page
ErrorDiv.jsp
Exp_errorPage.jsp
JSP : les directives
d’inclusion
AutreFichier
JSP : les directives
d’inclusion
ficheInfo.jspf
Exp_include.jsp
JSP : les balises
personnalisées
Les balises
personnalisées:
<%@ taglib ……%>
Les déclarations:
<%! ……%>
– Permettent de déclarer des méthodes et des
variables d’instance connus dans toute la page
JSP
JSP : les scriplets
Les
scriplets:
<%……%>
– Permettent d’insérer des blocs de code java (qui
seront placés dans _jspService(…))
JSP : les expressions
Les expressions:
<%=……%>
– Permettent d’évaluer une expression et renvoyer
sa valeur (string)
– Correspond à out.println(…);
JSP : les
commentaires
Les commentaires:
<%--……--%>
– Permettent d’insérer des commentaires (qui
ont l’avantage de ne pas être visibles pour
l’utilisateur)
JSP : éléments de script-objets
implicites
<%!
private void someMethod(HttpSession s) {
doSomethingWith(s);
}
%>
<% someMethod(session); %>
Rq 2 : println de JSPWriter lance une IOException
– Utiliser “throws IOException” pour les méthodes qui utilisent
println
JSP : les éléments
d’action
• jsp:include et jsp:param
• jsp:forward
• jsp:useBean
• jsp:setProperty et
jsp:getProperty
JSP :
include/param
jsp:include et jsp:param
jsp:include et jsp:param
jsp:forward
jsp:useBean
Java Bean
– Permet de coder la logique métier de l'application WEB
– L'état d'un Bean est décrit par des attributs appelés propriétés
Java Bean
– classe Java respectant un ensemble de directives
• Un constructeur public sans argument
Java Bean:
Exemple
- Utilise le constructeur
par défaut ne
possédant aucun
paramètre
JSP : useBean
jsp:useBean
jsp:setProperty et jsp:getProperty
• Récupération :
Équivalent
à:
JSP :
get/setproperty
jsp:setProperty et jsp:getProperty
• Modification :
- Attribuer automatiquement aux attributs les valeurs récupérés de la
requête
RequestDispatcher MyJspDispat =
getServletContext().getRequestDispatcher(“/folder/page.js
p”);
Controle
ur
index.j
sp
Formulaire : index.jsp
MVC : étape 2
1. Le client envoie son formulaire (GET/POST avec
paramètres)
2. Le conteneur transmet au servlet correspondant (le
controller) GST
R
Controleu
r
Controller : SelectPromo.java
import javax.servlet.http.HttpServletResponse;
import ensat.cours.logiquemetier.Promo;
public class SelectPromo extends HttpServlet {
public void doGet(HttpServletRequest re,
HttpServletResponse pe)
throws IOException, ServletException{
...
String filiere = re.getParameter("Filiere");
...
}
}
MVC : étape 3
3. La servlet controleur interroge le model
4. Le model retourne au controleur le résultat
correspondant
GST
R
getPromo("GST
R")
MVC : étape 4
5. Le controleur utilise les données du model
pour sa réponse
6. Le controleur transmet sa réponse à la view
GSTR
(JSP)
getPromo("GS
TR")
Controleur : SelectPromo.java
getPromo("GST
R" )
View: resultat.jsp
<body>
<%
List<String> l = (List<String>) request.getAttribute( "promo");
System.out.println(l==null);
Iterator i = l.iterator();
while(i.hasNext()){
out.println("<br>" + i.next());
}
%>
</body>