Vous êtes sur la page 1sur 10

RAPPORTPROJETJ2EE

REALISEPAR: BEAUSOLEILSimon BROWNDavid NOLEAUJulien

GroupeD

1 2 Mars 2 0 0 8

Sommaire 1Prse n t a tio n d u site ........................................................................... 3 1.1InterfaceUtilisateur.............................................................................3 1.2InterfaceAdministrateur......................................................................5 2Ralisatio n..............................................................................................6 2.1Architectureglobale............................................................................6 2.2Schmadebasededonnes................................................................7 2.3APIproposeparlesBeanFaades....................................................7 2.4Autrestechnologiesutilises...............................................................8 3Scurisa tio n d e l'a d mi nis t ra tio n .................................................... 8 4Co nclu sio n ............................................................................................ 9 5An nexe.................................................................................................. 1 0

1 Prsentationdusite
Leprojetquel'onanousaproposconsistecrerunsitedecommercelectronique.Pourceprojet nousavonseuuneentireautonomiesurleschoixeffectusaussibienauniveaudesinterfacesque destechnologiesutilises.Nousavonsdciddecrerunsitedecommercedecrmesdebeautcar deuxpersonnesduprojetavaitdjtravaillsurunsitedummetypemaisnes'taientpas intresssalapartieecommercedecesite.CesiteestdveloppenutilisantJ2EE,jsp,jonas, Ajax,EJB2...cequicorrespondauxcontraintesduprojetquitaitdenousfairedcouvrirces technologiesplusamplementetnousfairerechercherdessolutions.Cesitecontientdeuxparties: unepartieclient(utilisateur)pourpouvoirconsulterlesproduitsetenacheteretunepartieadmin pourgrerlabasededonnescontenantlesproduits,magasinsetcomptes.

1.1 InterfaceUtilisateur
Unutilisateur,lorsqu'ilseconnecteausite,arrivesurunepaged'accueil.

Illustration 1.1: accueil Apartirdecettepage,leclientaaccsplusieursinformations.Danslemenu,surlagauche,ilala possiblitdevoirlesproduitsdesdiffrentsmagasins(unboutonparmagasin),sonpanier(mmesi iln'estpasconnect;Lorsd'unachatildevraseconnecter),unAproposconcernantlepourquoide cesiteetunendroitpourseconnecter.Pourpouvoiracheterdesproduits,l'utilisateurdoittre connect,pourcela,s'ildisposedjd'uncompte,ilajustes'identifieravecsonloginetson password.Sinonildoits'inscriresurlapaged'inscription.

Illustration 1.2: inscription

L'utilisateura5champsremplirpourpouvoirs'inscrire.Sile champestmalrempli(nombrelaplaced'uneadressepar exemple),unepetitecroixs'affichepourl'indiquer.Cettecroix devientuntraitunefoisl'erreurcorrige.Sitousleschampsne sontpasremplis,leboutonvalidern'estpasaccessible.Unefois inscrit,l'utilisateurn'aplusqu'seconnecterenbasdumenu.Il verraalorssonloginetunlienpoursedconnecter.L'utilisateur peutensuiteserendresurunmagasin.

L'utilisateurvoittouslesproduitsdumagasinquisont disponibles.Ilyauneimagereprsentantleproduit,unecourte description,sonprixetsonnom.Ilyagalementunlienpour mettreceproduitdanssonpanier.

Illustration 1.3: prod uits

Illustration 1.4: p a nier Lepanierrcapituletouslesproduitschoisisavecleursprixunitaires,leursquantitsdansle panieretletotal.Ilyagalementleprixtotaldupanieretunlienpouracheterlepanier.Si l'utilisateurn'estpasconnect,ilvasurunepaged'inscription,sinonunepageindiqueque l'achatabienteffectuetonretournesurlapaged'accueil.

1.2 InterfaceAdministrateur
Cetteinterfacen'estaccessiblequepourlesadministrateursdusite.Ellepermetdegrertoutela basededonnesenayantlapossiblitdecrerousupprimerunmagasin,uncompteouunproduit. Danslemenudegaucheonaaccsauxtroispagespourgrerlabasededonnesetseslments. Onremarquequel'onpeutsupprimer unutilisateuroumodifiercertainesdes informationsleconcernant.

Illustration 1.5: gestion utilisateurs Demmequepourlesutilisateurs,onpeutgrerles magasinsenlessupprimantouenlescrant.Dansce derniercas,unepageconfirmantlacrationdumagasinet ducompteassociapparat. Unepaged'erreurapparatencasdecrationd'unmagasin djexistant.

Illustration 1.6: m a g asin

Illustration 1.7: gestion prod uit Lacrationdeproduitsesttrssimple,onindiquejustelenometlemagasin.Onarriveensuite surlapagepourmodifierleproduit(mettreladescription,leprix,lestockdisponibleetl'image quiestredimensionne).Encasdesaisieerronne(parexempleprix<0)unepaged'erreur apparat.

Aprscetteprsentationdesdeuxpartiesdusite,nousallonsmaintenantrentrerdansdesdtails plustechniquesenexpliquantnoschoixetlesoutilsutiliss.

2 Ralisation
Nousnoussommesrpartislestchesdelamaniresuivante:

David:commencerlesjsp Simon:raliserleschmadebasededonnesenUMLpuisfairelesinterfacesdesBean Julien:faireunsquelettequimarche

Unefoislesquelettefait,nousnoussommesrerpartieslestachespourquechacunpuisseexplorer lesdiffrentestechnologiesutilises

David:continuerlesjsp,fairelaservletgrantl'automateprincipale,s'occuperdela scurisationetdesjspdel'administration. Simon:s'occuperdupanier(jsp+servlet) Julien:fairelesBean,lesdescripteursxml,l'API(beanfacade)etfairelaservletpour l'administration.

Pourtravaillerenquipefacilementnousavonsutilisunserveursvnchezgoogle,nousavons raliserunantetunMakefilepourtestertrsfacilement.Ainsiuntestsersume(unefoislefichier monlinstartfait)sourcemonlinstart&makeallpourlapremierefoisetmakeensuite. Gestionduprojet:http://code.google.com/p/jsdcreme/

2.1 Architectureglobale
Nousutilisonsunearchitectureglobaleclassiquemodulairepourpouvoirsepartagerfacilementle travailetremplirrapidementlesiteunefoislesqueletteralis:

Illustration 2.1: architecture globale 6

Degauchedroite:

leclientavecsonnavigateurprfreenvoiedesrequteshttpenchangeantdepageouvia Javascript(ajax) Laservletreoitlarequteetlatraiteenappelantlessessionfaadessincessaireetredirigesur unepagejsppourl'affichage Laservletetjonascommuniquevialeprotocolermietsepartagedesbean(ausensclassique dejava:classesavecgetetset)serializablequireprsentelesBeanLocaldejonaspour rcupreret/ouenvoyerdesinformationsfacilement LessessionfaadeproposeuneAPIetgrelesBeanpersistants.Onutiliselecontainerjonasen modecmpquigretoutseullesappelsjdbc.

2.2 Schmadebasededonnes

Illustration 2.2: base de do n nes

2.3 APIproposeparlesBeanFaades
Lesservletn'accdepasdirectementauxEntityBeanmaispasseparunSessionBeand'interface ShopFacade.java.Cetteinterfacereprsentel'APIcompltedusitepourgrerlapersistancedes donnes(ctutilisateurclassiqueETadmin). Pourassurerundialoguesimpleentrelaservletetlesfaades,nousavonschoisid'utiliserdes classesserializablepourenvoyerdesdonnesdemanirecompacte(Ainsipourcrerunproduiton nepassepaslenom,leprix,lestock,etc..maissimplementuneinstancedeProduct).Leschamps decesclassesserializablesontcompltsenfonctiondubesoin(onneremplitpastousleschamps chaquefoissinonontransporteraittoutlesitechaqueappeldansunsensoudansl'autre!).

L'APIproposeentreautrelacration,lasuppression,lamodificationdetoutesentits.Ellepropose aussidesfinderparexemple:pourtrouverunensembledeproduitsd'unecertaineforme(Product dontcertainschampsdoiventmatcherceuxdelabddparexemple).Pourplusdedtailscfla javadocdeShopFacade.

2.4 Autrestechnologiesutilises

Nousavonsutilisunpeud'ajaxpourenavoiruneexprience.Danslapartieinscription lorsqu'unutilisateurtapeleloginqu'ilsouhaitepours'inscrire,uneicneluiditsileloginest valableounon(suivantqu'ilestdjutilisounon).Laservletgrantlarceptionetl'envoiedu xmlajaxest:ValiderServlet. Lafonctionjavascriptquigrel'envoie,larceptionetlamodificationdel'arbreDOMest:


valider()etmajIHM()

3 Scurisationdel'administration
DfinitionduRealm(permettantdeprotgerl'accsdesressourcesduserveurenleurappliquantdes contraintesdescurit.Leprinciped'unRealmestdegrerunelisted'utilisateurs,avecdesrles): Ceciestplacdanslefichier<jonasbase>/conf/serveur.xmll'intrieurdelabalise<Host> < R e al m clas sNa m e ="org.a pac he.catalina.real m.JDBCReal m" d riverNa m e ="org.hs ql d b.j d bcDriver" co n n ectio nURL ="j dbc:hs ql d b:hs ql: / / l ocalho s t:9001 / d b_jo na s" co n n ectio nNa m e ="jo n a s" co n nectio nPas swor d ="jo na s" u s e rTa ble ="u se r s" u s erNa m eCol ="us er_na m e" u s e rCre dCol ="u se r_pa s swo r d" u s e rRoleTable ="u se r_roles" roleNa m eCol ="role_na m e" d e b ug ="99" / > Ensuite,ilfautdfinirlesutilisateursquiserontautorissaccderauxdonnesprotges.On utiliseleJDBCDatabaseRealmquiutiliseunebasededonnespourstockercesutilisateurs.Cette basecontientdeuxtables:

Illustration 3.1: table m o t de p asse

Illustration 3.2: rles

OnremarquequelesmotsdepassesontchiffrsenMD5pourplusdescurit.

PuisIlfautappliquerlescontraintesdescuritdansledescripteurdedploiementdel'application enprcisant:

lalistedespagesprotges(pournoustoutescellesquicontiennentadmindansleuradresse) leoulesrle(s)desutilisateursayantledroitd'yaccder le type d'authentification (ici FORM pour indiquer que l'on se servira de notre propre formulaire)

Etenfinilfautcoderleformulaired'identification(quiremplacelaboitededialoguepardfaut): leformulairedoitremplircertainesnormes: l'actionseraj_security_check prcenced'unchamptexteavecname=j_usernamepourlelogin prcenced'unchamppasswordavecname=j_passwordpourlemotdepasse Lecodedeladfinitiondescontraintesdescuritetduformulaired'identificationsontenannexe. 4 Conclusion CeProjetnousapermisdetoucherdudoigtunpeutouteslestechnologiesj2eeutilises actuellementsurlemarch.Onapuvoirquecestechnologiesdemandaientdutempsafindemettre enoeuvreunsquelettefonctionnantcorrectementetbeaucoupdepatiencechaquetest (compilation,gnration,crationduwar..).Oncomprendaismentpourquoilaplupartdesgrosses socitsactuellesn'utilisentpascestechnologiescouteusesentemps,enargent(demande d'ingnieurqualifietdeserveurjonas)etutilisentpluttphpavecdesoutilsdegnration automatiquederrire.Cependantj2eesembleplusadaptpourdessitesoplusieursmembres travaillentdessuscarlamodularitestprsenteetclaire.L'uniqueproblmersidedanslapossiblit desoutilstropimportante(onpeutfaireunepagejspquijouelerledetout:presentation, automate,persistance)celaimpliquedelacartdsledpartpoursavoirlerledechaque technologieutilise.

5 Annexe
Dansledescripteurdedploiementdel'appliquation(web.xml)

<securityconstraint> <displayname>Testd'authentificationtomcat</displayname> <!Listedespagesprotges> <webresourcecollection> <webresourcename>Pagescurise</webresourcename> <urlpattern>/admin/*</urlpattern> </webresourcecollection> <!Rlesdesutilisateursayantledroitd'yaccder> <authconstraint> <rolename>Administrateur</rolename> </authconstraint> </securityconstraint> <loginconfig> <!Typed'authentification> <authmethod>FORM</authmethod> <formloginconfig> <formloginpage>/admin/login.jsp</formloginpage> <formerrorpage>/admin/login.jsp</formerrorpage> </formloginconfig> </loginconfig> <!Rlesutilissdansl'application> <securityrole> <description>Administrateur</description> <rolename>Administrateur</rolename> </securityrole>

Formulairelil'identificationcotserveur(lemotdepasseestcodenmd5avantd'treenvoy): <formaction="j_security_check"name="identification"method="post" onsubmit="convertir_md5(this)"> Login:<inputtype="text"name="j_username"> Motdepasse:<inputtype="password"name="j_password"> <inputtype="submit"value="Valider"> </form>

10

Vous aimerez peut-être aussi