03 HttpServletRequest/Response获取参数

Paste_Image.png
    

你的性趣爱好:

你是同性恋吗?

获取参数的方式(返回字符串):
GET:request.getQueryString();

Paste_Image.png

POST:request.getInputStream();

Paste_Image.png

获取参数通用方法:

request.getParameter(name) : 根据参数名获取参数值(获取一个参数值)
request.getParameterValues(name): 根据参数名获取参数值(获取多个参数值)
request.getParameterNames() 获取所有参数名称
request.getParameterMap(): 获取所有参数

代码示例:

Paste_Image.png

有了通用的方法,还有没有必要单独使用GET POST的方法呢?
很有必要,因为通用的方法只能获取普通的参数,如果传上来的数据是json 或者是上传的文件,那么这些通用方法就获取不到这些内容了

编码的问题:
我们在传递的参数如果有中文,那么浏览器会把相应中文编码为16进度数据然后再传递出去;

Paste_Image.png

这其实用了URLEncoder类的方法来做的编码;

Paste_Image.png

那既然知道了是使用了utf-8编码来做了编码,是不是获取到参数后使用utf-8编码来解码就可以得到相应的中文呢? 来试试吧!!!

Paste_Image.png

可想而知,这中间又做了什么鬼的转换......(原来这里被tomcat容器再用iso-8859-1做了一次编码)

不想再说什么了,心好累,直接上法宝吧;

  1. 如果get提交的参数中有中文,那么
name = new String(name.getBytes("iso8859-1"),"utf-8");//先用iso8859-1编码,再用utf-8解码
  1. 如果post提交的参数中有中文,那么在获取该参数前使用
request.setCharacterEncoding("utf-8");
Paste_Image.png

你可能感兴趣的:(03 HttpServletRequest/Response获取参数)