使用Ajax和JSON的Servlet

时间:2016-05-18 15:56:09

标签: java json ajax servlets

我正在解决这个问题几个小时,但我找不到解决方案。我认为这只是一个语法错误。

在我的简单项目中,我只想将一个JSON字符串发送到Servlet,其中包含名称和文本。 servlet应该接受它,用org.json lib解析它并打印出名称和文本。之后将其发送回Java Script,也作为JSON String。

我尝试过在互联网上找到的多种语法版本,但没有一种方法是正确的。

以下是该项目的主要部分:

JS:

function sendMessage(event){

request = new XMLHttpRequest();

request.onreadystatechange = receivedData

var chat_text = document.getElementById("textarea_input").value;

request.open("GET", "AjaxChatServlet", true)

var jsonData;

jsonData = JSON.stringify({ username : loginname, text : chat_text});

request.setRequestHeader("Content-type", "application/json");
request.setRequestHeader("Content-length", jsonData.length);

request.send(jsonData)
document.getElementById("textarea_input").value = "";
}

的Servlet

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

    JSONObject jobj_username = null;
    try {
        jobj_username = new JSONObject(request.getParameter("username"));
    } catch (JSONException e) {
        // TODO Automatisch generierter Erfassungsblock
        e.printStackTrace();
    }

    JSONObject jobj_text = null;
    try {
        jobj_username = new JSONObject(request.getParameter("text"));
    } catch (JSONException e) {
        // TODO Automatisch generierter Erfassungsblock
        e.printStackTrace();
    }




    System.out.println("\n\n\nMessage send from:\n" + jobj_username + "\n\n" + "Message content:\n" + jobj_text);
    PrintWriter writer = response.getWriter();

    if(jobj_username != null && jobj_text != null){
        //send JSON back to JavaScript
    }else{
        {writer.print("no Data available");}
    }

}

希望有人可以帮助我。 感谢

0 个答案:

没有答案