⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 90b0dbdf4232001d139f992bfca89756

📁 客户关系管理系统主要管理新老客户的一些信息并可以发现潜在客户
💻
字号:
package com.qrsx.qrsxcrm.web;

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

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.exception.ConstraintViolationException;
import org.hibernate.exception.GenericJDBCException;

import com.qrsx.qrsxcrm.dao.HibernateUtil;



/**
 * 用于进行Hibernate事务处理的Servlet过滤器
 * 
 * @author galaxy
 */
@SuppressWarnings("serial")
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 {
        
        try {
            // 开始一个新的事务
            log.debug("Starting a database transaction");
            
            //HibernateUtil.getSession().beginTransaction();
            HibernateUtil.getSession().beginTransaction();
            	  chain.doFilter(request, response);
            

          

            // 提交事务
            HibernateUtil.getSession().getTransaction().commit();
            	  //tx.commit();

        }catch( ConstraintViolationException e )
        {
//        	String js = "<Script>alert('对不起,该数据已经被使用,请确认后再删除!');location.href='/index.jsp';</Script>";
//			response.getWriter().print(js);
			
        	HttpSession session = ((HttpServletRequest) request).getSession();
//        	HttpSession session = (HttpSession) HibernateUtil.getSession();
        	session.setAttribute("wrong","错误信息");
        	
        	System.out.print("++++++++++++++++++++++");
        	return;
        }
        catch(GenericJDBCException e )
        {
        	System.out.print("HibernateFilter 发生异常现象!");
        }
        catch (Throwable ex) {
            ex.printStackTrace();
            try {
                HibernateUtil.getSession().getTransaction().rollback();
            	//tx.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() {
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -