获取GET/POST提交的数据,并处理中文问题

时间:2022-12-26 15:49:44

1、获取input标签中的值,用request.getParameter("User")(User为input的name值)

2、 获取checkbox的值,由于是多选的,所以不能通过getParameter,因为getParameter只能获取一个,通过string[] str[ request.getParameterValues("love")获取数组,然后通过Arrays.toString(str)就获取到了checkbox选择的value是值;

3、关于提交的中文内容的处理

在Get方式提交的内容中含有中文时:(只能一个数据进行处理)

 String say=request.getParameter("say");//获取值say=%E4%E8
String str=new String(say.getBytes("ISO-8859-1"),"UTF-8");//转码,http 传输使用的是ISO-8859-1编码,我们要转成UTF-8编码
System.out.println(str);

在post方式提交的内容中含有中文时:

直接在获取之前设置编码(设置所有的编码,一劳永逸【推荐】)

request.setCharacterEncoding("UTF-8");

Demo

 System.out.println("Get");
System.out.println(request.getParameter("User"));
System.out.println(request.getParameter("Pwd"));
System.out.println(request.getParameter("sex"));
System.out.println(Arrays.toString(request.getParameterValues("love"))); String say=request.getParameter("say");
String str=new String(say.getBytes("ISO-8859-1"),"UTF-8");
System.out.println(str);
 System.out.println("post");

         request.setCharacterEncoding("UTF-8");

         System.out.println(request.getParameter("User"));
System.out.println(request.getParameter("Pwd"));
System.out.println(request.getParameter("sex"));
System.out.println(Arrays.toString(request.getParameterValues("love")));
System.out.println(request.getParameter("say"));
 <form action="getDataServlet" method="get">
用户名:<input type="text" name="User"/>
<br/>
密码:<input type="password" name="Pwd"/>
<br/>
性别:<input type="radio" name="sex" checked="checked" value="01"/>男
<input type="radio" name="sex" value="02"/>女<br/>
爱好:<input type="checkbox" name="love" value="o1"/>看书
<input type="checkbox" name="love" value="o2"/>游泳
<input type="checkbox" name="love" value="o3"/>打游戏
<input type="checkbox" name="love" value="o4"/>编程
<input type="checkbox" name="love" value="o5"/>看电影
<br/>
自我评价:<textarea rows="5" cols="30" name="say"></textarea>
<br/>
<input type="submit" value="提交"/>
</form>