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.
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>
Et pour la classe HibernateSessionRequestFilter :
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(){
 
	}
}
Veuillez m'expliquer l'utilité de ce filtre SVP.