日期:2014-05-16 浏览次数:20452 次
package com.htsoft.core.web.filter;  
    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 {  
        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);  
            }  
        }  
        public void doFilter(HttpServletRequest request,  
                HttpServletResponse response, FilterChain chain)  
                throws IOException, ServletException {  
                request.setCharacterEncoding("UTF-8");  
                for(Iterator it = headers.entrySet().iterator();it.hasNext();) {  
                    Map.Entry entry = (Map.Entry)it.next();  
                    response.addHeader((String)entry.getKey(),(String)entry.getValue());  
                }  
                chain.doFilter(request, response);  
        }  
      
        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());  
            }  
        }  
    }  
3.在WEB.xml 文件中,添加以下配置:
 
<filter>    
    <filter-name>GzipJsFilter</filter-name>    
    <filter-class>com.htsoft.core.web.filter.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>  
<servlet-mapping> 
 
4.在index.jsp中引入该压缩文件:
  <script type="text/javascript" src="<%=request.getContextPath()%>/ext3/ext-all.gzjs"></script>