package com.ycsoft.report.web.commons; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; /** * Servlet过滤器 * 过滤web.xml中定义的Servlet,不被struts2处理 * @author new * */ public class ReportServletFilter implements Filter { private static final String includeServlets="includeServlets"; private String[] servlets; public void init(FilterConfig config) throws ServletException { //web.xml中配置的servlet servlets= config.getInitParameter(includeServlets).split(","); } public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest)req; if(servlets!=null) for(String s:servlets){ String tar=request.getRequestURI(); if(tar.endsWith(s)){ RequestDispatcher rd= request.getRequestDispatcher(s); //System.out.println("\n\nReportServletFilter:"+tar); rd.forward(req, res); return ; } } chain.doFilter(req, res); } public void destroy(){ servlets=null; } }