POST和GET方法的乱码问题

POST和GET方法的乱码问题

问什么把method从get变为post就会出现乱码呢,请老师帮忙

resp.setContenttype("text/html;charset=utf-8");都设置过了

http://img1.sycdn.imooc.com//climg/5c17351a00013b1008110288.jpg

http://img1.sycdn.imooc.com//climg/5c17349a000199a003730257.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,问一下同学resp.setContexttype("text/html;charset=utf-8")这句代码的位置,建议同学将这句代码放在获取值的前面再试试。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快!

  • kiglig 提问者 #1
    已经放在最前面啦,代码给您看下 public class Hello extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=utf-8"); //设置字符集 String name = req.getParameter("name"); //获取名字 String mobile = req.getParameter("mobile"); //获取手机号 String sex = req.getParameter("sex"); //获取性别 String[] specs = req.getParameterValues("spec"); //获取兴趣爱好 String html = "<p style='color:red'>Hello, " + name + "</p>"; PrintWriter out = resp.getWriter(); out.println(html); out.println("<p>mobile: " + mobile + "</p>"); out.println("<p>sex: " + sex + "</p>"); for(String s : specs) out.println("<p>spec: " + s); // out.println("<p>fff</p>"); } }
    2018-12-17 16:24:49
  • kiglig 提问者 #2
    代码我在回答区重新贴了,您看下,这个没回复好
    2018-12-17 16:35:29
提问者 kiglig 2018-12-17 16:34:06

回复代码没贴好,下面是java代码,字符集设置在第一行了,浏览器显示就是提问的结果,不显示中文

public class Hello extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8"); //设置字符集
        String name = req.getParameter("name"); //获取名字
        String mobile = req.getParameter("mobile"); //获取手机号
        String sex = req.getParameter("sex");   //获取性别
        String[] specs = req.getParameterValues("spec");    //获取兴趣爱好
        String html = "<p style='color:red'>Hello, " + name + "</p>";
        PrintWriter out = resp.getWriter();
        out.println(html);
        out.println("<p>mobile: " + mobile + "</p>");
        out.println("<p>sex: " + sex + "</p>");
        for(String s : specs)
            out.println("<p>spec: " + s);
//        out.println("<p>fff</p>");
    }
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学员信息登记表</title>
</head>
<body>
   <h1>学员信息登记表</h1>
   <form action="/Servlet2/hi" method="post">
      姓名:<input name="name"/>
      <br/>
      电话:<input name="mobile"/>
      <br/>
      性别:
      <select name="sex" style="width:100px;padding:5px;">
         <option value="male" >男</option>
         <option value="female">女</option>
      </select>
      <br/>
      特长:
      <input type="checkbox" name="spec" value="English"/>英语
      <input type="checkbox" name="spec" value="Program"/>编程
      <input type="checkbox" name="spec" value="Speech"/>演讲
      <input type="checkbox" name="spec" value="Swimming"/>游泳
      <br/>
      <input type="submit" value="提交">
      <br/>
   </form>
</body>
</html>
<servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>Hello</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hi</url-pattern>
</servlet-mapping>


  • 同学你好,试了一下同学的代码,在Hello.java中将获取到的值使用System.out.println()输出了一下,发现在获取中时已经是乱码了,所以这里应该设置一下获取值的编码方式,如:req.setCharacterEncoding("utf-8");将获取到的值用utf-8的编码方式表示。这样就不会乱码了。 如果我的回答解决了你的疑惑,请采纳。祝:学习愉快!
    2018-12-17 17:38:48
  • 提问者 kiglig #2
    啊 好了 谢谢!
    2018-12-17 20:10:02
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10204    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师