一个关于过滤器棘手的问题 帮帮忙吧!
项目使用的是 Structs2 开发的 现在需要写一个 Filter 来过滤一下 客户端提交的数据 现在 正常表单的数据 可以使用request.getParameterMap()过滤 但是 表单为enctype="multipart/form-data" 的request.getParameterMap()不能使用 求解怎样能都通用!!!!! --------------------编程问答-------------------- 发代码吧。听你描述真的不是很明白的。 --------------------编程问答-------------------- from1表单 为
<form action="shopinfoupdate.do" name="myform" method="post" enctype="multipart/form-data" >
<input name="aa" value="">
</form>
from2表单 为
<form action="shopinfoupdate.do" name="myform" method="post" >
<input name="aa" value="">
</form>
Filter 为
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(charEncoding);
response.setCharacterEncoding(charEncoding);
HttpServletRequest req = (HttpServletRequest)request;
String paramstr = "";
Map params = req.getParameterMap();
System.out.println(params.size());//在此处 如果是form1 则 输出为0 如果是form2 则 会输出1 求解无论是form1还是form2都输出1 chain.doFilter(request, response);
} --------------------编程问答-------------------- 能说下目的吗
这个加密类型貌似是上传文件用的,input里带上了文件了? --------------------编程问答--------------------
目的就是 我想在项目中添加 敏感词过滤 想在过滤器中直接过滤一下 --------------------编程问答-------------------- 你在地址带个参数试试,如shopinfoupdate.do?type=1,使用request.getParameter看能拿到不 --------------------编程问答--------------------
不是,为什么要用这种加密类型,如果不带文件传输的话。而且即使带文件传输的话,可能也不需要判断size(不知道是不是出于这个原因size才不可得) --------------------编程问答--------------------
这种是可以的
--------------------编程问答--------------------
原因是因为 form表单中设置了上传类型 即enctype="multipart/form-data"
--------------------编程问答-------------------- enctype="multipart/form-data" 与 struct2 的问题 Filter 中得不到参数 --------------------编程问答-------------------- 我现在也在纠结这问题,用ServletFileUpload可以获取到,但这文件流取了一次就没有了,在action中就不能再次获取到了。也只能在action中过滤了。你想到其他解决方法了给我个思路吧。
补充:Java , Web 开发