?? ppmvcfilter.java
字號(hào):
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);
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -