1. 程式人生 > >servlet向前端傳遞json資料

servlet向前端傳遞json資料

servlet向前端返回json資料

可傳送單個物件和集合(list等),這裡給出模板,json轉換用的是阿里巴巴的fastjson,其他json包類似。

protected void getJson(HttpServletRequest request,HttpServletResponse response,Object object){
        response.setContentType("text/html;charset=UTF-8");  
        //禁用快取,確保網頁資訊是最新資料  
        response.setHeader("Pragma"
,"No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", -10); PrintWriter out = null; try { out = response.getWriter(); String jsonStr=JSON.toJSONString(object); out.print(jsonStr); out
.flush(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ out.close(); } }

使用方法(簡單示例):

在要返回json的servlet方法上呼叫,返回單個物件如下:

protected void doGet(HttpServletRequest request, HttpServletResponse response) {
        // TODO Auto-generated method stub
HttpSession session=request.getSession(); User user=(User) session.getAttribute("user"); getJson(request, response, user);//返回一個user物件 }

返回集合:

protected void doGet(HttpServletRequest request, HttpServletResponse response) {
        // TODO Auto-generated method stub
        List<Province> provinces=provinceDao.getProvinces();
        getJson(request, response, provinces);//返回一個list集合
    }

前端獲取方法就是普通的ajax.