servlet规范:同时满足下列条件,则请求体中的数据将被填充到Parameter集合中
1:是一个http/https请求
2:请求方法是post
3:请求类型(content-Type)是application/x-www-form-urlencoded
4: Servlet调用了getParameter系列方法
如果上述条件没有同时满足,则相关的表单数据不会被设置进request的parameter集合中,
相关的数据可以通过request.getInputStream()来访问。反之,如果上述条件均满足,
相关的表单数据将不能再通过request.getInputStream()来读取。
根据这个规范的说明,当我们在调用request.getParameter(参数名称)的方法时,
通过httpClient中的httpPost.setEntry()提交的数据(请求体)被填充到了parameter集合中了,
所以后面的通过request.getInputStream获取数据流时就为空。
最终这个问题的解决方案是把request.getParameter(参数名称);
放到request.getInputStream之后,这样就回避了servlet的规范,可以正常获取想要的参数值了。
从request获取请求参数
最新推荐文章于 2024-06-28 21:55:38 发布