您的位置:首页 > Web前端 > JavaScript

Ajax+Jsp+servlet+json技术的使用

2013-08-26 09:40 447 查看
Ajax+Jsp+servlet+json技术的使用

在使用json的时候,记得必须导入如下几个.jar包,最好是手动复制.jar包只lib路径下,否则可能出现异常。

commons-beanutils.jar commons-collections.jar commons-lang-2.5.jar(必须是2.x 3.x的会报ClassNotFoundException这个异常) commons-logging.jar ezmorph-1.0.6.jar json-lib.jar.导入这些jar包以后,就可以在后台 使用json来进行数据处理了。

JSONArray的使用:

这里做一个简单的示例:

定义一个Person类:

public class Person{

private String name;

private String sex;

private int age;

....

}

假如我们在servlet中使用了json

public class Test extends HttpServlet{

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
resp.setContentType("text/xml;character=utf-8");
resp.setHeader("Cache-Control", "no-cache");
try{
Person p =new Person();
p.setName("小宝");
p.setAge(3);
p.setSex("男");
List<Person> list =new ArrayList<Person>();
list.add(p);
try{
JSONArray json =JSONArray.fromObject(list);
JSONObject jb =new JSONObject();
jb.put("person", json);
resp.getWriter().write(jb.toString());
}catch(IOException e){
e.printStackTrace();
}
}catch(Exception e){
e.printStackTrace();
}
}

}

前台的Ajax接收到后台返回json的数据

<script type="text/javascript">
function validate(obj){
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else{
xmlhttp=new ActiveObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
var back =xmlhttp.responseText;
//在这里遍历输出返回来的信息即可

}
}
var url ="fan/servlet/demo?name="+obj;
xmlhttp.open("POST",url,true);
xmlhttp.send();
}
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: