1.properties文件的应用

在<filter>写入配置

    <filter>
        <filter-name>myFilter</filter-name>
        <filter-class>filter.MyFilter</filter-class>
        <init-param>
            <param-name>file</param-name>
            <param-value>/WEB-INF/sensitive.properties</param-value>
        </init-param>
    </filter>

在filter中提出

private Properties pp = new Properties();
        String file = filterConfig.getInitParameter("file");
        String realPath = filterConfig.getServletContext().getRealPath(file);// 获取真实路径
        try {

            pp.load(new FileInputStream(realPath));
for (Object j : pp.keySet()) {
            String key = (String) j;
            // String newKey = new String((oldKey.getBytes("ISO8859-1")),
            // "UTF8");
            output = output.replace(key, pp.getProperty(key));

2.HttpCharacterResponseWrapper extends HttpServletResponseWrapper 

通过继承HttpServletResponseWrapper

在里面定义一个private CharArrayWriter charArrayWriter = new CharArrayWriter();来缓冲数据

重写getWriter()

写个一个getCharArrayWriter()来获得缓冲内容

HttpCharacterResponseWrapper

package filter;

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

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

public class HttpCharacterResponseWrapper extends HttpServletResponseWrapper {
    private CharArrayWriter charArrayWriter = new CharArrayWriter();

    public HttpCharacterResponseWrapper(HttpServletResponse response) {
        super(response);
        // TODO Auto-generated constructor stub
    }

    public PrintWriter getWriter() throws IOException {
        return new PrintWriter(charArrayWriter);
    }

    public CharArrayWriter getCharArrayWriter() {
        return charArrayWriter;
    }
}
View Code

相关文章: