白日梦想jun 2017-05-03 14:48 采纳率: 100%
浏览 1003
已结题

JQ的Ajax向Servlet发送josn数据和回传的数据问题

问题:
1、sevlet中获取不到正确的参数值
2、sevlet回传的json值也获取不到
html中:

 <input type="submit" id="login" value="登录" onclick="checkLogin();return false;">

js中:

    $.ajax({
        type : "post",
        dataType : 'application/json',
        url : "./servlet/login.action",
        data : JSON.stringify(GetJsonData()),
        success : function(data) {
            var dataObj = data.person, 
            con = "";
            $.each(dataObj, function(index, item) {
                console.log(item.name);                                //1、这里没有结果
            });
        }

    });
}
function GetJsonData() {
    var perjson = {
        "name" : $("#name").val(),
        "psw" : $("#psw").val()
    };
    return perjson;
}

另外我在network中查看数据:{"name":"sa","psw":"sa"}: 这里后面有一个冒号,不知道是不是原因,也不知道从哪里来的

User类:
package com.junzhang.myblog.entity;

public class User {
private int id;
private String name;
private String psw;

public User(){

}
public User(int id, String name, String psw) {
    this.id = id;
    this.name = name;
    this.psw = psw;
}
public User(String name, String psw) {
    this.name = name;
    this.psw = psw;
}
public int getId() {
    return id;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getPsw() {
    return psw;
}
public void setPsw(String psw) {
    this.psw = psw;
}

@Override
public String toString() {
    // TODO Auto-generated method stub
    return super.toString();
}

}

servlet中:

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        response.setContentType("application/json");
        PrintWriter out = response.getWriter();
        System.out.println("enter");
        String name = request.getParameter("name");
        String psw = request.getParameter("psw");
        System.out.println("name:" + name);   //2、null,这里获取不到
        System.out.println("psw:" + psw);       //null,这里获取不到

        // JSON对象
        response.setContentType("application/json");
        response.setContentType("text/xml;character=utf-8");
        response.setHeader("Cache-Control", "no-cache");
        try {
            User p = new User("小张", "123456");

            User p1 = new User("小王", "123");
            List<User> list = new ArrayList<User>();
            list.add(p);
            list.add(p1);
            JSONArray json = JSONArray.fromObject(list);
            JSONObject jb = new JSONObject();
            jb.put("person", json);
            out.write(jb.toString());      //这里利用的第三方net.sf.json.JSONObject,但是回去的json数据,ff浏览器说是不良好的格式
        } catch (Exception e) {
            e.printStackTrace();
        }
        out.flush();
        out.close();
        }
  • 写回答

4条回答

  • devmiao 2017-05-03 16:22
    关注
    评论

报告相同问题?

悬赏问题

  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面