persistencefilter.java

来自「OBPM是一个开源」· Java 代码 · 共 66 行

JAVA
66
字号
package cn.myapps.base.web.filter;

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 cn.myapps.base.dao.PersistenceUtils;
import cn.myapps.core.macro.runner.JavaScriptRunner;

public class PersistenceFilter implements Filter {
	private static Log logger = LogFactory.getLog(PersistenceFilter.class);

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {

		HttpServletRequest hreq = (HttpServletRequest) request;

		String uri = hreq.getRequestURI();

		if (uri.indexOf(".action") < 0 && uri.indexOf(".jsp") < 0
				&& uri.indexOf("/dwr/") < 0) {
			chain.doFilter(request, response);
			return;
		}

		// SessionSignal signal = PersistenceUtils.getSessionSignal();
		// signal.sessionSignal++;
		// logger.debug("before intercept$sessionSignal->" +
		// signal.sessionSignal);
		try {
			chain.doFilter(request, response);
		} catch (Exception e) {
		} finally {
			// signal.sessionSignal--;
			// logger.debug("after intercept$sessionSignal->"
			// + signal.sessionSignal);
			// if (signal.sessionSignal <= 0) {
			try {
				PersistenceUtils.closeSession();
				JavaScriptRunner.clear();
			} catch (Exception e) {
			}
			// }
		}
	}

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

	}

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

	}
}

⌨️ 快捷键说明

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