通用request.getParameter("age")
get请求和post请求 都可以通过request.getParameter("age")方法获取;
get请求request.getQueryString()
get请求可以通过request.getQueryString()获取url后面的字符串。
示例:http://localhost/demo/RequestServlet?name=liujie&age=23
可以获取到name=liujie&age=23这段字符串。
http://localhost/demo/RequestServlet?abc请求也会成功,并可以获取到abc这段字符串。
当参数存在中文时默认会被URLEncoder.encode(s)处理。
示例:http://localhost/demo/RequestServlet?name=哈哈&age=23通过
request.getQueryString()获取到的内容为name=%E5%88%98%E6%9D%B0&age=23。
后台通过URLDecoder.decode("name=%E5%88%98%E6%9D%B0&age=23")解码即可
如果请求路径后面存在特殊字符 如"",请求会报错,需要事先进行URLEncoder.encode(s)处理。
整体示例:
http://xxx.xxx.xxx.xxx:xxx/xxx?{"guid":"0470a876d82a11e681fd52540058cbe3","payresult":"S8 0305","msg":"\u77ed\u4fe1\u672a\u5230\u8fbe!" ,"cid":"623016062225","chid":"40399000","consumecode":"006124307008","channelID":"40020425305"}
需要对json字符串进行URLEncoder.encode(s)处理。
post请求IOUtils.toString(request.getInputStream())
post方式可以通过IOUtils.toString(request.getInputStream());获取请求体的内容来获得请求数据。
注:
request.getParameter(),request.getInputStream(),request.getReader()只有使用的第一种方法能取到数据。
request.getInputStream(),request.getReader()只能使用一次,再次使用取值为空。