0% ont trouvé ce document utile (0 vote)
100 vues19 pages

Java, C'Est Facile JSP : Créer Et Déployer Un Premier JSP Avec Tomcat

Cette page JSP décrit les principales balises et directives utilisées dans le développement de pages JSP. Elle présente des exemples d'utilisation des balises comme <%%>, <%= %> et <%@ %> ainsi que les objets implicites disponibles dans les pages JSP.

Transféré par

Marwane Mouttaqi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
100 vues19 pages

Java, C'Est Facile JSP : Créer Et Déployer Un Premier JSP Avec Tomcat

Cette page JSP décrit les principales balises et directives utilisées dans le développement de pages JSP. Elle présente des exemples d'utilisation des balises comme <%%>, <%= %> et <%@ %> ainsi que les objets implicites disponibles dans les pages JSP.

Transféré par

Marwane Mouttaqi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 19

07/10/2017

JAVA, C’EST FACILE


~JSP ~

Créer et déployer un premier JSP avec TomCat

1
07/10/2017

JSP : Java Server Page :

Une page JSP contient un modèle de document statique et des balises spécifiques
pour inclure du texte ou exécuter une partie de la logique applicative.

Le contenu statique est servi comme du HTML normal.

Une JSP est un fichier texte ( .jsp ) contenant du code HTML et des fragments de
code Java contenus dans des balises spécifiques, exécutés sur le serveur WEB

En fait, le fichier JSP est traduit en servlet qui est compilée, puis instanciée lors de
son invocation via une URL

Exemple pour afficher la date:

<HTML>
<BODY>

Hello! The time is now <%= new java.util.Date()%>

</BODY></HTML>

La phrase «la balaise serveur» inclut trois instructions :

1. <% %>La déclaration d’un type Date implicite :java.util.Date()


2. Instantiation de cette type : new
3. Puis l’affectation avec =

2
07/10/2017

Explicitement on peut écrire

<HTML>
<BODY>

<% out.println( "afficher la date système ");


java.util.Date madate = new java.util.Date();
%>

Hello! The time is now

<%= madate %>


</BODY>

</HTML>

<HTML>
<BODY>
<% out.println( "afficher la date système " );
java.util.Date madate = new java.util.Date();%>

Essalam ! la date système est:

<% out.println( String.valueOf( madate ));%>

</BODY>

</HTML>

3
07/10/2017

Dans une page JSP on peur cohabiter les instructions de HTML générique :

<TABLE BORDER=2>

<% for ( int i = 0; i < n; i++ ) { %>

<TR>
<TD>Number</TD>
<TD><%= i+1 %></TD>
</TR>
<% }%>

</TABLE>

<% out.println( madate );

out.println( "<BR> l’adresse de mon poste est " );

out.println( request.getRemoteHost());%>

4
07/10/2017

atelier1

Récupérer des valeurs via URL et faire la somme


de ces paramètres?

atelier2
Réaliser le formulaire suivant qui affiche les
paramètres donnés dans l’url ou les valeurs par défaut

5
07/10/2017

formulaire.jsp

 Faisons un premier test.Avec un navigateur, demandons l'URL


http://localhost:8080/personne/formulaire.jsp

6
07/10/2017

 Le document formulaire.jsp a été appelé sans passage de paramètres.


Les valeurs par défaut ont donc été affichées. Maintenant demandons
l'URL
http://localhost:8080/personne/formulaire.jsp?txtNom=martin&txtAge=14:

Une directive

Elle vous permet de communiquer votre page avec d’autre programme.


Initiée par @

Exemple :
<%@ page import="java.util.*" %>
<HTML>
<BODY>
<% Date date = new Date();…….

Ou importer une autre page JSP avec l’instruction suivante :

<%@ include file="hello.jsp" %>

7
07/10/2017

Les fonction dans les pages JSP sont fréquemment sollicités afin d’itérer la
même procédure plusieurs fois.

Exemple :

<%@ page import="java.util.*" %>


<HTML><BODY>
<%!
Date theDate = new Date();
Date getDate()
{
Return theDate;
}
%>
Hello! The time is now <%= getDate() %>
</BODY>
</HTML>

Les scriptlets : <% … %>

Contient du code JAVA


– tout code JAVA valide
– Objet out pour produire de la sortie HTML, objets request et response
Se transforme dans la méthode _jspService() de la servlet
– les variables sont locales à la méthode

8
07/10/2017

Les scriptlets : exemple

Définir un striptlets qui affiches les valeurs d’un


tableau?

Les scriptlets : exemple

<%
String[] noms = { "ahmed", "ali"};
for(int i = 0; i < noms.length; i++){
out.println(noms[i]);
}
%>

Les expressions : <%= … %>

Pour évaluer une expression ou un objet Java et renvoyer sa valeur :


– retourne une version String de l'expression
– raccourci pour <% out.println(…); %>
Se transforme en out.println(…) dans la méthode _jspService(…)
de la servlet

Les expressions : exemple


Réaliser la page suivante
<%
String[] noms = {"titi", "toto"};
for(int i = 0; i < noms.length; i++)
{
%>
Le nom <%= i %> ième nom est
<%= noms[i] %>
<%
} Le ième nom est : en html
%>

9
07/10/2017

Les déclarations : <%! … %>

Pour déclarer des méthodes à l'échelle de la page (méthodes de la servlet générée)


– les méthodes ne sont exécutées que si elles sont appelées explicitement
– on peut aussi déclarer des attributs

Se transforme en déclarations de champs et méthodes au niveau de la servlet

Les déclarations : exemple

<%!
private int accessCount = 0;
private int incrementCount() {return
accessCount++;}
%>

<H2>Nombre et liste des articles</H2>
Nombre d'articles :
<%= incrementCount() %>

10
07/10/2017

Directives

<%@ directive attribut1="valeur"


attribut2="valeur"... %>
2 directives possibles (jsp1.1) :
– page : informations relatives à la page
– include : fichiers à inclure littéralement

La directive : <%@page … %>

Valeurs possibles :
– <%@ page language="java"
– <%@ page import="java.util.*, java.net.*" %>
– <%@ page contentType="text/plain" %>
– <%@ page session="true|false " %>
– <%@ page errorPage="pathToErrorPage" %>
– <%@ page isErrorPage="true|false" %>
– <%@ page …

11
07/10/2017

La directive : <%@include … %>

Valeurs possibles :
– <%@ include file="chemin relatif du fichier" %>
– pour se référer au home dir du serveur Web :
<%@ include file="/toto.html" %>
Interprété littéralement, le fichier peut être
– HTML, scripting elements, directives, actions, ...
L'insertion se fait au moment de la traduction de la page...

Variables prédéfinies

Ou "objets implicites", ils sont accessibles dans les balises JSP :


– request : le HttpServletRequest
– response : le HttpServletResponse
– session : le HttpSession
– out : flot de sortie (idem response.getWriter())
– application : le ServletContext (idem
getServletConfig().getContext() )
– config, pageContext, page... : peu utiles

12
07/10/2017

Collaboration de JSP

Collaboration de JSP
 Rappel sur la collaboration (voir partie Servlet)
 partage d’information : un état ou une ressource
 partage du contrôle : une requête
 Processus identique à la collaboration de Servlet pour le
partage d’information et de contrôle
 Partage d’information
 Utilisation du contexte pour transmettre des attributs
 Méthode getContext(…), setAttribute(…) et getAttribute(…)
 Partage du contrôle
 Utilisation des tags action JSP include et forward

13
07/10/2017

Partage d’information
 Le partage se fait grâce à l’objet implicite application qui
est de type ServletContext
 Exemple : transmettre un simple attribut à tout un contexte

 Page1.jsp :

Enregistrement dans le contexte d'un attribut


<% application.setAttribute("attribut1","Bonjour tout le
monde"); %>
 Page2.jsp :

<% out.println(application.getAttribute("attribut1")); %>

Partage d’information
 Faire un test de partage d’information entre
deux jsp

14
07/10/2017

Partage du contrôle
 forward:
 Exemple1 : renvoi sans passage de paramètres
<jsp:forward page="page.html" />
 Exemple2 : renvoi avec passage de paramètres
<jsp:forward page="page.html" >
<jsp:param name="defaultparam" value="nouvelle" />
</jsp:forward>
 Remarque :
 ne pas modifier l’objet response
 Ne pas modifier l’objet request après le renvoi
 Include :
 Exemple1 : inclusion sans passage de paramètres
<jsp:include page="page.html" />
 Exemple2 : inclusion avec passage de paramètres
<jsp:include page="page.html" >
<jsp:param name="defaultparam" value="nouvelle" />
</jsp:include>

Partage du contrôle
 Remarques :
 Le partage du contrôle et plus précisément l’inclusion et le
renvoi par des balises actions ne permettent que le transfert
d’attributs de types chaînes de caractères.
 Nécessité d’utiliser RequestDispatcher et les objets
implicites request et response pour transférer des attributs objets
 Exemple pour une inclusion (même chose pour un renvoi)
 <% RequestDispatcher dispatch =
 request.getRequestDispatcher("/fichier.jsp");%>
 <% request.setAttribute("attribut1","bonjour"); %>
 <% dispatch.include(request,response); %>

15
07/10/2017

Partage du contrôle
 Nécessité d’utiliser RequestDispatcher et les objets
implicites request et response pour transférer des attributs objets

 Exemple pour une inclusion (même chose pour un renvoi)

<% RequestDispatcher dispatch = request.getRequestDispatcher("/fichier.jsp");%>

<% request.setAttribute("attribut1","bonjour"); %>

<% dispatch.include(request,response); %>

Coopération servlets et pages


JSP

16
07/10/2017

Coopération servlets et pages JSP

 Nous avons vu que la servlet était mal adaptée


pour générer du code HTML alors que la page JSP
elle, était bien adaptée. Par la suite, nous
construirons nos applications de la façon suivante:
 les pages renvoyées en réponses aux demandes
des clients seront générées uniquement par des
documents JSP. Ceux-ci seront paramétrés, ce qui
leur donnera leur aspect dynamique.
 la logique de traitement des requêtes du client et le

calcul des paramètres nécessaires à l'affichage des


réponses sera assuré par une ou plusieurs servlets.

 Après déploiement, Nous demandons l'URL


http://localhost:8080/personne/formulaire2?txtNom=milou&tx
tAge=10:

une servlet contient de la logique applicative et délègue à une page JSP


l'envoi de la réponse au client. Nous procèderons désormais toujours de cette
façon.

17
07/10/2017

ServletFormulaire2

ServletFormulaire2

18
07/10/2017

formulaire2.jsp

Fin de la partie JSP

19

Vous aimerez peut-être aussi