2014-04-30 44 views
1

我想通過post方法將一些查詢從jsp文件發送到servlet,然後從servlet獲取一些修改後的結果到jsp文件。無法接收來自jsp文件中servlet的響應

我能夠成功完成第一部分,但無法在jsp文件中收到響應。

的Servlet POST方法是: -

protected void doPost(HttpServletRequest request, 
    HttpServletResponse response) throws ServletException, IOException { 
    JSONObject js = <some method to get json>; 
      System.out.println(js); //works fine 
    response.setContentType("application/json"); 
    response.setCharacterEncoding("UTF-8"); 
    response.getWriter().write(js.toJSONString()); 
} 

我的JSP代碼是:

<script> 
    function getData() { 
     $.post("MyServlet", { 
      query : "Wolf of wall street", 
      choice : "M" 
     }, function(response) { 
      alert("hello" + response); 
     }); 
    } 
    </script> 

輸出是:

enter image description here

我怎樣才能像JSON字符串?

+1

你肯定是正從你的servlet JSON對象,它會更容易訪問它的屬性,如:response.someProperty,嘗試打印像瀏覽器控制檯上:執行console.log(響應),還是你只想要字符串,你可以嘗試更新這一行:response.setContentType(「plain/text」); – Arvind

+0

@Arvind這看起來像一個答案 –

+0

也我建議添加此作爲方法的最後一行:response.getWriter()。close(); – Arvind

回答

2

你正在得到json作爲響應需要將其串聯化。

<script> 
    function getData() { 
     $.post("MyServlet", { 
      query : "Wolf of wall street", 
      choice : "M" 
     }, function(response) { 
      alert("hello" + JSON.stringify(response)); 
     }); 
    } 
    </script>