Tp2 - Pierre Jean

Transcription

Tp2 - Pierre Jean
Tp2 Emacs Développement Web
Les indications ci-dessous donnent les grandes lignes du développement.
1/ Evenement Ajax Jquery:
Le code javascript jquery suivant permet d’afficher un message dans un span dont l’id est
message au lieu de mettre un message d’alerte. Mettez en place ce code.
$(document).ready(function(){
$("a").click(function(event){
$("span#message").append("Menu 1! ");
event.preventDefault();d
});
});
Ce bout de code en javascript permet de faire un appel en ajax au controleur avec la méthode
GET pour envoyer des données, lier ce code au fait de cocher ou de décocher la case à coche.
function doControleur() {
$.ajax( {
type : "GET",
url : "MainControleur",
dataType: "xml",
timeout : 1000,
data : { id : 1 , vue : "ajax" , action : "activate" },
success : function(xml) {
var reponse = $(xml).find("message").attr("success");
alert("Reponse XML: " + reponse );
},
error : function(xml) {
alert('Erreur Ajax');
}
});
}
Attention le renvoie de données depuis la Jsp doit comporter dans l’entête que c’est de l’Xml
qui est retourné :
<% response.setContentType("text/xml"); %><?xml version="1.0"
encoding="ISO-8859-1" ?>
<message success="true" />
2/ La base de données Mysql:
Démarrer Easyphp pour disposer d’une base de données Mysql .
Utiliser l’interface phpMyAdmin accessible via l’adresse suivante :
http://localhost/home/mysql/
L’outil phpMyAdmin permet de gérer le serveur de base de données installé sur votre PC.
Il utilise le serveur Apache Web Server et non Apache Jakarta Tomcat.
Apache Web Server est à l’écoute sur le port 80 alors que Tomcat est à l’écoute sur le port
8080.
Utiliser l’outil PhpMyAdmin pour créer un utilisateur de base de données (menu Privilèges) et
donner lui tout les droits sur une base de données unique.
Notez le nom de l’utilisateur, le mot de passe utilisé et le nom de la base de données.
Exécutez la requête SQL suivante pour créer une table :
CREATE TABLE todo (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
texte VARCHAR( 100 ) NOT NULL ,
actif BOOL NOT NULL
)
Utilisez l’outil PhpMyAdmin pour insérer des données pour nos tests. Remarquez que le
champ id est automatiquement incrémenté.
3/ La connexion JDBC entre Java et Mysql:
Il faut télécharger le driver JConnector mysql-connector-java-5.1.26.zip
Il faut extraite le fichier mysql-connector-java-5.1.26-bin.jar et le copier dans le dossier
apache-tomcat \lib\
ou le placer dans le projet dossier WebContent/WEB-INF/lib/ pour un déploiement projet par
projet.
Ajouter le jar externe au projet eclipse : clic droit sur le projet > build path > Configure build
path > Libraries
La classe suivante dans le package dao va permettre de charger depuis la base de données les
todos.
package dao;
import
import
import
import
import
metier.Application;
java.sql.Connection;
java.sql.PreparedStatement;
java.sql.ResultSet;
java.sql.SQLException;
public class ApplicationHelper {
private static Connection connection = null;
private static boolean mysqlConnection(){
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection = java.sql.DriverManager.getConnection(
"jdbc:mysql://localhost:3306/votrebasededonnee?user=votreutilisateur&passwo
rd=sonmotdepasse");
} catch(Exception e){
return false;
}
return true;
}
public static boolean load(){
if ( mysqlConnection()){
try {
PreparedStatement preparedStatement =
connection.prepareStatement("select * from todo");
ResultSet resultSet =
preparedStatement.executeQuery();
while (resultSet.next()) {
String texte =
resultSet.getString("texte");
boolean actif =
resultSet.getBoolean("actif");
Application.getInstance().addTodo(texte,
actif);
}
} catch (SQLException e) {
return false;
}
}else{
return false;
}
return true;
}
4/ Mettre à jours le champ actif à partir de l’identifiant de todo:
public static int updateTodo(boolean actif , int id){
if ( mysqlConnection()){
try {
PreparedStatement preparedStatement =
connection.prepareStatement("update todo set actif=? where id=?");
preparedStatement.setBoolean(1, actif);
preparedStatement.setInt(2, id);
return preparedStatement.executeUpdate();
} catch (SQLException e) {
return -1;
}
}else{
return -1;
}
}
5/ CRUD
A partir de la mise à jour ci-dessus, réalisez les fonctionnalités du CRUD (Create, Retrieve,
Update, Delete).
Cette mise à jour doit inclure le champ id dans la classe todo qui doit être lié à l’ID
automatiquement généré par Mysql.