当前位置: 代码迷 >> Java Web开发 >> form使用了multipart/form-data,但是文件选择里没有选择任何文件,submit后,heap memory还是在增加,该怎么处理
  详细解决方案

form使用了multipart/form-data,但是文件选择里没有选择任何文件,submit后,heap memory还是在增加,该怎么处理

热度:113   发布时间:2016-04-17 13:53:00.0
form使用了multipart/form-data,但是文件选择里没有选择任何文件,submit后,heap memory还是在增加
使用了multipart/form-data,但是文件选择里没有选择任何文件,(form里除了file外还有很多其他控件text   select等)submit后,heap   memory还是在增加。
特别是其他控件越多heap   memory加得越多。

------解决方案--------------------
form请求是multipart/form-da的情况下,请求是以2进制流的方式传输数据,而你配置的filter是为了统一字符集,以UTF-8格式编码进行过滤,当然会消耗很多内存。 建议先去掉EncodeFilter
如果是多文件上传,可以getMultipartRequestHandler().getFileElements()得到file的hashtable列表,if(files == null || files.isEmpty()) mapping.findForward( "failure ");
------解决方案--------------------
EncodeFilter是全局过滤器吧,判断request是multipart/form-data的,就return掉
------解决方案--------------------
失误,过滤器还是要转发一次请求才行


考虑是不是可以转到另一个Servlet(过滤器)?
------解决方案--------------------
> > > 判断request是multipart/form-data的,就return掉
不好不能这么做吧

to : scbb (星际Baby)
你有没有试试,相同的页面,加multipart/form-data和不加的情况下,分别占用了多少内存。不需要很精确,描述一下大概的状况就好
------解决方案--------------------
如果无论加不加,内存占用量都在同样地增加,那就没有办法了
------解决方案--------------------
过滤器最后一定要有chain.dofilter,否则返回就直接返回到页面,不会进入action
------解决方案--------------------
如果是multipart/form-data的时候.好象在提交的时候,如果有别的 <html:text> 之类的东西,提交的时候是有问题的啊.
我做的时候就是这样的.后来改成了弹出个新的画面,然后里面提交.速度很快的.
原来的画面还是普通的,弹出的FROM是multipart/form-data的.
  相关解决方案