码迷,mamicode.com
首页 > Web开发 > 详细

去除响应网页内容中的空白

时间:2016-02-16 18:20:58      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

 

当我们打开一个网页之后,查看源代码会发现,很多网页会有空行,如果剔除空行的话,源代码的体积会减少一下。下面是实现方法。

import java.io.IOException;
import java.io.PrintWriter;

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.annotation.WebFilter;
import javax.servlet.http.HttpServletResponse;

import com.wappers.HtmlWapper;


@WebFilter(filterName="htmlFilter",urlPatterns="/index.jsp")
public class HtmlFilter  implements Filter {

    @Override
    public void destroy() {
        
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        System.out.println("------------------------>进入filter......");
         
        //使用自定义的响应包装器来包装原始的ServletResponse
        HtmlWapper wapper=new HtmlWapper((HttpServletResponse) response);
        chain.doFilter(request, wapper);
        String s=wapper.getResult();
        s=s.replaceAll("(?<=\\>)(?:\\s*\r?\n?)(?=\\<)","");
         PrintWriter out=response.getWriter();
        out.write(s);
        out.flush();
    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {
        
    }
    
    
}

 

import java.io.CharArrayWriter;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;


public class HtmlWapper extends HttpServletResponseWrapper{

    private PrintWriter printWriter;
    
    private CharArrayWriter charWriter;
    
//    private CompressedStream compressedOut;
    
    public HtmlWapper(HttpServletResponse response) {
        super(response);
        // TODO Auto-generated constructor stub
        charWriter=new CharArrayWriter();
        printWriter=new PrintWriter(charWriter);
        
    }

    public String getResult(){
        return charWriter.toString();
        
        
    }
    
    
    @Override
    public PrintWriter getWriter(){
        return printWriter;
    }
    
}

效果对比,下面分别是压缩前,压缩后的情况:

技术分享

技术分享

 

去除响应网页内容中的空白

标签:

原文地址:http://www.cnblogs.com/demingblog/p/5193244.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!