Servlet輸出JSON數據Servlet向瀏覽器返回JSON數據

                        Servlet輸出JSON數據Servlet向瀏覽器返回JSON數據

 

一、依賴jar包

1、 gson-2.8.5: 對象和json字符串之間相互轉換。

 

 

二、代碼實現 -- 普通字符串返回

@WebServlet("/jsonServlet")
public class JsonServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws     ServletException, IOException {
        // 解決json中文亂碼
        response.setContentType("text/json;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter();
        String str ="{\"姓名\":\"HaHa先生\",\"年齡\":\"18歲啦\"}";
        out.println(str);
        out.flush();
        out.close();
    }
}

 

三、代碼實現 -- 對象 -- 使用Gson對象轉字符串

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 解決json中文亂碼
    response.setContentType("text/json;charset=UTF-8");
    response.setCharacterEncoding("UTF-8");
    PrintWriter out = response.getWriter();
    List<Client> list = clientService.findList(new Client());
    Gson gson = new Gson();
    String json = gson.toJson(list);
    out.println(json);
    out.flush();
    out.close();
}

 

四、 使用ajax獲取json數據


<script type="text/javascript">
    $.ajax({
        url:'${ctx}/jsonServlet',
        type:'POST',
        data:{},
        dataType:'json',
        success:function(data){
            var str =JSON.stringify(data);
            alert(str);
        }
    });
</script>

五、總結

1、本示例代碼中使用的Servlet版本是3.0 ,故而使用了註解的形式。 低於3.0的朋友,請在web.xml文件中配置Servlet,這裏不再列出。

2、三 中的對象,可以是任意對象,爲了代碼簡潔,易於理解,不再列出獲取 List 的詳細代碼。

3、servlet中輸出json數據,請使用 response 。 使用前需設置下 編碼格式和響應內容類型,否則可能會造成中文亂碼。 (代碼開頭那兩句話!)

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章