ext/html;charset=utf-8");
response.getWriter().print(str);
}
二、JSONlib 的使用(两步)
1) 导入 JSON lib的包
commons-beanutils-1.8.2.jar
commons-collections-3.2.1.jar
commons-lang-2.5.jar
commons-logging-1.1.1.jar
ezmorph-1.0.6.jar
JSON-lib-2.4-jdk15.jar
2) 使用
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userName=request.getParameter("userName");
UserInfo user= UserDao.getUserByName(userName);
//使用JSONlib提供的功能,将一个类对象转成JSON格式的字符串
JSONObject JSONObj=JSONObject.fromObject(user);
System.out.println(JSONObj);
response.setContentType("text/html;charset=utf-8");
response.getWriter().print(JSONObj.toString());
}
}
//例子,如何使用 JSONlib 返回一组数组
//服务端
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<UserInfo> userList=UserDao.getAllUser();
//如果要转一个对象, 用JSONObject,转多个对象(List),用 JSONArray
JSONArray JSONObj= JSONArray.fromObject(userList);
response.setContentType("text/html;charset=utf-8" );
response.getWriter().print(JSONObj);
}
//客户端
$(function(){
$("button").click(function(){
$.ajax({
url:"JSONArrayTestServlet",
type:"post",
dataType:"JSON",
success:function(userList){
//取出数据的第一种方式
/* for(var i=0;i<userList.length;i++){
alert(userList[i].id);
var trStr="<tr><td>"+userList[i].id+"</td><td>"+userList[i].userName+
"</td><td>"+userList[i].password+"</td><td>"+userList[i].note+"</td></tr>";
$("#table1").append(trStr);
} */
//使用 $.each() 的方式
$.each(userList,function(key,user){
var trStr="<tr><td>"+user.id+"</td><td>"+user.userName+
"</td><td>"+user.password+"</td><td>"+user.note+"</td></tr>";
$("#table1").append(trStr);
});
}
});
});
});
//例子 将JSON字符串反序列化为 java对象
String JSONStr= "{\"id\":99,\"userName\":\"张三\",\"password\":\"admin\",\"note\":\"备注\",\"aihao\":\"球类\"}" ;
JSONObject JSONObj=JSONObject.fromObject(JSONStr);
//注意,UserInfo 类,一定要有一个无参的构造函数
UserInfo user=(UserInfo)JSONObject.toBean(JSONObj,UserInfo.class);
三、Ajax联动菜单
//请求发起页面
$(function(){
$("#bigCate").change(function(){
//取出自己的被选中的option 的 value (它应该是小分类对应的parentId)
var parentId=this.value ;
//根据这个parentId去数据库查询,
$.ajax({
url:"CateAjaxServlet",
cache:false,
data:{parentId:parentId},
dataType:"JSON",
success:function(cateList){
//把取务端返回的小分类的列表,拼到小分类对应的下拉框中,但要先清空一下
$("#smallCate").empty();
$.each(cateList,function(key,cateInfo){
var optionStr="<option value='"+cateInfo.id+"'>"+cateInfo.cateName+"</option>";
$("#smallCate").append(optionStr);
});
}
});
});
});
<body>
<%
List<CateInfo>