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>