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.