怎样在filter里面修改request的参数? 用户上传的内容会首先经过过滤器。我想在filter里对所有request.getParameter()获得的值处理一下,过滤掉敏感的字符。这能实现吗?请高手指教。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就事论事java.util.Enumeration getParameterNames() 返回所有parameter的name遍历该Enumeration,通过getParameter()取出所有parameter的vlaue,然后做你的判断或过滤至于能否实现,或者说对性能的影响问题,没有做过,无从而知 好像做不到,在执行filter的时候,参数还没有解析呢 我试过,所有参数都可以取出来。现在问题是怎样修改这个参数。用request.setAttribute好像不行。 你可以在filter中使用一个httpservletrequrestwrapper来包装httpservletrequest,重写getParameter函数,在doFilter((servletrequest)httpservletrequrestwrapper,response);我刚学java,不过我可以告诉你,使用filter来修改request的特别字符是绝对可行的。你继承httpservletrequrestwrapper就可以了。 lazyfish(呆呆虫)的方法应该可行,不过能说得具体一点吗,这块没弄过。 就是你自己建个class,继承httpservletrequrestwrapper,然后重写httpservletrequrestwrapper中的方法,比方说getParameter方法。不好意思,我只能告诉你这个思路,具体的你可以去google.下面我搜索的我你可以参考一下。package trimmer.filter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;public final class MyRequestWrapper extends HttpServletRequestWrapper { public MyRequestWrapper(HttpServletRequest servletRequest) { super(servletRequest); } public String[] getParameterValues(String parameter) { String[] results = super.getParameterValues(parameter); if (results==null) return null; int count = results.length; String[] trimResults = new String[count]; for (int i=0; i<count; i++) { trimResults = results[i].trim(); } return trimResults; }} 正好需要同样功能,搜到文章http://servlets.com/soapbox/filters.html 你可以这样啊,在action里不要读参数,而读属性.那么在这个filter就可以把参数的值取出来,然后把它们过滤,再放到request里,进入到action里就不要读参数了,而是读属性 rcp项目中的仿myeclipse的工具栏 问个小问题 手机彩信开发须知?? 两个不同Frame之间如何通讯啊? 正则表达式? 大家来看看这个程序!(thinking in java second edition) 方法中的局部变量使用final 修饰后,放在堆中,而不是栈中? dom4j解析求助 能给个域名->ip地址的例子吗 那位大哥能助小弟写一个递归遍历所有文件的函数? 刚学JAVA,遇到个问题,,,求各位大大帮帮忙 怎么读入一行整数?
至于能否实现,或者说对性能的影响问题,没有做过,无从而知
用request.setAttribute好像不行。
http://servlets.com/soapbox/filters.html
那么在这个filter就可以把参数的值取出来,然后把它们过滤,再放到request里,进入到action里就不要读参数了,而是读属性