getParameter() 和 getInputStream() 有冲突的,因为流只能被读一次

解决方案 »

  1.   

    有没有设置form的enctype属性?
    默认的是application/x- www-form-urlencoded,如果你使用了request.getParameter() ,再用request.getInputStream()就获取不到了。流只能获取一次。
      

  2.   

    根据Servlet规范,如果同时满足下列条件,则请求体(Entity)中的表单数据,将被填充到request的parameter集合中(request.getParameter系列方法可以读取相关数据):
    1 这是一个HTTP/HTTPS请求
    2 请求方法是POST(querystring无论是否POST都将被设置到parameter中)
    3 请求的类型(Content-Type头)是application/x-www-form-urlencoded
    4 Servlet调用了getParameter系列方法如果上述条件没有同时满足,则相关的表单数据不会被设置进request的parameter集合中,相关的数据可以通过request.getInputStream()来访问。反之,如果上述条件均满足,相关的表单数据将不能再通过request.getInputStream()来读取。Servlet Specifiaction 3.0:类似的例子,还有response.getOutputStream和getWriter,它们往往也是一对矛盾体
      

  3.   


    我不用getParameter,直接调用getInputStream也是获取不到的