0
点赞
收藏
分享

微信扫一扫

(四)request获取http的请求参数:request.getParameterMap(); 和request.getInputStream();


  根据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()(是从body中获取数据)来访问。反之,如果上述条件均满足,相关的表单数据将不能再通过request.getInputStream()来读取。

  1.PathVariable

  顾名思义,获取路径中的参数;如请求为:http://localhost:8080/girl/23/hello/后台相应的代码为:23即为后台获取的参数

  2.?RequestParam

  对于比较大众的请求;如:http://localhost:8080/girl/hello?id=23则后台对应 的后台代码为(对于用不用加上RequestParam,若果想要使用其中比如设置默认值,则加上;无需求,可不加;同时,如果不加RequestParam,前后台参数应当名称一致;若使用RequestParam,可另取形参名,但RequestParam(),括号中的参数需与前台一致

  ?

  3.对象接收

  对于后台接收为多参数(主要拿实体层接),如:http://localhost:8080/girl/hi?age=56&name=张三

  4.RequestBody

  对于前台传参为json数据,可以使用RequestBody,去接收参数(特别适用于ajax 通过json传值? ajax?contentType设置为:

  )

  ?

  -----------1------------

  

(四)request获取http的请求参数:request.getParameterMap(); 和request.getInputStream();_servlet

  

(四)request获取http的请求参数:request.getParameterMap(); 和request.getInputStream();_前端_02

  -----------2------------?

  

(四)request获取http的请求参数:request.getParameterMap(); 和request.getInputStream();_http_03

  ?

  -----------3------------?

  

(四)request获取http的请求参数:request.getParameterMap(); 和request.getInputStream();_前端_04

  

(四)request获取http的请求参数:request.getParameterMap(); 和request.getInputStream();_servlet_05

  

(四)request获取http的请求参数:request.getParameterMap(); 和request.getInputStream();_servlet_06

  ?

  out.write(params.getBytes(gb));中的字符串params为:

  ? ? ?①为key=value&key=value......类型的字符串时 用若request.getParameterMap()正常获取,若用request.getInputStream()获取到的是key=value&key=value.....字符串

  ? ? ?②为json串时 若用request.getParameterMap()获取到的Map key是json串,value值为空;若用request.getInputStream()来获取参数则是直接获取到json字符串

  当httpPost.setEntity(entity);中的entity

  ? ? ?1、为UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, charset)时用request.getParameterMap()来获取参数

  ? ? ?2、为StringEntity entity = new StringEntity(param, ContentType.APPLICATION_JSON.withCharset(env))时

  ? ? ? ? ? ? 2-1若param是json字符串

  ? ? ? ? ? ? ? ? ? ?用request.getParameterMap()获取到的Map key是json串,value值为空;若用request.getInputStream()来获取参数则是直接获取到json字符串

  ? ? ? ? ? ? 2-2若param是key=value&key=value.....类型的字符串(此时传的就不是json串了)

  ? ? ? ? ? ? ? ? ? ?用request.getParameterMap()正常获取,若用request.getInputStream()获取到的是key=value&key=value.....字符串

举报

相关推荐

0 条评论