Hibernate过滤器

xiaoxiao2026-08-26  4

import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;/*** 全局Filter 用于自动进行Session和事务的处理* * @author Administrator* */public class HibernateFilter implements Filter {// 初始化日志对象private static Log log = LogFactory.getLog(HibernateFilter.class);public void init(FilterConfig config) throws ServletException { log.info("servlet filter init.now opening/closing a Session for each request.");}public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { try { //开始一个新的事务,(在这个方法中会默认创建一个新的Session) HibernateUtil.beginTransaction(); //进行事务处理 chain.doFilter(request, response); //提交事务 HibernateUtil.commitTransaction(); } catch (ServletException se) { log.debug("Rolling back the database transaction."); //回滚事务,并关闭Session HibernateUtil.rollbackTransaction(); throw se; }catch (IOException e) { log.debug("Rolling back the database transaction.");// 回滚事务,并关闭Session HibernateUtil.rollbackTransaction(); throw e; }finally{ //关闭Session HibernateUtil.closeSession(); }}public void destroy() {}}
转载请注明原文地址: https://www.6miu.com/read-5051896.html

最新回复(0)