Vous êtes sur la page 1sur 6

Atelier1J2EESMI6&LP2iKarimAFDEL

Atelier 1
A-

Traitement de formulaire avec JSP

Note : Les outils utiliss dans cet atelier :


Eclipse Europe qui a l'avantage d'tre pr-configur pour crer des projets J2EE.

A- Traitement de formulaire avec JSP

Code source de ce formulaire :


<HTML>
<HEAD>
<TITLE>Un simple test avec JSP</TITLE>
</HEAD>
<BODY>
<H1>Un simple test avec JSP</H1>
Cette page montre comment faire un simple test avec JHTML.
Remplissez le formulaire suivant SVP: <P>
<hr>
<form action="calcul.jsp" method="post">
Ton nom ?
<INPUT TYPE="text" NAME="nom" MAXLENGTH="50">
<br>
Quelles sont vos connaissances de HTML ?
<input type="radio" name="choice" value="1" checked>faibles
<input type="radio" name="choice" value="2">moyennes
<input type="radio" name="choice" value="3">bonnes
<br>
Indiquez votre expertise en programmation:
<input type="radio" name="choice2" value="1" checked>absente
<input type="radio" name="choice2" value="2">moyenne
<input type="radio" name="choice2" value="3">bonne
<P>
<input type="submit" value="Voir le rsultat!">
</form><hr>
</BODY></HTML>

Atelier1J2EESMI6&LP2iKarimAFDEL
Le fichier JSP permettant de traiter ce formulaire :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML> <HEAD>
<TITLE>Un simple test avec JHMTL (calcul des rsultats)</TITLE>
</HEAD>
<BODY>
<H1>Un simple test avec JHMTL (calcul du rsultat)</H1>
<hr>
<%

// Parameters come as strings


String choice = request.getParameter("choice");
String choice2 = request.getParameter("choice2");
String nom = request.getParameter("nom");
out.println(nom + ", votre input tait: question a=" + choice + " ,question b="
+ choice2);
// Integer.parseInt() translates a string to an Integer
int score = Integer.parseInt(choice) + Integer.parseInt(choice2);
out.println("<h3>Votre score est de " + score + "</h3>");
if (score < 3) { out.print ("<p>Vous tes un dbutant</p>");
} else if (score < 5) {out.print ("<p>Vous avez un niveau moyen</p>");
} else { out.print ("<p>Vous tes un expert !</p>");}
%>
<hr> </BODY></HTML>
Pour le dploiement du projet dans Eclipse :
1- Crer un projet Web Dynamique TP_JSP
2- Crer un fichier HTML en utilisant new HTML : formulaire.html
3- Crer un fichier JSP en utilisant new JSP: calcul.jsp

4- Le fichier JSP a besoin d'un moteur d'excution Container Tomat: pour cela
cliquez sur le projet TP_formulaire-> File->Other-> server-> tomacat5.5>->
deployer TP_JSP
5- Lancer le serveur Apache Tomacat

Atelier1J2EESMI6&LP2iKarimAFDEL
6- Slectionner formulaire -> run server-

>
Travail faire:
1- Modifier le formulaire de la manire suivante :
Nom :

[Tapezunecitationprisedansle

Prnom :

[Tapezunecitationprisedansle

Age :

[Tapezunecitationprisedansle

Tel:

[Tapezunecitationprisedansle

2- Modifier le fichier jsp de telle manire qu'il permet de saisir les donnes des
champs de saisies : Nom, prnom, age et Tel et de les afficher sur page
HTML.
3- Dployer l'application en utilisant Eclipse.

B- Connexion la base de donnes avec JSP


Api JDBC
L'API (Application Programming Interface) JDBC, c'est--dire la bibliothque de classes
JDBC, se charge de trois tapes indispensables la connexion une base de donnes :

la cration d'une connexion la base


l'envoi d'instructions SQL
l'exploitation des rsultats provenant de la base

Atelier1J2EESMI6&LP2iKarimAFDEL

Le package java.sql.*
Tous les objets et les mthodes relatifs aux bases de donnes sont prsents dans le
package java.sql, il est donc indispensable d'importer java.sql.* dans tout programme se
servant de la technologie JDBC.
Le package java.sql contient les lments suivants :
Classes

Date
DriverManager
DriverPropertyInfo
Time
Timestamp
Types

Interfaces
Array
Blob
CallableStatement
Clob
Connection
DatabaseMetaData
Driver
PreparedStatement
Ref
ResultSet
ResultSetMetaData
SQLData
SQLInput
SQLOutput
Statement
Struct

Exceptions

BatchUpdateException
DataTruncation
SQLException
SQLWarning

Connexion la base de donnes


Pour se connecter une base de donnes il est essentiel de charger dans un premier
temps le pilote de la base de donnes laquelle on dsire se connecter grce un appel
au DriverManager (gestionnaire de pilotes) :
Class.forName("nom.de.la.classe");

Cette instruction charge le pilote et cre une instance de cette classe. Pour se
connecter une base de donnes dclare dans l'administrateur ODBC par exemple, il
faut charger le pilote JDBC-ODBC (appel pont JDBC-ODBC) :
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Certains compilateurs refusant cette notation, il faut parfois appeler le driver de la


faon suivante :
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();

Pour se connecter une base de donnes particulire, il s'agit ensuite de crer une
instance de la classe Connection grce la mthode getConnection de l'objet
DriverManager en indiquant la base de donnes charger l'aide de son URL
String url = "jdbc:odbc:base_de_donnees";

Atelier1J2EESMI6&LP2iKarimAFDEL
Connection con = DriverManager.getConnection(url);

Le nom de la base de donnes (ici base_de_donnees) tant celle dclare dans le panneau
de configuration ODBC, c'est--dire le nom du DSN. La syntaxe de l'URL peut varier
lgrement selon le type de la base de donnes. Il s'agit gnralement d'une adresse de
la forme :
jdbc:sousprotocole:nom

Atelier

Crer une base de donnes avec EasyPHP "atelier1"


Crer une table personne avec 3 champs nom, prnom et age.
Remplir la table avec des valeurs
Par exemple :
Taha Mohamed 18
Charifie Mourad 45
Amir Moussa 17
Ecrire une Servlet permettant de connecter la base de donnes
Dployer ce projet WebDynamique en utilisant Eclipse.
Respecter la hirarchie des fichiers ci-dessous:

import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DBServlet extends HttpServlet
{private static final long serialVersionUID = 1L;
private Connection con;
private PrintWriter out;
public void init(ServletConfig conf) throws ServletException
{super.init(conf);
try {Class.forName("com.mysql.jdbc.Driver");

Atelier1J2EESMI6&LP2iKarimAFDEL
con =DriverManager.getConnection ("jdbc:mysql://localhost:3306/atelier1", "root", "");}
catch(Exception e)
{System.out.println(e);}}
public void service(HttpServletRequest req, HttpServletResponse res) throws
ServletException, IOException
{res.setContentType("text/html");
try
{out = res.getWriter();
out.println("<html><head><title>");
out.println("JDBC Servlet");
out.println("</title></head><body>");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM personne");
out.println("<UL>");
while(rs.next())
{out.println("<LI>" + rs.getString("nom"));}
out.println("</UL>");
rs.close();
stmt.close();}
catch(SQLException e)
{out.println("Exception SQL");}
catch(IOException e)
{}
out.println("</body></html>");
out.close();}
public void destroy()
{try
{con.close();}
catch(SQLException e){;}}}