f.pfister

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 26 avril 2006

Entrées - sorties en java

La sérialisation permet de rendre un objet persistant, en le "détricotant" pour le transformer en un flux d'octets qui pourra être stocké dans un fichier sur disque, ou transmis vers un client distant par une connexion réseau, et à l'inverse, en le "retricotant", le reconstituant à partir du flux.

Le mécanisme de sérialisation inclus dans java est standard et transparent: il suffit d'implémenter l'interface Serializable, qui fournit la capacité pour un objet d'être sauvegardé dans un flux et, au contraire, restitué à partir de celui-ci.

La sauvegarde concerne non seulement les attributs de l'objet, mais aussi tous les objets auxquels cet objet est lié: la sauvegarde se propage automatiquement à la grappe constituée par cet objet et ceux auxquels il est lié: par exemple, la sauvegarde d'un objet Echiquier inclut celle de ses Piece et de leur Position.

Le code source d'un exemple est donné ci-après, ainsi qu'un cas de sauvegarde et de restitution d'un objet au format csv, ce dernier peut aussi être lu et généré par MS-Excel. A noter que pour ce cas d'écriture et de lecture csv, ce n'est pas la sérialisation qui est utilisée, on réalise manuellement la décomposition et la recomposition des attributs de l'objet, notamment dans un constructeur au moyen d'un StringTokenizer, et dans la méthode toCsv()

lire la suite

jeudi 13 avril 2006

MyShop: finition

à faire:

  1. Ecrire le code nécessaire pour générer la liste de choix d'un article à ajouter dans le panier, sous la forme d'une liste de choix (Select)
  2. Concevoir et développer un enchaînement de pages pour réaliser la fonction d'achat en ligne. (Page d'accueil, choix d'un article, ajout dans le panier, etc...)
  3. Concevoir et développer la fonction de clôture de la commande: saisie de l'adresse, paiement par carte bancaire, confirmation et fin.
facultatif:
  • Mettre en place le framework HttpUnit et écrire les tests d'intégration.
  • Effectuer une mise en page avec un style css.
à rendre:(le jour du contrôle écrit final) Un compte-rendu de TP sur 4 pages maxi, en commentant, en particulier, les points concernant la séparation des couches dans cette application Web.

récupérer le code source de cette version du TP ici

mercredi 12 avril 2006

MyShop: CRUD dans la couche web

Implémentation des fonctions CRUD (Create, Retrieve, Update, Delete) dans la couche web

à faire:

  1. Créer la classe de test unitaire pour Product
  2. Créer les jsp et les servlets pour les classes Order, OrderItem, et Product, et les tester manuellement
  3. Faire un "refactoring" afin de remonter dans une classe BaseServlet le code commun aux quatre servlets
  4. Proposer un enchaînement de pages pour réaliser la fonction d'achat en ligne. (Page d'accueil, choix d'un article, ajout dans le panier, etc...)

lire la suite

mardi 11 avril 2006

MyShop: première version web

Dans cette version, nous créons une première version des servlets et des jsp, en recyclant le code déjà développé pour les tests.

lire la suite

lundi 10 avril 2006

Jeu d'échecs

Implémentation d'un jeu d'échecs en java Le jeu d'échecs se joue sur un échiquier composé de 64 cases, et de 32 pièces représentant deux armées. Au début d'une partie, chaque joueur dispose de 16 pièces :
  • 8 pions
  • 2 tours
  • 2 fous
  • 2 cavaliers
  • 1 roi
  • 1 reine
Le mouvement de chaque pièce est soumis à des régles spécifiques:
  • Un pion avance d'une case vers l'avant
  • La tour de déplace sur les lignes et les colonnes
  • Un fou se déplace sur les diagonales de sa couleur
  • Le cavalier se déplace sur un 'L'
  • La reine combine les déplacements de la tour et du fou
  • Le roi peut atteindre les 8 cases le jouxtant
Le but de cette exercice est d'écrire un programme qui gère le déplacement des pièces. Nous allons procéder par étapes.
  • Analysez le probléme, définissez les classes et les interactions entre classes
  • Pour valider votre étude, écrivez un programme ne gérant qu'une pièce. Par exemple, nous allons prendre la reine, qui se trouvera au début du jeu sur la case (a,5)
  • Généralisez votre programme en prenant en compte des autres pièces
echecs
modele echecs

lire la suite

vendredi 7 avril 2006

MyShop: Mise en place du système de log

Le logging est important dans toutes les applications pour faciliter le débogage lors du développement et conserver une trace de son exécution lors de l'exploitation.

Une API très répandue est celle développée par le projet open source Log4j du groupe Jakarta.

Log4j est paramétré par un fichier de propriétés log4j.properties qui doit être dans le classpath du projet. Cela permet de modifier les niveaux de log sans intervenir sur le code applicatif.

lire la suite

mardi 4 avril 2006

MyShop - Tests unitaires de la couche métier et de la couche d'accès aux données

Validez le code de la couche métier de l'application web MyShop, ainsi que la couche d'accès aux données, en utilisant le framework JUnit.

lire la suite