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

📄 ppmvcfilter.java

📁 类似struts2的mvc框架
💻 JAVA
字号:
package pp.mvc;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import pp.mvc.core.ActionDefineManager;
import pp.mvc.core.ActionProcesser;
import pp.mvc.core.ResultProcesser;
import pp.mvc.domain.ActionDefine;
import pp.mvc.domain.Result;
import pxb.ioc.MiniContainer;
import pxb.ioc.impl.DefaultMiniContainer;

public class PpmvcFilter implements Filter {

	private MiniContainer miniContainer;
	private ActionDefineManager actionDefineManager;
	private ActionProcesser actionProcesser;
	private ResultProcesser resultProcesser;

	public void destroy() {
		try {
			this.miniContainer.destroy();
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

	public void init(FilterConfig filterConfig) throws ServletException {

		try {
			ServletContext servletContext = filterConfig.getServletContext();
			String configFile = filterConfig.getInitParameter("configFile");
			miniContainer = new DefaultMiniContainer();
			miniContainer.setConfigFile(configFile);
			miniContainer.addClassMap(ServletContext.class, servletContext);
			miniContainer.init();
			
			this.actionDefineManager = miniContainer
					.inject(ActionDefineManager.class);
			this.actionProcesser = this.miniContainer
					.inject(ActionProcesser.class);
			this.resultProcesser = this.miniContainer
					.inject(ResultProcesser.class);
		} catch (Exception e) {
			throw new ServletException(e);
		}
		miniContainer.clear();
	}

	public void doFilter(ServletRequest req, ServletResponse res,
			FilterChain chain) throws IOException, ServletException {

		HttpServletRequest request = (HttpServletRequest) req;
		HttpServletResponse response = (HttpServletResponse) res;
		ActionDefine actionDefine = this.actionDefineManager
				.getActionDefine(request);
		if (actionDefine != null) {
			Result result = this.actionProcesser.processAction(actionDefine,
					request);
			this.resultProcesser.processResult(result, request, response);

		} else {
			chain.doFilter(request, response);
		}
	}
}

⌨️ 快捷键说明

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