过滤的是未知参数,代码如下:public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { try {
byte[] byteContent = new byte[4096];
int nContentLen = 0;
while ((nContentLen = request.getInputStream().read(byteContent)) > 0) {
for (int i = 0; i < nContentLen; i++) {
System.out.print(Integer.toHexString(byteContent[i]) + ",");
}
}
} catch (Exception e) {
} chain.doFilter(request, response);
}
request.getParameterNames()也是同样出现过滤后失效。
request.getInputStream().reset() 不起作用有碰到此类问题的么
byte[] byteContent = new byte[4096];
int nContentLen = 0;
while ((nContentLen = request.getInputStream().read(byteContent)) > 0) {
for (int i = 0; i < nContentLen; i++) {
System.out.print(Integer.toHexString(byteContent[i]) + ",");
}
}
} catch (Exception e) {
} chain.doFilter(request, response);
}
request.getParameterNames()也是同样出现过滤后失效。
request.getInputStream().reset() 不起作用有碰到此类问题的么
解决方案 »
- 关于SmartUpload上传组件,读取上传文件读到的是-1问题
- 简单的循环问题,困了我一整天了,在线等
- HTTP StatusHTTP Status 404 - No result defined for action and result input
- java socket长连接报错: Software caused connection abort: socket write error
- 如何把xml字符串转成带转义字符串,请赐教
- 我的网站出炉了,哪位兄弟愿与我交换链接啊。
- 大家开发JSP时都用什么工具来设置界面?
- jsp 图片按钮如何连接到action
- 如何给参数附值(一个方法,返回两个值)?
- jsp 语法,有分,在线等待,if语句为什么不能执行
- 求助:关于html解析和wml解析的问题
- 怎么在服务端获取客户端的mac地址?
把这个放在while外边,赋值,然后在放到while里面。
for (int i = 0; i < nContentLen; i++) {
System.out.print(Integer.toHexString(byteContent[i]) + ",");
}
}
我试过其他方法,代码如下:
方法一:
try {
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(), encode));
String queryString = "", str = "";
while ((str = br.readLine()) != null) {
queryString += (str);
}
} catch (Exception e) {
e.printStackTrace();
}方法二:
for (Enumeration eh = request.getParameterNames(); eh.hasMoreElements();) {
String parName = (String) eh.nextElement();
String parValue = request.getParameter(parName);
}方法一,方法二,和按字节读取效果都是一样,request.getInputStream()过滤后失效
你的 catch (Exception e) {
}
里什么都没做。
在getParameter的实现中想当于这样:if(inputStream还没有处理){
readInputStream;
把read到的数据放到map中;
把标记设为已经处理;
从map返回你要的那个key的值
}
else{
直接从map取你要的那个值
}现在你自己先自理InputStream了,
那行进入if(inputStream还没有处理){
readInputStream;
把read到的数据放到map中;
把标记设为已经处理;
从map返回你要的那个key的值
}这段但read不到数据了,所以map中为空,你getParrameter当然为空。
简单说把数据再塞进去。
有没有类似reset的操作.实现对流透明过滤