<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 6  文章 - 129  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(14)

    隨筆檔案(6)

    文章分類(467)

    文章檔案(423)

    相冊

    收藏夾(18)

    JAVA

    搜索

    •  

    積分與排名

    • 積分 - 825731
    • 排名 - 49

    最新評論

    閱讀排行榜

    評論排行榜

    實現的功能:   通過Hibernate的工具類得到一個全局唯一的SessionFactory對象
                            通過SessionFactory對象得到Session對象,然后開始一個新的事務
                            通過chain對象的doFilter()方法來完成業務處理
                            提交或者回滾事務.

    HibernateFilter.java

    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 javax.servlet.http.HttpServletRequest;

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.hibernate.SessionFactory;

    import cn.hxex.blog.hibernate.HibernateUtil;

    public class HibernateFilter implements Filter {

        private static Log log = LogFactory.getLog(HibernateFilter.class);

        /**
         * 過濾器的主要方法
         * 用于實現Hibernate事務的開始和提交
         */
        public void doFilter(ServletRequest request,
                             ServletResponse response,
                             FilterChain chain)
                throws IOException, ServletException
        {
         // 得到SessionFactory對象的實例
         SessionFactory sf = HibernateUtil.getSessionFactory();

            try
            {
             // 開始一個新的事務
                log.debug("Starting a database transaction");
                sf.getCurrentSession().beginTransaction();

                log.debug( "Request Path:\t" + ((HttpServletRequest)request).getServletPath() );
                // Call the next filter (continue request processing)
                chain.doFilter(request, response);

                // 提交事務
                log.debug("Committing the database transaction");
                sf.getCurrentSession().getTransaction().commit();

            }
            catch (Throwable ex)
            {
             ex.printStackTrace();
                try
                {
                 // 回滾事務
                    log.debug("Trying to rollback database transaction after exception");
                    sf.getCurrentSession().getTransaction().rollback();
                }
                catch (Throwable rbEx)
                {
                    log.error("Could not rollback transaction after exception!", rbEx);
                }

                // 拋出異常
                throw new ServletException(ex);
            }
        }

        /**
         * Servlet過濾器的初始化方法
         * 可以讀取配置文件中設置的配置參數
         */
        public void init(FilterConfig filterConfig) throws ServletException {}

        /**
         * Servlet的銷毀方法
         * 用于釋放過濾器所申請的資源
         */
        public void destroy() {}

    }



    posted on 2007-08-29 21:29 Ke 閱讀(745) 評論(0)  編輯  收藏 所屬分類: hibernate
    主站蜘蛛池模板: 国产亚洲综合久久| 亚洲男人天堂av| 亚洲精品国产精品| 成人人观看的免费毛片| 亚洲综合激情另类小说区| 131美女爱做免费毛片| 亚洲国产精品一区二区久| 永久免费毛片在线播放| 成人亚洲国产va天堂| 免费看美女让人桶尿口| 亚洲国产区男人本色| 亚洲AV永久无码精品一区二区国产| 美国免费高清一级毛片| 亚洲欧洲自拍拍偷精品 美利坚| 一级毛片一级毛片免费毛片| 亚洲综合国产一区二区三区 | 四虎必出精品亚洲高清| 午夜dj在线观看免费视频| 国产精品亚洲综合| 国产91精品一区二区麻豆亚洲| 香蕉免费看一区二区三区| 亚洲欧洲日产国产综合网| 久久99九九国产免费看小说| 亚洲成aⅴ人片久青草影院按摩| 免费很黄很色裸乳在线观看| a毛片视频免费观看影院| 亚洲国产精品一区| 成年在线网站免费观看无广告| 国产亚洲美女精品久久| 亚洲AV无码一区东京热久久| 日本三级2019在线观看免费| 最新亚洲人成网站在线观看| 国产亚洲福利精品一区| 大地资源二在线观看免费高清| 粉色视频在线观看www免费| 亚洲成亚洲乱码一二三四区软件| 日韩免费一区二区三区在线| 污污免费在线观看| 久久久久亚洲AV成人片| 国产伦精品一区二区三区免费下载 | 国产精品免费αv视频|