package cn.lnu.web.filter.example; import java.io.IOException; 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.HttpServletRequestWrapper; import javax.servlet.http.HttpServletResponse; public class HtmlFilter implements Filter { public void destroy() { // TODO Auto-generated method stub } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub HttpServletRequest request=(HttpServletRequest) req; HttpServletResponse response=(HttpServletResponse) resp; //����ǿת�幦��֮���request���� chain.doFilter(new MyRequest(request), response); } //ʵ���Լ���request��ǿת�幦�� class MyRequest extends HttpServletRequestWrapper{ private HttpServletRequest request; public MyRequest(HttpServletRequest request){ super(request); this.request=request; } //�������������ʵ�ִ�name���Ի�õ�ֵ������ת�� @Override public String getParameter(String name) { // TODO Auto-generated method stub String value=request.getParameter(name); if(value==null){ return null; } //������ת��֮�󷵻� value=filter(value); return value; } } //tomcat���������ṩ�˶��ַ���ת��ķ�����·����C:\apache-tomcat-6.0.20\webapps\examples\WEB-INF\classes\UTIL\HTMLFilter.java public String filter(String message) { if (message == null) return (null); char content[] = new char[message.length()]; message.getChars(0, message.length(), content, 0); StringBuffer result = new StringBuffer(content.length + 50); for (int i = 0; i < content.length; i++) { switch (content[i]) { case '<': result.append("<"); break; case '>': result.append(">"); break; case '&': result.append("&"); break; case '"': result.append("""); break; default: result.append(content[i]); } } return (result.toString()); } public void init(FilterConfig filterConfig) throws ServletException { // TODO Auto-generated method stub } }