Bonjour,
Je suis actuellement sur un projet JSF+Hibernate et j'ai vu sur internet que dans le fichier web.xml on ajoute un filter hibernate mais je comprend pas l'utilité de ce filter.
Et pour la classe HibernateSessionRequestFilter :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <filter> <filter-name>HibernateFilter</filter-name> <filter-class>fr.jsf.web.filter.HibernateSessionRequestFilter</filter-class> </filter> <filter-mapping> <filter-name>HibernateFilter</filter-name> <url-pattern>*.jsf</url-pattern> </filter-mapping>
Veuillez m'expliquer l'utilité de ce filtre SVP.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 package fr.jsf.web.filter; import javax.servlet.*; import fr.jsf.hibernate.HibernateUtil; import org.hibernate.SessionFactory; public class HibernateSessionRequestFilter implements Filter{ private SessionFactory sf; public void init (FilterConfig conf) throws ServletException{ sf=HibernateUtil.getSf(); } public void doFilter(ServletRequest sRq,ServletResponse sRp,FilterChain chain ) throws ServletException{ try{ sf.getCurrentSession().beginTransaction(); chain.doFilter(sRq,sRp); sf.getCurrentSession().getTransaction().commit(); sf.getCurrentSession().close(); }catch (Throwable e){ try{ if(sf.getCurrentSession().getTransaction().isActive()){ sf.getCurrentSession().getTransaction().rollback(); } }catch(Throwable ex){ ex.printStackTrace(); } throw new ServletException(e); } } public void destroy(){ } }
Partager