Post on 21-Aug-2018
CONFIGURATION TOMCAT & MYSQL &
SERVLET SOUS ECLIPSE & JSP Réalisé par : H.zinsou
Année : 2012
Page 2 sur 30
SOMMAIRE
Sommaire ............................................................................................................................................................ 2
PRE-REQUIS ......................................................................................................................................................... 3
Déclaration de TOMCAT sous Eclipse .................................................................................................................. 3
Mise en place dans eclipse du connector ........................................................................................................... 7
TOMCAT & MYSQL ............................................................................................................................................ 10
MYSQL ............................................................................................................................................................... 11
Servlets .............................................................................................................................................................. 15
Servlets (sans JSP) ........................................................................................................................................ 15
Création d’une servlet sous eclipse ........................................................................................................... 15
Lancement d’une servlet ........................................................................................................................... 18
Servlet : Insérer une image ....................................................................................................................... 19
Servlet Connexion Base de données ......................................................................................................... 22
Servlet date dynamique-heure dynamique .............................................................................................. 25
Servlet Formulaire ..................................................................................................................................... 26
Servlets (avec JSP) ......................................................................................................................................... 30
Page 3 sur 30
PRE-REQUIS
- Tomcat 6.0 installé
- Pilote MySql (mysql-connector) ou autres pilotes de base de données (oracle…)
- Eclipse JEE.
- WampServer 2.0
Lien de téléchargement de eclipse : http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/indigo/SR1/eclipse-jee-indigo-SR1-win32.zip&url=http://eclipse.ialto.com/technology/epp/downloads/release/indigo/SR1/eclipse-jee-indigo-SR1-win32.zip&mirror_id=514 Lien de téléchargement de MySql (pilote) : http://dev.mysql.com/get/Downloads/Connector-ODBC/5.1/mysql-connector-odbc-noinstall-5.1.9-win32.zip/from/http://mirrors.ircam.fr/pub/mysql/ Lien de téléchargement Tomcat : http://mirror.ibcp.fr/pub/apache/tomcat/tomcat-6/v6.0.35/bin/apache-tomcat-6.0.35.exe Lien de téléchargement WampServer : http://sourceforge.net/projects/wampserver/files/WampServer%202/WampServer%202.2/WampServer2.2a-p1-x32.exe/download Installer eclipse (dé-zip) à la racine. Puis WampServer. Ainsi que Tomcat.
DECLARATION DE TOMCAT SOUS ECLIPSE
Ouvrir Eclipse (c:\eclipse\eclispe.exe). Puis cliquez sur l’onglet Window et sur Preferences.
Page 4 sur 30
Développer Server à gauche de la fenêtre puis cliquez sur Runtime Environments et Cliquez sur Add…
Choisir la version de TOMCAT (ici 6)
Page 5 sur 30
Cliquez sur le bouton Browse (on va cherche le répertoire de TOMCAT (C:\Program Files\Apache Software
Foundation\Tomcat 6.0)). Puis finish.
Résultat :
Page 6 sur 30
Une dernière configuration reste à effectuer. C’est la plus simple. Il suffit de choisir sous qu’elle navigateur va
se lancer les servlets.
Pour cela cliquer sur Windows Web Browser Choix du navigateur
Problème courant :
L’onglet Web Browser n’apparait pas.
Vérifier que sur votre droite dans eclipse que vous soyez sous Java EE et non Java ou autres…
Exemple :
Cliquer sur >>
Choisissez Java EE
Résultat :
Page 7 sur 30
MISE EN PLACE DANS ECLIPSE DU CONNECTOR
L'opération étant effectuée il faut se rendre sur le logiciel eclipse. Créer un projet Java simple (File New Java Project). Ensuite Click droit sur le projet auquel nous voulons insérer le pilote. Puis Properties. Capture d’écran :
Page 8 sur 30
Cette Fenêtre doit apparaître : Cliquer sur Java Build Path.
Sélectionner l’onglet Librairies. Cliquer sur Add External JARs…
Page 9 sur 30
Choisir le fichier mysql-connector-java-5.1.18-bin.jar qui se trouve sur :
(C:\Eclipse\mysql-connector-java-5.1.18\mysql-connector-java-5.1.18-bin.jar) Puis Cliquer sur Ouvrir
Résultat :
Le connector mysql est maintenant en fonctionnel pour qu’une connexion à une base de données soit réalisée.
Page 10 sur 30
TOMCAT & MYSQL
Afin que TOMCAT ait connaissance de MYSQL il lui faut le déclarer. Pour cela se rendre dans le répertoire du
mysql-connector et prendre le .jar (mysql-connector-java-5.1.18-bin.jar).
Copier ce .jar et le coller dans (C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib)
Page 11 sur 30
Redémarrer ECLIPSE.
MYSQL
Après l’installation de WampServer il faut démarrer wampServer (C:\wamp\wampmanager.exe).
Ensuite ouvrir le navigateur Web et saisir dans la barre url (http://127.0.0.1/phpmyadmin)
Cliquer sur le premier onglet Base de données.
Page 12 sur 30
Remplir le champ par le nom de la base puis Créer.
Page 13 sur 30
Puis cliquer à gauche sur le nom de votre base.gestion_agenda
Cliquer sur l’onglet Importer et choisir le fichier agenda.sql.
Page 14 sur 30
Résultat :
Page 15 sur 30
SERVLETS
SERVLETS (SANS JSP)
Les servlets s’exécute coté serveur alors que les applets coté client.
Création d’une servlet sous eclipse
Cliquez sur File New Dynamic Web Project
Choisir un nom de projet et cliquer sur Finish (A noter que le serveur Tomcat et choisit).
Page 16 sur 30
Ensuite cliquer sur File New Servlet OU à la racine de votre projet et click Droit new servlet
Ensuite donner à votre servlet un nom (Attention respecter les règles de nommage) puis Finish
Page 17 sur 30
Projet dans lequel sera la servlet
Nom de la servlet
Page 18 sur 30
Résultat du code java sans les commentaires.
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MaPremiereServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
}
}
Lancement d’une servlet
Clique droit sur le code java puis Run as Run on Server
Cliquer sur Finish dans la fenêtre suivante.
Ensuite la servlet se lance dans votre navigateur choisit auparavant.
Problème connu :
Une erreur disant que le serveur Tomcat et déjà lancé.
Pour résoudre clique droit dans la barre de notification puis Stop service. Relancer le run as.
Page 19 sur 30
Servlet : Insérer une image
L’image doit être sur le disque local.
Créer une servlet puis insérer le code java.
Code Java :
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MaPremiereServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
response.setContentType("image/jpeg");
OutputStream out = response.getOutputStream();
Page 20 sur 30
//Chemin du fichier local
FileInputStream in = new FileInputStream("\\Image_De_Moi.jpg");
int size = in.available();
byte[] content = new byte[size];
in.read(content);
out.write(content);
in.close();
out.close();
}
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
}
}
Résultat :
Page 21 sur 30
Page 22 sur 30
Servlet Connexion Base de données
Pour cela 7 étapes sont importantes :
- Choix du pilote (ici mysql-connector)
- Fournir l’url du serveur
- Etablir la connexion
- Donner des instructions (SQL)
- Exécuter des instructions (executeQuery (select) & executeUpdate(Insert, Delete, Update)
- Analyser les résultats (ResultSet)
- Fermeture de la transaction
Code Java :
import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Mysql extends HttpServlet {
/*Définition de la servlet (nous allons répondre a la requete url)
Cette fonction peut répondre a une exception*/
public void doGet(HttpServletRequest requeteClient,
HttpServletResponse reponseServeur) throws ServletException, IOException
{
try
{
//Déclaration des variables utiles
PrintWriter fluxEnSortie;
String titre = "Voici ma première Servlet";
//Le type Mine : spécification de type de sortie (+ svt HTML)
reponseServeur.setContentType("text/Html"); //Si XML exemple
reponseServeur.setContentType("text/XML");
//Ecriture de la réponse en sortie
fluxEnSortie = reponseServeur.getWriter();
//VARIABLES
Statement stmt = null;
//Url Base de données
String urlDeMaBase =
"jdbc:mysql://localhost/gestion_agenda";
Connection connectBdd = null;
Page 23 sur 30
//PILOTE
try
{
//Mise en place du Pilote Mysql
Class.forName("com.mysql.jdbc.Driver");
//CONNEXION BDD
//Connexion à la base de données (login : root
mdp : )
connectBdd =
DriverManager.getConnection(urlDeMaBase, "root", "");
//STATEMENT
//Création du Statement avec la variable
connectBdd
stmt = connectBdd.createStatement();
//REQUETE SQL
//Requete Sql mis dans une variable de type
String
String maRequete = "SELECT * FROM adresse";
//Récupération des données de provenance de
l'objet (executeQuery car SELECT)
ResultSet resultat =
stmt.executeQuery(maRequete);
fluxEnSortie.println("<table border='1' >");
fluxEnSortie.println("<tr>");
fluxEnSortie.println("<td>ID</td>");
fluxEnSortie.println("<td>Adresse Rue</td>");
fluxEnSortie.println("<td>Code Postal</td>");
fluxEnSortie.println("<td>Ville</td>");
fluxEnSortie.println("</tr>");
//Boucle sur chaque enregistrement jusqu'au
dernier enregistrement + Affichage à l'écran
while(resultat.next())
{
fluxEnSortie.println("<tr><td> " +
resultat.getString(1)+ "</td><td> " + resultat.getString(2)+ "</td><td> " +
resultat.getString(3)+ "</td><td> " + resultat.getString(4)+"</td></tr>");
}
fluxEnSortie.println("</table>");
//FERMETURE CONNEXION
connectBdd.close();
}
catch (SQLException e)
{
fluxEnSortie.println("Erreur SQL : " +
e.getMessage());
}
catch(ClassNotFoundException e1)
{
Page 24 sur 30
fluxEnSortie.println("Erreur PILOTE : " +
e1.getMessage());
}
fluxEnSortie.close();
}
catch (IOException ex)
{
System.out.println("Erreur" + ex.getMessage());
}
}
}
Résultat sur le navigateur (ATTENTION LE SERVEUR WAMP DOIT ETRE DEMARRE)
Page 25 sur 30
Servlet date dynamique-heure dynamique
Code Java : import java.io.IOException; import java.io.PrintWriter;
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DateHeure extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
//DATE
Date date = new Date();
//Mise en forme de la date
Format formatDate = new SimpleDateFormat("dd-MM-yyyy -
HH:mm:ss");
//Actualisation
response.setHeader("refresh", "1");
//Type MINE
response.setContentType("text/HTML");
PrintWriter fluxEnSortie = response.getWriter();
fluxEnSortie.println(formatDate.format(date));
}
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
}
}
Résultat navigateur :
Page 26 sur 30
Servlet Formulaire
Code JAVA :
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Image extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse
reponseServeur)throws ServletException, IOException {
//Type MINE
reponseServeur.setContentType("text/HTML");
PrintWriter fluxEnSortie = reponseServeur.getWriter();
//HTML
fluxEnSortie.println("<Html>");
fluxEnSortie.println("<head>");
fluxEnSortie.println("</head>");
fluxEnSortie.println("<body>");
fluxEnSortie.println("<form method = 'post' action =
'Image'/>");
fluxEnSortie.println("<table>");
fluxEnSortie.println("<tr>");
fluxEnSortie.println("<td>Nom :</td><td> <input type = 'text'
style = 'text-transform:uppercase' name = \"Nom\" /></td>");
fluxEnSortie.println("</tr><br />");
fluxEnSortie.println("<tr><td>Matiere :</td> <td><input type =
'text' style = 'text-transform:uppercase' name = \"Matiere\"
/></td></tr>");
fluxEnSortie.println("<br />");
fluxEnSortie.println("<tr><td><input type = 'submit' name =
'Button' value = 'Validez' width = '150' /></td></tr>");
fluxEnSortie.println("</form>");
fluxEnSortie.println("</body>");
fluxEnSortie.println("</html>");
fluxEnSortie.close();
}
public void doPost(HttpServletRequest requeteClient,
HttpServletResponse reponseServeur) throws ServletException, IOException
Page 27 sur 30
{
reponseServeur.setContentType("text/HTML");
PrintWriter fluxEnSortie = reponseServeur.getWriter();
try
{
//Déclaration des variables utiles
//PrintWriter fluxEnSortie;
String titre = "Voici mon premier Formulaire";
//Le type Mine : spécification de type de sortie (+ svt HTML)
reponseServeur.setContentType("text/Html"); //Si XML exemple
reponseServeur.setContentType("text/XML");
//Ecriture de la réponse en sortie
fluxEnSortie = reponseServeur.getWriter();
//VARIABLES
Statement stmt = null;
//Url Base de données
String urlDeMaBase =
"jdbc:mysql://localhost/agenda";
Connection connectBdd = null;
//PILOTE
try
{
//Mise en place du Pilote Mysql
Class.forName("com.mysql.jdbc.Driver");
//CONNEXION BDD
//Connexion à la base de données (login : root
mdp : )
connectBdd =
DriverManager.getConnection(urlDeMaBase, "root", "");
//STATEMENT
//Création du Statement avec la variable
connectBdd
stmt = connectBdd.createStatement();
//REQUETE SQL
//Requete Sql mis dans une variable de type
String
//Récupération des données de provenance de
l'objet (executeQuery car SELECT)
//getParameter("Nom") récupére la valeur du
champs nom
String maRequete = "SELECT Res_date from
resmatieres r, matieres m where r.FK_Mat_cle = m.Mat_Cle and r.res_lastuser
= '" + requeteClient.getParameter("Nom") + "'and m.Mat_libelle = '" +
requeteClient.getParameter("Matiere")+ "'";
ResultSet resultat =
stmt.executeQuery(maRequete);
fluxEnSortie.println("<table><tr><td>Date
Réservation</td></tr>");
Page 28 sur 30
//Boucle sur chaque enregistrement jusqu'au
dernier enregistrement + Affichage à l'écran
int compteur=0;
while(resultat.next())
{
fluxEnSortie.println("<tr><td> " +
resultat.getString(1) + "</td></tr>");
compteur++;
}
if (compteur == 0)
{
fluxEnSortie.println("<tr><td>Pas de
réservation</td></tr>");
}
fluxEnSortie.println("</table>");
//FERMETURE CONNEXION
connectBdd.close();
}
catch (SQLException e)
{
fluxEnSortie.println("Erreur SQL : " +
e.getMessage());
}
catch(ClassNotFoundException e1)
{
fluxEnSortie.println("Erreur PILOTE : " +
e1.getMessage());
}
fluxEnSortie.close();
}
catch (IOException ex)
{
System.out.println("Erreur" + ex.getMessage());
}
}
}
Page 29 sur 30
Résultat dans le navigateur :
Après validation :
S’il y a des réservations
Sinon
Page 30 sur 30
SERVLETS (AVEC JSP)
Pour créer un fichier JSP (à mettre à la racine du projet) pour cela clique droit sur le projet puis new et jsp file
Donner un nom et insérer le code java suivant. Puis exécuter.
Code JSP :
<html>
<head>
<title>Mon premier JSP</title>
</head>
<body>
<h1>Bonjour tout le monde</h1>
Nous sommes le //Expression<%= new java.util.Date().toString() %> et
tout va bien.
<br />
//Scriplet<% String [] nom = {"toto","tata"};
for (int i = 0; i < nom.length; i++){
%>
//Expression<%= i %>ème nom est <%= nom[i]%>
<%
}
%>
</body>
</html>
Navigateur web :