日期:2014-05-16 浏览次数:20434 次
package byd.core; import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; 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 javax.servlet.http.HttpServletResponse; public class GzipJsFilter implements Filter { @SuppressWarnings("unchecked") Map headers = new HashMap(); public void destroy() { } public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { if (req instanceof HttpServletRequest) doFilter((HttpServletRequest)req, (HttpServletResponse)res, chain); else chain.doFilter(req, res); } @SuppressWarnings("unchecked") public void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding("UTF-8"); for (Iterator it = this.headers.entrySet().iterator(); it.hasNext(); ) { Map.Entry entry = (Map.Entry)it.next(); response.addHeader((String)entry.getKey(), (String)entry.getValue()); } chain.doFilter(request, response); } @SuppressWarnings("unchecked") public void init(FilterConfig config) throws ServletException { String headersStr = config.getInitParameter("headers"); String[] headers = headersStr.split(","); for (int i = 0; i < headers.length; ++i) { String[] temp = headers[i].split("="); this.headers.put(temp[0].trim(), temp[1].trim()); } } } <filter> <filter-name>GzipJsFilter</filter-name> <filter-class>com.byd.core.GzipJsFilter</filter-class> <init-param> <param-name>headers</param-name> <param-value>Content-Encoding=gzip</param-value> </init-param> </filter> <filter-mapping> <filter-name>GzipJsFilter</filter-name> <url-pattern>*.gzjs</url-pattern> </filter-mapping>
?
?