servlet向前端傳遞json資料
阿新 • • 發佈:2019-01-22
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.