• Aucun résultat trouvé

TP architecture N-tiers en Java EE ou Java EE, Android : la synthèse. Le serveur GereCompteBancaireServlet

N/A
N/A
Protected

Academic year: 2022

Partager "TP architecture N-tiers en Java EE ou Java EE, Android : la synthèse. Le serveur GereCompteBancaireServlet"

Copied!
5
0
0

Texte intégral

(1)

TP architecture N-tiers en Java EE ou

Java EE, Android : la synthèse

Vous allez, dans ce TP, construire une architecture client serveur, plus précisément une application Android cliente et une servlet serveur. Pour cela, on va d'abord installer la partie serveur : une application web. Puis la tester par un navigateur web. Vous développerez ensuite une application Android cliente. A la fin du TP vous aurez ainsi deux clients (un smartphone Android et un navigateur web) qui pourront gérer le même compte bancaire.

Le serveur GereCompteBancaireServlet

Le programme qui va recevoir les requêtes des clients et y répondre est une servlet.

1°) Récupérer à l'URL

http://cedric.cnam.fr/~farinone/GDAPIA/ADistribuer.zip, le fichier ADistribuer.zip. Ouvrer ce fichier dans votre répertoire de travail. Vous devez désormais

avoir une arborescence comme :

Vous avez donc, dans le répertoire ADistribuer :

le .war de l'application web (contenant l'arborescence du répertoire CopieSiteWeb)

une copie du site web qui sera finalement mise sous tomcat (grâce au .war)

les sources *.java pour votre servlet

un script qui permet de construire cette application web

Certaines ressources données dans ce .zip ne le sont qu'à titre indicatif.

2°) Lancer tomcat sur votre machine. Si vous ne l'avez pas, vous pouvez le récupérer et l'installer à partir de l'URL http://tomcat.apache.org/.

(2)

Déployer le fichier GestionnaireCompteBancaire.war dans tomcat (utiliser Tomcat Manager (cf. cours et TP précédent).

3°) Lisez le code de la servlet GereCompteBancaireServlet (fichier GereCompteBancaireServlet.java) ainsi que le fichier web.xml.

3.1) En déduire l'URL qu'il faut utiliser pour obtenir le solde du compte bancaire.

3.2) De même en lisant le code de la servlet GereCompteBancaireServlet, déduire l'URL pour débiter 52 euro.

3.3) De même en lisant le code de la servlet GereCompteBancaireServlet, déduire l'URL pour créditer 52 euro.

3.4) Vérifier vos réponses aux questions 3.1, 3.2, 3.3 en accédant à ces URLs par un navigateur.

Au premier accès, si vous demandez le solde de votre compte bancaire, vous devriez avoir déjà 300 euro !

4°) Comment est sauvegardé le compte bancaire ? Sous quel format ? Trouver et lisez cette sauvegarde.

Le client Android

5°) Ecrire une application Android qui permettra de manipuler le compte bancaire. On peut avoir un "écran d'accueil" comme :

Vous pouvez utiliser le fichier d'IHM suivant : fichier activity_main.xml

---

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

(3)

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:paddingBottom="@dimen/activity_vertical_margin"

tools:context=".MainActivity"

android:orientation="vertical">

<TextView android:text="@string/hello_world"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

<RadioGroup

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_alignParentLeft="true"

android:layout_alignParentStart="true">

<RadioButton

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Obtenir le solde"

android:id="@+id/radioButton" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textAppearance="?android:attr/textAppearanceMedium"

android:text="ou bien" />

<RadioButton

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Retirer"

android:id="@+id/radioButton2" />

<RadioButton

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Crediter"

android:id="@+id/radioButton3" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textAppearance="?android:attr/textAppearanceMedium"

android:text="la somme de :"

android:id="@+id/textView2" />

<EditText

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:inputType="numberDecimal"

android:ems="10"

android:id="@+id/editText" />

<TextView

android:layout_width="wrap_content"

(4)

android:layout_height="wrap_content"

android:textAppearance="?android:attr/textAppearanceMedium"

android:text="euro"

android:id="@+id/textView4" />

</RadioGroup>

</LinearLayout>

---

6°) Ecrire le code qui permet d'obtenir le solde du compte bancaire, c'est à dire, lorsque l'utilisateur clique sur le bouton "Obtenir le solde", l'application lance un nouvel écran qui affiche le solde. Par exemple avec les émulateurs AVD ou Genymotion, on pourra obtenir :

Remarque

Il faut évidemment utiliser l'URL que vous avez trouvée à la question 3.1. Si, à cette quesstion, vous aviez utilisé localhost, cela a (malheureusement !) fonctionné. Dans le cas du smartphone ou des AVD, lors de l'exécution du programme, que signifie localhost ?

Il faut donc mettre, dans les deux cas navigateur web (question 3.x) et smartphone, l'adresse IP de la machine à atteindre. On obtiendra cette adresse à l'aide des commandes ipconfig (windows) ou ifconfig (Unix).

7°) Ecrire le code qui permet de déduire du solde du compte bancaire, la somme indiquée par l'utilisateur dans l'écran d'accueil, c'est à dire, lorsque l'utilisateur clique sur le bouton "Retirer", l'application Android retire la somme indiquée et lance un nouvel écran. Par exemple avec les

émulateurs, on pourra obtenir :

Vérifier que le compte bancaire a bien été débité avec l'une ou l'autre de vos applications clientes.

8°) Faire de même avec l'opération créditer.

L'architecture client-serveur (client Android, serveur servlet)

(5)

Vous devez désormais pouvoir manipuler votre compte bancaire par un client web ou un téléphone portable sous Android et vérifier les opérations faites par un client à l'aide de l'autre client.

Bonus

9°) Si votre compte bancaire est en fait géré par la servlet de l'ordinateur voisin, modifier vos clients pour qu'ils puissent manipuler ce compte bancaire. Vous aurez besoin du numéro IP de l'ordinateur voisin.

10°) De même, puisque votre servlet gère un compte bancaire, en supposant que celui-ci est celui de votre voisin, demander lui de gérer son compte en se connectant sur votre servlet. Vous devrez, pour cela, lui communiquer le numéro IP de votre machine et il devra modifier le code de son application Android.

Conclusion

Dans les questions 9°) et 10°) on obtient un véritable architecture client-serveur où le client et le serveur sont sur deux machines différentes. On pourrait même envisager une architecture 3-tiers si la sauvegarde de la donnée pérenne était sur une troisième machine (avec une connexion de la servlet sur une base de données déposée sur cette troisième machine par exemple). D'ailleurs certaines de ces parties peuvent être découplées est mise sur des machines distinctes pour constituer une véritable architecture N-tiers :

Références

Documents relatifs

Cr´ eer une m´ ethode lancerThread (dans la classe principale) cr´ eant un Thread bas´ e sur le Runnable ci-dessus, et le d´ emarrant4. Dans une m´ ethode main, cr´ eer un objet de

Dans le cas o` u vous utilisez un navigateur, forcez le rechargement de l’image (F5) car des param` etres de cache peuvent vous emp´ echer de voir les diff´ erences entre 2 ex´

– ´ Ecrivez un code pour construire un Rapace qui h´ erite de Oiseau mais avec en plus la m´ ethode chasser.. Sans extends

Dans cette classe, ajouter une m´ ethode connecte, qui ` a l’aide d’une Socket se connecte au serveur correspondant ` a l’hˆ ote et au port, puis ferme la socket2. Afficher dans

Pour cela, on utilisera deux classes avec des m´ ethodes distantes, la classe Licencie et la classe Base.. D´ efinir une classe Licencie, ayant comme champs priv´ es un

Cela signifie que, pour ouvrir un compte bancaire de base, vous devez fournir des documents attestant votre identité et votre adresse.. Comment puis-je ouvrir un compte bancaire

- Intégration de la nouvelle modélisation de produits dérives (Futures, Options, Warrants, Forwards, Index, Fonds, Baskets, Produits OTC, CLP) dans une application

elle a peut être reçu un courrier de la part d'un tribunal mais à son ancienne adresse et si elle n'a pas fait de changement d'adresse ou si vous n'avez pas voulu donner l'adresse