美文网首页
2020-03-05

2020-03-05

作者: Alex_ct | 来源:发表于2020-03-05 15:04 被阅读0次

java从request中获取GET和POST请求参数

URL和参数列表

一 获取请求方式

request.getMethod(); get和post都可用,

二 获取请求类型

request.getContentType(); get和post都可用,示例值:application/json ,multipart/form-data, application/xml等

三 获取所有参数key

request.getParameterNames(); get和post都可用,注:不适用contentType为multipart/form-data

四 获取参数值value

request.getParameter("test"); get和post都可用,注:不适用contentType为multipart/form-data

五 获取取参数请求集合

request.getParameterMap(); get和post都可用,注: 不适用contentType为multipart/form-data

六 获取文本流

request.getInputStream() 适用于如:application/json,xml,multipart/form-data文本流或者大文件形式提交的请求或者xml等形式的报文

七 获取URL

getRequestURL()

八 获取参数列表:

1.getQueryString()

只适用于GET,比如客户端发送http://localhost/testServlet?a=b&c=d&e=f,通过request.getQueryString()得到的是a=b&c=d&e=f.

2.getParameter()

GET和POST都可以使用

但如果是POST请求要根据

表单提交数据的编码方式来确定能否使用.当编码方式是(application/x- www-form-urlencoded)时才能使用.

这种编码方式(application/x-www-form-urlencoded)虽然简单,但对于传输大块的二进制数据显得力不从心.

对于传输大块的二进制数这类数据,浏览器采用了另一种编码方式("multipart/form-data"),这时就需要使用下面的两种方法.

3.getInputStream()

4.getReader()

上面两种方法获取的是Http请求包的包体,因为GET方式请求一般不包含包体.所以上面两种方法一般用于POST请求获取参数.

需要注意的是:

request.getParameter()、 request.getInputStream()、request.getReader()这三种方法是有冲突的,因为流只能被读一次。

比如:

当form表单内容采用 enctype=application/x-www-form-urlencoded编码时,先通过调用request.getParameter()方法得到参数后,

再调用request.getInputStream()或request.getReader()已经得不到流中的内容,

因为在调用 request.getParameter()时系统可能对表单中提交的数据以流的形式读了一次,反之亦然。

当form表单内容采用 enctype=multipart/form-data编码时,即使先调用request.getParameter()也得不到数据,

所以这时调用request.getParameter()方法对 request.getInputStream()或request.getReader()没有冲突,

即使已经调用了 request.getParameter()方法也可以通过调用request.getInputStream()或request.getReader()得到表单中的数据,

而request.getInputStream()和request.getReader()在同一个响应中是不能混合使用的,如果混合使用就会抛异常

相关文章

  • 2020-03-05

    2020-03-05,23:39

  • Python Selenium trouble shooting

    [2020-03-05]TypeError: write() argument must be str, not ...

  • 精读《终身成长》4/20

    Day4/20:2020-03-05 星期四 1 今日学习(*输入*) 阅读【第1章、思维模式(下)】。 书摘:(...

  • 记住 应用

    中原焦点团队 高艳峰 信阳 网络中级九期 坚持分享第701天 2020-03-05 摘抄学习 例外:生...

  • 精读《终身成长》5/20

    2020-03-05 星期四 1 今日学习(*输入*) 阅读【第2章、思维模式解析(上)】。 书摘:(摘自得到AP...

  • 泛读《黑天鹅》4/5

    2020-03-05 星期四 1 今日学习(*输入*) 阅读【第3部分、极端斯坦的灰天鹅】。 书摘:(摘自*得到A...

  • 记疫(九)

    2020-03-05 说说相信这件事。 人都需要支撑自己的力量,尤其身处危险之中。 我们自己其实真的没有办法判断真...

  • 上班 新知/旧爱

    2020-03-05 上班的日子 正所谓也无风雨,也无晴 抽空回顾了这些平时收藏的文章,视频截图。 经济独立,才能...

  • 2020-03-26|见龙在田

    上证指数:2020-03-05的3074 下跌到 2020-3-23的2656,13个交易日 深证成指:2020-...

  • 林子漫笔“微日记”(1006-1010):暖春乐眠“遇惊蛰”

    【2020-03-05】暖春乐眠“遇惊蛰” “叮铃铃……”今天下午,小苗大树的苗大叔突然来电,说是准备从今晚起改版...

网友评论

      本文标题:2020-03-05

      本文链接:https://www.haomeiwen.com/subject/pbqfrhtx.html