sessioninterceptor.java

来自「hibernate 开源框架的代码 jar包希望大家能喜欢」· Java 代码 · 共 63 行

JAVA
63
字号
package org.hibernate.tutorial.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.slf4j.Logger;import org.slf4j.LoggerFactory;import org.hibernate.classic.Session;import org.hibernate.context.ManagedSessionContext;import org.hibernate.tutorial.util.HibernateUtil;/** * Illustrates a servlet filter used to apply a Hibernate session * to the "context" of the web request. * * @author Steve Ebersole */public class SessionInterceptor implements Filter {	private static final Logger log = LoggerFactory.getLogger( SessionInterceptor.class );	public void doFilter(			ServletRequest request,			ServletResponse response,			FilterChain chain) throws IOException, ServletException {		log.trace( "===> opening session for request [" + request.hashCode() + "]" );		// Start the session to be used for this request		Session session = HibernateUtil.getSessionFactory().openSession();		try {			// make the session available to the session factory's "current context"			ManagedSessionContext.bind( session );			// pass control along to the rest of the processing chain			chain.doFilter( request, response );		}		finally {			log.trace( "===> cleaning-up session for request [" + request.hashCode() + "]" );			// remove session from "current context"			ManagedSessionContext.unbind( HibernateUtil.getSessionFactory() );			try {				session.close();			}			catch( Throwable t ) {				log.warn( "was unable to properly close session for request [" + request.hashCode() + "]" );			}		}	}	public void init(FilterConfig filterConfig) throws ServletException {	}	public void destroy() {	}}

⌨️ 快捷键说明

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