功能描述:如果提交表单中含有非法文字,则替换成***,否则原样输出!
实现方法:在过滤器中重新包装Request对象。
具体实现:自定义一个类,让其继承HttpServletRequestWrapper类。
具体代码:
public class MyRequest extends HttpServletRequestWrapper{
public HttpServletRequest request;
public MyRequest(HttpServletRequest request) {
super(request);
this.request=request;
}
public String getParameter(String str){
String value=null;
value=request.getParameter(str);
System.out.println("包装的request:"+value);
if(!value.equals("")&&value.equals("***")){
value=value.replace("菜鸟","你好");
}
return value;
}
在过滤器中的实现:
HttpServletRequest req=(HttpServletRequest)request;
req.setCharacterEncoding("UTF-8");
MyRequest requ=new MyRequest(req);
System.out.println("过滤器中的"+requ.getParameter("username"));
chain.doFilter(requ, response);
在Servlet中:
protected void doPost(HttpServletRequest requ, HttpServletResponse response) throws ServletException, IOException {
String name=requ.getParameter("username");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out=response.getWriter();
out.println(name);
}