Technologie Web : JSP
Présenté par Dr Volatiana Marielle RATIANANTITRA
Page Web Dynamique de JAVA
En utilisant Java, il existe également un moyen de
générer des pages Web dynamiques, à savoir :
- Java Servlet
- Java Server Page
Qu’est ce que Java Servlet ?
Les servlets Java sont les programmes Java qui
s'exécutent sur le serveur Web ou le serveur
d'applications compatible Java.
Ils sont utilisés pour gérer la requête obtenue du
serveur Web, traiter la requête, produire la réponse,
puis renvoyer une réponse au serveur Web.
Propriétés du servlet Java
Les propriétés des Servlets sont les suivantes :
- Les servlets fonctionnent côté serveur.
- Les servlets sont capables de gérer des requêtes
complexes obtenues du serveur Web.
Architecture du servlet
Architecture du servlet
L'exécution des servlets implique essentiellement six
étapes de base :
-Les clients envoient la demande au serveur Web.
-Le serveur Web reçoit la demande.
-Le serveur Web transmet la requête au servlet
correspondant.
-Le Servlet traite la demande et génère la réponse
sous forme de sortie.
-Le servlet renvoie la réponse au serveur Web.
-Le serveur Web renvoie la réponse au client et le
navigateur client l'affiche à l'écran.
Les API de servlet
Les servlets sont construits à partir de deux
packages :
- [Link] (de base)
- [Link](Avance)
Les API de servlet
Qu’est ce que JSP ?
JavaServer Pages (JSP) est une technologie de
développement de pages Web prenant en charge le
contenu dynamique. Cela aide les développeurs à
insérer du code Java dans les pages HTML en
utilisant des balises JSP spéciales, dont la plupart
commencent par <% et se terminent par %>.
Qu’est ce que JSP ?
Un composant JavaServer Pages est un type de
servlet Java conçu pour remplir le rôle d'interface
utilisateur pour une application Web Java.
Les développeurs Web écrivent des JSP sous forme
de fichiers texte combinant du code HTML ou
XHTML, des éléments XML et des actions et
commandes JSP intégrées.
Difference entre Servelet et
JSP ?
- Un servlet est une classe Java utilisée pour
étendre les capacités des serveurs qui hébergent
des applications accessibles au moyen d'un
modèle requête-réponse. Les servlets sont
principalement utilisés pour étendre les
applications hébergées par les services Web.
- Une JSP est un document texte qui contient deux
types de texte : des données statiques (HTML,
XML, etc) et des données dynamiques (JSP)
Java Server Page
- JSP a été publié par Sun Microsystems en 1999.
- JSP est une technologie frontend utilisée pour
développer une interface utilisateur graphique
d'une application Java.
- JSP permet d'introduire du code Java dans des
tags prédéfinis à l'intérieur d'une page HTML.
- Enregistrer le fichier JSP avec l'extension ".jsp"
Prérequis
• JAVA
• XML
• HTML
• DHTML
Configuration de l’
environnement
Une fois que vous avez téléchargé votre JDK, suivez
les instructions données pour installer et configurer
l'installation.
- Définissez les variables d'environnement PATH et
JAVA_HOME pour faire référence au répertoire qui
contient java et javac.
PATH : C:\Program Files\Java\jdk-17\bin
JAVA_HOME : C:\Program Files\Java\jdk-17
Les serveurs JEE
- Apache Tomcat
- Glassfish
- Apache TomEE
- Jetty
- WildFly
- WebSphere
- Jboss
- etc
Configuration du serveur Web
: Tomcat
Apache Tomcat est une implémentation logicielle
open source des technologies JSP et Servlet et peut
agir comme un serveur autonome pour tester JSP et
Servlets, et peut être intégré au serveur Web
Apache.
Voici les étapes pour configurer Tomcat sur votre
machine:
- Téléchargez la dernière version de Tomcat depuis
[Link]
Configuration du serveur Web
: Tomcat
- Une fois que vous avez téléchargé l'installation,
décompressez la distribution binaire dans un
emplacement pratique.
Par exemple, sous Windows
dans C:\apache-tomcat-5.5.29
Ou sous Linux/Unix :
/usr/local/apache-tomcat-5.5.29
- Créer la variable d'environnement
CATALINA_HOME pointant vers ces emplacements.
Configuration du serveur Web
: Tomcat
- Tomcat peut être démarré en exécutant les
commandes suivantes sur la machine Windows :
C:\apache-tomcat-5.5.2\bin\[Link]
- Tomcat peut être démarré en exécutant les
commandes suivantes sur la machine Unix (Solaris,
Linux, etc.) :
/usr/local/apache-tomcat-5.5.2/bin/[Link]
Configuration du serveur Web
: Tomcat
Après un démarrage réussi, les applications Web par
défaut incluses avec Tomcat seront disponibles en
visitant [Link]
Lors de l'exécution, vous recevrez le résultat suivant
Configuration du serveur Web
: Tomcat
Tomcat peut être arrêté en exécutant les commandes
suivantes sur la machine Windows :
C:\apache-tomcat-5.5.29\bin\shutdown
Tomcat peut être arrêté en exécutant les commandes
suivantes sur une machine Unix (Solaris, Linux, etc.) :
/usr/local/apache-tomcat/bin/[Link]
JSP : Cycle de vie
Un cycle de vie JSP est défini comme le processus
depuis sa création jusqu'à sa destruction
Voici les chemins suivis par un JSP :
▪ Compilation :
▪ Initialisation :
▪ Exécution :
▪ Nettoyer :
JSP : Compilation
Lorsqu'un navigateur demande un JSP, le moteur JSP
vérifie d'abord s'il doit compiler la page. Si la page n'a
jamais été compilée, ou si le JSP a été modifié depuis
sa dernière compilation, le moteur JSP compile la
page.
Le processus de compilation comporte trois étapes :
▪ Analyse du JSP.
▪ Transformer le JSP en servlet.
▪ Compilation de la servlet.
JSP : Initialisation
Lorsqu'un conteneur charge un JSP, il appelle la
méthode jspInit() avant de répondre à toute requête.
Si vous devez effectuer une initialisation spécifique à
JSP, remplacez la méthode jspInit() :
public void jspInit(){
// Initialization code...
En règle générale, l'initialisation n'est effectuée
qu'une seule fois, vous initialisez généralement les
connexions à la base de données, ouvrez les fichiers
et créez des tables de recherche dans la méthode jsp
JSP : Exécution
Cette phase du cycle de vie du JSP représente toutes
les interactions avec les requêtes jusqu'à la
destruction du JSP. Chaque fois qu'un navigateur
demande un JSP et que la page a été chargée et
initialisée, le moteur JSP appelle la méthode
_jspService() dans le JSP.
La méthode _jspService() prend un
HttpServletRequest et un HttpServletResponse
comme paramètres comme suit :
void _jspService(HttpServletRequest request,
HttpServletResponse response) {
// Service handling code... }
JSP : Nettoyage
La phase de destruction du cycle de vie d'une JSP
représente le moment où une JSP est retirée de son
utilisation par un conteneur.
La méthode jspDestroy() est l'équivalent JSP de la
méthode destroy pour les servlets. Remplacez
jspDestroy lorsque vous devez effectuer un nettoyage,
tel que la libération des connexions à la base de
données ou la fermeture de fichiers ouverts.
public void jspDestroy() {
// Your cleanup code goes here.
}
Comment commencer ?
- Conserver les codes sous extension .JSP
- Enregistrer les fichiers dans le répertoire
C:\apache-tomcat7.0.2\webapps\ROOT
- ¨Parcourir les fichiers en utilisant l'URL
[Link]
Syntaxe de base
Éléments de JSP:
Le script
Un script peut contenir un nombre illimité
d'instructions du langage JAVA, de déclarations de
variables ou de méthodes, ou d'expressions valides
dans le langage de script de page.
Voici la syntaxe de Script:
<% code fragment %>
Syntaxe de base
Exemple:
<html>
<head><title>Hello World</title></head>
<body>
Hello World!<br/>
<%
[Link](“Hello world");
%>
</body>
</html>
JSP: Déclaration
Une déclaration déclare une ou plusieurs variables
ou méthodes que vous pourrez utiliser dans le code
Java ultérieurement dans le fichier JSP.
Voici la syntaxe des déclarations JSP :
<%! declaration; [ declaration; ]+ ... %>
Voici un exemple de déclarations JSP :
<%! int i = 0; %>
<%! int a, b, c; %>
<%! Circle a = new Circle(2.0); %>
JSP: Expression
Un élément d'expression JSP contient une
expression de langage de script qui est évaluée,
convertie en chaîne et insérée à l'endroit où
l'expression apparaît dans le fichier JSP.
Voici la syntaxe de l'expression JSP :
<%= expression %>
JSP: Expression
L'exemple suivant montre une expression JSP :
<html>
<head><title>A Comment Test</title></head>
<body>
<p>Today's date: <%= (new
[Link]()).toLocaleString()%></p>
</body>
</html>
JSP: Commentaire
Le commentaire JSP marque le texte ou les
instructions que le conteneur JSP doit ignorer.
Voici la syntaxe des commentaires JSP :
<%-- commentaire --%>
Un commentaire JSP. Ignoré par le moteur JSP.
<!-- commentaire -->
Un commentaire HTML. Ignoré par le navigateur.
JSP: Directive
Une directive JSP affecte la structure globale de la
classe de servlet.
Il a généralement la forme suivante :
<%@ directive attribute="value" %>
Il existe trois types de balises de directive:
▪ page
▪ include
▪ taglib
JSP: Objet implicite
JSP prend en charge neuf variables définies
automatiquement, également appelées objets
implicites:
• request
• response
• out
• session
• application
• config
• pageContext
• page
• Exception
Les éléments identiques à
JAVA
- Les types de données
- Les opérateurs décisionnells (if … else)
- Les boucles (for, while, do … while, swith)
- Les autres opérateurs ( comparaison, calcul, etc)
JSP : Formulaire
Le navigateur utilise deux méthodes pour
transmettre ces informations au serveur Web.
Ces méthodes sont la méthode GET et la méthode
POST.
JSP gère automatiquement la lecture des données
du formulaire du formulaire en utilisant les
méthodes suivantes en fonction de la situation:
- getParameter() : Vous appelez la méthode
[Link]() pour obtenir la valeur d'un
paramètre de formulaire.
JSP : Formulaire
- getParameterValues() : Appelez cette méthode
si le paramètre apparaît plus d'une fois et renvoie
plusieurs valeurs, par exemple une case à cocher.
- getParameterNames() : Appelez cette méthode
si vous souhaitez une liste complète de tous les
paramètres de la requête en cours.
- getInputStream() : Appelez cette méthode pour
lire le flux de données binaires provenant du client.
JSP : Formulaire
<body>
<form action = "[Link]" method =
"POST">
First Name: <input type = "text" name =
"first_name">
<br />
Last Name: <input type = "text" name =
"last_name" />
<input type = "submit" value = "Submit" />
</form>
</body>
JSP : Formulaire
<body>
<h1>Using POST Method to Read Form
Data</h1>
<ul>
<li><p><b>First Name:</b>
<%= [Link]("first_name")%>
</p></li>
<li><p><b>Last Name:</b>
<%= [Link]("last_name")%>
</p></li>
</ul> </body>
JSP : Redirection de page
La redirection de page est généralement utilisée
lorsqu'un document est déplacé vers un nouvel
emplacement et que nous devons envoyer le client
vers ce nouvel emplacement. Le moyen le plus
simple de rediriger une requête vers une autre page
consiste à utiliser la méthode sendRedirect() de
l’objet de réponse.
public void [Link](String location)
throws IOException
JSP : Redirection de page
Vous pouvez également utiliser les méthodes
setStatus() et setHeader() ensemble pour
obtenir le même exemple de redirection :
....
String site = "[Link] ;
[Link](response.SC_MOVED_TEMPORA
RILY);
[Link]("Location", site);
....
JSP: Envoi Mail
Pour envoyer un e-mail à l'aide d'un JSP, il faut
télécharger:
- API JavaMail et
- Java Activation Framework (JAF)
JSP: Envoi Mail
<%@ page import = "[Link].*,[Link].*,[Link].*"%>
<%@ page import = "[Link].*,[Link].*"%>
<%@ page import = "[Link].*,[Link].*" %>
<% String result;
// Recipient's email ID needs to be mentioned.
String to = "abcd@[Link]";
// Sender's email ID needs to be mentioned
String from = "mcmohd@[Link]";
// Assuming you are sending email from localhost
String host = "localhost";
// Get system properties object
Properties properties = [Link]();
// Setup mail server
[Link]("[Link]", host);
// Get the default Session object.
Session mailSession = [Link](properties);
JSP: Envoi Mail
try {
// Create a default MimeMessage object.
MimeMessage message = new MimeMessage(mailSession);
// Set From: header field of the header.
[Link](new InternetAddress(from));
// Set To: header field of the header.
[Link]([Link],
new InternetAddress(to));
// Set Subject: header field
[Link]("This is the Subject Line!");
// Now set the actual message
[Link]("This is actual message");
// Send message
[Link](message);
result = "Sent message successfully....";
} catch (MessagingException mex) {
[Link]();
result = "Error: unable to send message....";
}
JSP: Envoi Mail
<html>
<head>
<title>Send Email using JSP</title>
</head>
<body>
<center>
<h1>Send Email using JSP</h1>
</center>
<p align = "center">
<%
[Link]("Result: " + result + "\n");
%>
</p>
</body>
</html>