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; } }