• JSP使用JSON传递数据,注意避免中文乱码


    JSP传递数据时不方便使用Java中的对象类型,一般使用JSON来传递对象。

    在使用JSON时,前端js如下,注意指定dataType:

    var htmlobj=
    $.ajax({
    url:"chat.do",type:"POST",
    data:{sayingContent:$("#textarea").val()},
    dataType:"json",
    success: function(data){$("#said").append(data.content);}
    });

    后台要引入如下jar包。

    然后使用如下方式保存JSON:

    Map map = new HashMap();
    map.put("content", request.getParameter("sayingContent"));
    JSONObject json = JSONObject.fromObject(map);

    后台访问时,代码如下:

    json.getString("content")

    返回数据时,要注意设置数据格式,以保证JSON的数据不会成为乱码:

    response.setContentType("text/html; charset=utf-8"); 
    response.getWriter().print(json);

    最后,区分一下response.getWriter()的write()和print()方法的区别:

    (1 )write():仅支持输出字符类型数据,字符、字符数组、字符串等;
    (2) print():可以将各种类型(包括Object)的数据通过默认编码转换成bytes字节形式,这些字节都通过write(int c)方法被输出。

    一个完整样例如下:

    protected void doPost(HttpServletRequest request,HttpServletResponse response){
            Map map = new HashMap();
            map.put("content", request.getParameter("sayingContent"));
            JSONObject json = JSONObject.fromObject(map);
            try {
                response.setContentType("text/html; charset=utf-8"); 
                response.getWriter().print(json);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

     后台JSON的扩展阅读:

    JSON存取:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html

    JSON乱码:http://www.iteye.com/problems/87358

  • 相关阅读:
    Something broke! (Error 500)——reviewboard
    linux内核--自旋锁的理解
    I.MX6 mkuserimg.sh hacking
    I.MX6 DNS 查看、修改方法
    I.MX6 android mkuserimg.sh
    I.MX6 AW-NB177NF wifi HAL 调试修改
    I.MX6 wpa_supplicant_8 编译问题
    I.MX6 MAC Address hacking
    I.MX6 MAC地址修改
    I.MX6 U-boot imxotp MAC address 写入
  • 原文地址:https://www.cnblogs.com/dhuhank/p/4444835.html
Copyright © 2020-2023  润新知