【问题标题】:Sending json from servlet从 servlet 发送 json
【发布时间】:2016-11-17 13:12:17
【问题描述】:

我写了这个 servlet:

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

    response.setContentType("application/json");

    BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));
    String json = "";
    if(br != null){
        json = br.readLine();
    }

    PrintWriter out = response.getWriter();

    out.write(json);
    out.flush();
}

通过 ajax 请求发送数据,servlet 我返回它们。 问题是,当我尝试让我返回在 servlet 中创建的 JSONObject 时,会出现错误 500。

给我这个错误的代码:

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




    response.setContentType("application/json");

    BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));

    JSONObject json = new JSONObject();

    json.put("name", "federico");

    PrintWriter out = response.getWriter();

    out.print(json);
    out.flush();
}

我的 requestAjax 是:

$.ajax({
                url: "ValidServlet",
                type: 'POST',
                data : JSON.stringify(submitFormData),
                success: function (data) {
                    alert(data.name);
                },
                error: function (data) {
                    alert('error');
                }
            });

我的错误是:

Failed to load resource: the server responded with a status of 500 (Internal Server Error) (17:33:34:492 | error, network)at http://localhost:8080/ProgettoProsa/ValidServlet> 

也许我错误地返回所以 json?

帮我找出失败的地方。

谢谢大家。

【问题讨论】:

  • 能否说明您收到的错误以及您发送的请求?

标签: java json ajax servlets jsonobject


【解决方案1】:

试试这段代码用http发送json数据:

包 com.nl.services.ws.sincronizacao; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.google.gson.Gson; @WebServlet(value = "/TestGsonHttp") public class TestGsonHttp extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // Your class MyJson m = new MyJson(); m.setName("frederico"); Gson g = new Gson(); String jsonResult = g.toJson(m); PrintWriter writer = resp.getWriter(); writer.print(jsonResult); writer.flush(); writer.close(); } class MyJson { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } }

【讨论】:

    猜你喜欢
    • 2012-08-15
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    • 2015-06-07
    • 2020-10-18
    • 2015-06-23
    • 2017-07-27
    • 1970-01-01
    相关资源
    最近更新 更多