【问题标题】:Returning a JSON from a Servlet [duplicate]从 Servlet 返回 JSON [重复]
【发布时间】:2018-04-21 16:58:19
【问题描述】:

如何从 Servlet 返回 JSON? 这是我的代码,但有些东西不起作用,我想我在 JS 代码中犯了错误,但我不知道如何更正。

这是小服务程序

protected void doGet(HttpServletRequest request, HttpServletResponse  response)throws ServletException, IOException {

    String enduser = ls.ReturnEndUser();

    Utente user = ls.getUserByUsername(enduser); 
    String json = new Gson().toJson(user);
    System.out.println("il JSON è " + json);
    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(json);

}

JS

$.get("UserServlet", function (response) {                                                                                      
document.getElementById("endusername").innerHTML = utente.nome;        
});

这是 Utente 对象

public Utente(String username, String nome, String cognome, String email, String password, int gruppo1, int gruppo2, int gruppo3, int gruppo4, int gruppo5,String img_src) {
    this.id_utente = id_utente;
    this.username = username;
    this.nome = nome;
    this.cognome = cognome;
    this.email = email;
    this.password = password;
    this.gruppo1 = gruppo1;
    this.gruppo2 = gruppo2;
    this.gruppo3 = gruppo3;
    this.gruppo4 = gruppo4;
    this.gruppo5 = gruppo5;
    this.img_src= img_src;
}

【问题讨论】:

    标签: javascript java ajax servlets


    【解决方案1】:
    $.get("UserServlet", function (response) {                                                                                      
      document.getElementById("endusername").innerHTML = utente.nome;        
    });
    

    我相信您只想使用 utente.nome 设置字段“endusername”。所以,这里不需要innerHTML。

    document.getElementById("endusername").innerHTML
    

    应该是

    document.getElementById("endusername").value
    

    PS 语法不好。

    【讨论】:

    • 嗯,控制台显示:"Uncaught ReferenceError: utente is not defined"
    • 你调试了 js 并验证了你在 js 回调的响应对象中得到了什么。
    • 是的,它从 servlet 正确返回一个 JSON;我认为错误仍然在 js 中,但我知道出了什么问题
    • 解决了! js 是 $.get("UserServlet", function (responseJSON) { document.getElementById("endusername").innerHTML = responseJSON.nome; });
    猜你喜欢
    • 2012-03-27
    • 2011-01-01
    • 2021-01-27
    • 2017-01-05
    • 2020-04-22
    • 2023-03-19
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    相关资源
    最近更新 更多