📄 connhibernatefilter.java
字号:
package com.elan.forum.filter;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
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.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.elan.db.ElHbnDB;
public class ConnHibernateFilter implements Filter {
private static final Log log = LogFactory.getLog(ConnHibernateFilter.class);
protected FilterConfig filterConfig = null;
public void destroy() {
this.filterConfig = null;
}
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain chain) throws IOException, ServletException {
log.debug("HibernateSessionFilter start");
//Date date = new Date();
//DateFormat df = new SimpleDateFormat("yyyy-MM-dd '时间--'HH:mm:ss");
//System.out.println("----当前时间:" + df.format(date) + "----");
System.out.println("HibernateFilter+++++++++++++++++++++++");
Session session = ElHbnDB.getSession();
log.info("HibernateSessionFilter begin transaction");
System.out.println("filter begin transaction");
Transaction tx = session.beginTransaction(); // 开始事务
log.debug("HibernateSessionFilter begin doChain");
try {
chain.doFilter(arg0, arg1);//包裹了捕获逻辑的异常
//log.debug("HibernateSessionFilter begin commit");
System.out.println("HibernateFilter++++++++++++++++++++++++");
try {
tx.commit();
} catch (Exception e) {
try {
tx.rollback();
} catch (RuntimeException ex) {
log.error(ex);
}
}
} finally {
System.out.println("Filter begin close session");
ElHbnDB.closeSession();
}
}
public void init(FilterConfig arg0) throws ServletException {
this.filterConfig = arg0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -