HttpServletRequest的getParameter方法

来源:互联网 发布:linux驱动开发pdf 编辑:程序博客网 时间:2024/05/17 02:22

HttpServletRequest的getParameter方法:

tomcat或者其他的Servlet容器在调用程序员的Servlet之前已经帮我们做了很多事情了,比如解析HttpRequestLine(HTTP请求行)和解析HttpHeader(HTTP请求头)等等,但事实上在Servlet之前,服务器只解析到Header就停了,剩下的请求体留在request.getInputStream的流里,所以,如果你想在Servlet里面获得请求体里的内容,直接去读request.getInputStream()就好了。 但事情可能还没那么简单,我们知道,当我们在前端提交一个表单的时候,假设表单的内容为:name=baolin&password=mima,我们是可以直接在Servlet里调用request.getParameter("name");来获取到name的值的,大家有没有想过,如果form表单用的是POST方法提交,那么毫无疑问参数是在请求体里的,前面说过,如果想获取请求体里的内容,是可以在request流里直接读的,那么问题来了:

  • 因为流是不能往回读的,如果我在之前先用request.getInputStream()读取完了请求体,这时候我再来用request.getParameter("name");获取name的值,得到的是真实值还是个空呢?或者我先调用了request.getParameter();再来request.getInputStream();尝试获取请求体内容,可以得到吗?
  • 第二个问题,如果我在请求行里的URI部分这么写: /testServlet?name=baolin,接着又在请求体里附加name=baobao,然后post提交,这时候在后台Servlet调用request.getParameter("name");获取的是baolin还是baobao呢?
  • 第三个问题,如果我写了两个一样的参数,我应该怎样获取这两个参数呢?

答案:

  1. (该问题的前提是参数在请求体里,并且Content-Type是application/x-www-form-urlencoded)因为流是不能往回读的,所以如果程序员自己通过request获取的InputStream读完了请求体,那么再来调用request.getParameter试图获取参数得到的是null,反之亦然。
  2. request.getParameter()方法的解析顺序为:URI -> 请求体,所以如果在URI获取到了需要的参数,那就不会再去请求体解析了

    【很明显这句是有问题的,Tomcat解析Parameter的逻辑应该是:parameter的name和value是一对多的关系,tomcat会先解析URI里的queryString,然后判断如果是post请求&&content-type=”aplication/x-www-form-urlencoded”不管之前有没有获取到需要的参数都会去解析body,也就是说如果不是post请求而是delete或者其它请求或者content-type不是”aplication/x-www-form-urlencoded”则不会去读取body,这种情况getInputSteam读取body会得到数据】2017-10-24勘误

  3. 可以用request.getParameterValues(“name”)方法来获取所有name

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 7个月的婴儿厌食怎么办 小孩记忆不好读书记不住怎么办 9岁儿童不爱睡觉怎么办 6岁儿童不爱吃饭怎么办 2岁半宝宝不吃饭怎么办 一年级的孩子不爱学习怎么办 小孩不爱写作业怎么办啊 孩子不爱看书怎么办如何教育 2岁宝宝不爱看书怎么办 儿媳妇比儿子年龄大我不喜欢怎么办 不喜欢儿子却生了儿子怎么办 静不下心来看书怎么办 孩子爱玩不爱学怎么办 孩子爱玩不爱学习怎么办 孩子爱玩手机不爱学习怎么办 照四维宝宝太活泼了怎么办 胎宝宝太活泼了怎么办 7个月宝宝太活泼怎么办 我是个初中生不想上学怎么办 3岁宝宝不肯说话怎么办 两周宝宝不爱吃饭怎么办 小孩不喜欢吃水果蔬菜怎么办 孩子对学习不感兴趣怎么办 幼儿园老师不喜欢我孩子怎么办 孩子数学不主动思考问题怎么办 孩子做事慢磨蹭家长应该怎么办 孩子不写作业怎么办啊 对孩子在校被欺怎么办 二年级的孩子不爱学习怎么办 孩子不爱学习怎么办二年级 二年级孩子不爱写作业怎么办 孩子喜欢的朋友家长不喜欢怎么办? 孩子不喜欢上幼儿园家长怎么办 孩子不喜欢家长学佛怎么办呢? 学生家长讨厌老师老师该怎么办 孩子不爱去幼儿园总是哭怎么办 孩子学习一点都不主动怎么办 孩子怕老师不想上学怎么办 幼儿园孩子怕老师不想上学怎么办 孩子在幼儿园怕老师怎么办 幼儿园老师对孩子有歧视怎么办