Upload
hamza-bazhar
View
2
Download
0
Embed Size (px)
DESCRIPTION
SSerie1JavaAnvancé_partie1
Citation preview
Atelier 1 J2EE SMI6 & LP2i Karim AFDEL
1
Atelier 1
A- Traitement de formulaire avec JSP
Note : Les outils utilisés dans cet atelier :
Eclipse Europe qui a l'avantage d'être pré-configuré pour créer 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 résultat!"> </form><hr> </BODY></HTML>
Atelier 1 J2EE SMI6 & LP2i Karim AFDEL
2
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 résultats)</TITLE> </HEAD> <BODY> <H1>Un simple test avec JHMTL (calcul du résultat)</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 débutant</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 déploiement du projet dans Eclipse :
1- Créer un projet Web Dynamique TP_JSP 2- Créer un fichier HTML en utilisant new HTML : formulaire.html 3- Créer un fichier JSP en utilisant new JSP: calcul.jsp
4- Le fichier JSP a besoin d'un moteur d'exécution Container Tomat: pour cela cliquez sur le projet TP_formulaire-> File->Other-> server-> tomacat5.5>-> deployer TP_JSP
5- Lancer le serveur Apache Tomacat
Atelier 1 J2EE SMI6 & LP2i Karim AFDEL
3
6- Sélectionner formulaire -> run server-
>
Travail à faire:
1- Modifier le formulaire de la manière suivante :
Nom :
Prénom :
Age :
Tel:
2- Modifier le fichier jsp de telle manière qu'il permet de saisir les données des champs de saisies : Nom, prénom, age et Tel et de les afficher sur page HTML.
3- Déployer l'application en utilisant Eclipse.
B- Connexion à la base de données avec JSP
Api JDBC
L'API (Application Programming Interface) JDBC, c'est-à-dire la bibliothèque de classes JDBC, se charge de trois étapes indispensables à la connexion à une base de données :
• la création d'une connexion à la base • l'envoi d'instructions SQL • l'exploitation des résultats provenant de la base
[Tapez une citation prise dans le
[Tapez une citation prise dans le
[Tapez une citation prise dans le
[Tapez une citation prise dans le
Atelier 1 J2EE SMI6 & LP2i Karim AFDEL
4
Le package java.sql.*
Tous les objets et les méthodes relatifs aux bases de données sont présents 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 éléments suivants :
Classes Interfaces Exceptions
Date DriverManager DriverPropertyInfo Time Timestamp Types
Array Blob CallableStatement Clob Connection DatabaseMetaData Driver PreparedStatement Ref ResultSet ResultSetMetaData SQLData SQLInput SQLOutput Statement Struct
BatchUpdateException DataTruncation SQLException SQLWarning
Connexion à la base de données
Pour se connecter à une base de données il est essentiel de charger dans un premier temps le pilote de la base de données à laquelle on désire se connecter grâce à un appel au DriverManager (gestionnaire de pilotes) :
Class.forName("nom.de.la.classe");
Cette instruction charge le pilote et crée une instance de cette classe. Pour se connecter à une base de données déclarée 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 façon suivante : Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
Pour se connecter à une base de données particulière, il s'agit ensuite de créer une instance de la classe Connection grâce à la méthode getConnection de l'objet DriverManager en indiquant la base de données à charger à l'aide de son URL
String url = "jdbc:odbc:base_de_donnees";
Atelier 1 J2EE SMI6 & LP2i Karim AFDEL
5
Connection con = DriverManager.getConnection(url); Le nom de la base de données (ici base_de_donnees) étant celle déclarée dans le panneau de configuration ODBC, c'est-à-dire le nom du DSN. La syntaxe de l'URL peut varier légèrement selon le type de la base de données. Il s'agit généralement d'une adresse de la forme : jdbc:sousprotocole:nom
Atelier Créer une base de données avec EasyPHP "atelier1" Créer une table personne avec 3 champs nom, prénom 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 données Déployer ce projet WebDynamique en utilisant Eclipse. Respecter la hiérarchie 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");
Atelier 1 J2EE SMI6 & LP2i Karim AFDEL
6
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){;}}}