opensessioninview.java

来自「实现留言薄和发表文章的功能」· Java 代码 · 共 51 行

JAVA
51
字号
package com.test.bbs.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 org.hibernate.Session;
import org.hibernate.Transaction;

import com.test.bbs.dao.impl.HibernateTools;

/**
 * 功能: 1、控制事务边界 2、解决Hibernate懒加载
 * 
 * @author liyong
 * 
 */
public class OpenSessionInView implements Filter {

	public void destroy() {
		// TODO Auto-generated method stub

	}

	public void doFilter(ServletRequest arg0, ServletResponse arg1,
			FilterChain arg2) throws IOException, ServletException {
		Session session = null;
		Transaction tx = null;
		try {
			session = HibernateTools.getSessionFactory().getCurrentSession();
			tx = session.beginTransaction();
			arg2.doFilter(arg0, arg1);

			tx.commit();
		} catch (RuntimeException e) {
			tx.rollback();
		}
	}

	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub

	}

}

⌨️ 快捷键说明

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