Tutoriel hibernate N°10 : gestion session Hibernate dans application j2ee

////Tutoriel hibernate N°10 : gestion session Hibernate dans application j2ee

Maîtrisez la manipulation d’une session hibernate dans une application J2ee. Comprenez les avantages et inconvénients de 2 techniques classiques : la Servlet d’initialisation et le filtre HTTP. Limitez enfin l’utilisation couteuse de la session hibernate en utilisant une session locale au thread (threadLocal)’. Découvrez la notion de ‘conversations longues’ ou encore de ‘transactions d’applications’. Comprenez la notion d’objet détaché et sa valeur ajoutée dans les ‘conversations longues’

Objis, spécialiste de la formation Java, est heureux de vous offrir ce
tutoriel, extrait de séances pratiques de la formation HIBERNATE dispensée par Objis.

Les + objis

 70% de travaux pratiques

 Clé USB avec tous les outils utilisés + Corrigés TPs

 Bilan pédagogique individuel + conseils

Prérequis, outils et versions

 Tutoriel Hibernate N°2 : votre première application hibernate

Liens utiles

 + de 100 tutoriaux java/jee Objis

 Tutoriaux HIBERNATE Objis

 Objis, spécialiste formation java depuis 2005

 Site hibernate (javadoc, faq)

 Documentation (chap. 10) : working with objects

Objectifs

 Comprendre les problématiques associées à hibernate en environnement web

 Mettre en œuvre Designs patterns avec Hibernate : MVC , DAO, Business Delegate

 Créer une couche DAO hibernate

Programme

 Contexte

 Partie 1 : Comprendre le design pattern MVC

 Partie 2 : Technique N°1 de manipulation de session hibernate : Servlet d’initialisation

 Partie 3 : Technique N°2 de manipulation de session hibernate : filtre http

 Partie 4 : Technique N°3 de manipulation de session hibernate : couche service et délégation

Durée

30 min.

Contexte

Vous allez apprendre à mettre en œuvre une des techniques possibles pour gérer les problématiques suivantes :

— PROBLEMATIQUE 1 : récupérer la Session hibernate à partir de la SessionFactory

— PROBLEMATIQUE 2 : fermer la Session hibernate une fois le travail métier terminé
CAS D’UTILISATION :


> Application simple (moins de 10 objets métiers)


> Choix accès direct à la session par le controleur

— ARCHITECTURE : Pas de couche service. Pas design pattern business delegate)
–INCONVENIENT : vous devez fermer la session hibernate ‘à la main’.

Partie 1 : comprendre MVC

tutoriel-hibernate-3-architecture-application-web-0

Partie 2 : technique 1 (servlet d’initialisation)

Au déploiement de l’application, charger une Servlet qui va rendre la SessionFactory disponible dans le contexte de Servlet.

Projet eclipse

 

tutoriel-gestion-session-hibernate-environnement-jee-3

 

Servlet d’initialisation : codage méthode init()

tutoriel-gestion-session-hibernate-environnement-jee-5

 

Servlet d’initialisation : configuration web.xml

tutoriel-gestion-session-hibernate-environnement-jee-4

 

Controleur : obtenir une session

tutoriel-gestion-session-hibernate-environnement-jee-6

 

Controleur : fermer session

tutoriel-gestion-session-hibernate-environnement-jee-7

 

test: lancer votre application sur un serveur tomcat puis accéder à l’adresse suivante:

http://localhost:8080/demoSessionHibernateWeb1/index.html

puis à cette adresse:

http://localhost:8080/demoSessionHibernateWeb1/test

tutoriel-gestion-session-hibernate-environnement-jee-5bis

 

tutoriel-gestion-session-hibernate-environnement-jee-5ter

 

Corrigé

Hib-TP-10-session

Partie 2 : technique 2 (filtre http)

tutoriel-gestion-session-hibernate-environnement-jee-8

 

tutoriel-gestion-session-hibernate-environnement-jee-9

 

tutoriel-gestion-session-hibernate-environnement-jee-10

test: lancer votre application sur un serveur tomcat puis accéder à l’adresse suivante:

http://localhost:8080/demoSessionHibernateWeb1/index.html

puis à cette adresse:

http://localhost:8080/demoSessionHibernateWeb1/controleur

tutoriel-gestion-session-hibernate-environnement-jee-11

 

tutoriel-gestion-session-hibernate-environnement-jee-10bis

 

Corrigé

Hib-TP-10-session-Correction

Partie 3 : technique 3 (Session locale au thread)

Dans les 2 techniques précédentes (Servlet d’initialisation et filtre http), la couche service est encapsulée dans la couche présentation.

Comment passer la Session à la couche Dao ? Comment utiliser cette même session dans une méthode de la couche Dao ?

Dans ce type de contexte (typique de l’utilisation d’un framework de vue type Struts, webwork), le pattern à préférer est le pattern ThreadLocal : la classe java.lang.ThreadLocal créée une session accessible dans le thread applicatif courant.

Cela est particulièrement utile en environnement multithread, comme applications web.

tutoriel-hibernate-3-architecture-application-web-2

Cette fonctionnalité est activé par la ligne suivante dans le fichier hibernate.cfg.xml:

<property name= »current_session_context_class »>thread</property>

Les couches Service et DAO sont vues en détail dans les TP 11 et 12.

Conclusion

Dans ce tutoriel, vous avez mis en oeuvre plusieurs techniques de gestion de la Session hibernate en environnement j2ee : la servlet d’initialisation et le filtre. Rendez-vous au TP 11 Pour la Session locale au thread (ThreadLocal).

2018-01-27T16:46:37+01:00

Contactez nous

241 rue DUGUESCLIN, 69003 Lyon

Web : Objis : spécialiste formation Java