我编写的一个过滤器程序,功能是对客户端提交的请求中的某些字符进行转换,具体代码如下:
package michael;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
public final class MyRequestWrapper extends HttpServletRequestWrapper
{
public MyRequestWrapper(HttpServletRequest request)
{
super(request);
}
//重点看这个地方,我的这个类是从HttpServletRequestWrapper继承而来,父类中也有个getParameter().
public java.lang.String getParameter(java.lang.String name)
{
String value=super.getParameter(name);
if(null!=value)
return toHtml(value.trim());
else
return null;
}
private String toHtml(String str)
{
if(str==null)
return null;
StringBuffer sb=new StringBuffer();
int len=str.length();
for(int i=0; i<len; i++)
{
char c=str.charAt(i);
switch(c)
{
case ' ':
sb.append(" ");
break;
case '\n':
sb.append("<br>");
break;
case '\r':
break;
case '\'':
sb.append("'");
break;
case '<':
sb.append("<");
break;
case '>':
sb.append(">");
break;
case '&':
sb.append("&");
break;
case '"':
sb.append(""");
break;
case '\\':
sb.append("\");
break;
default:
sb.append(c);
}
}
return sb.toString();
}
}
重点看上面注释的地方,我不过是覆盖了父类的一个方法,而且该方法在父类中是public的,按道理应该不可能出错的,可是编译的时候就给我报这个错,如下图所示,我用的是jdk1.5,tomcat6.0.16。大家帮忙给我看下,谢谢了!