jQuery中JSON与Servlet应用小例

http://jackandroid.iteye.com/blog/512487

 这几天边看<锋利的jQuery>边学jQuery,越发觉得jQuery确实是个非常好的js框架。jQuery中通过get,post,ajax等方法与服务器之间进行异步通行,非常简单与方便。
 jQuery中 通常数据通信的格式有XML,HTML,JSON和TEXT等。
XML:好处是格式通用,提高重用性。坏处则是相对解析之类的较慢,对于只传递少量数据有点浪费。
JSON:好处就是解决了XML中文档体积大和难以解析的问题,并且也具有重用性。
下面我主要介绍下自己所写的一个jQuery与servlet之间通信的例子,数据格式采用的是JSON。
1.下载相应的包。需要使用JSON则需要下载相应的jar,下载地址为http://www.json.org.注意,这里除了需要对应JDK下载json.jar外,还需要下载一些额外的jar包(请见附件)。
2.将相应的包添加到当前项目路径中,此外还需要将这些jar文件放到tomcat/lib下。如果不放则会报无法找到相应类的异常。
3.在form.jsp下编写异步提交表单的jQuery代码:
Js代码   收藏代码
  1. $("#submitButton").click(function(){  
  2.          $.get("myservlet/getdata",//servlet URL  
  3.                         {username:$( "#username").val()},//表单中的值  
  4.            function(data,statusText){//相应函数  
  5.                  var jsonvars=data.mydata;//返回JSON数据  
  6.             for(var i=0;i<jsonvars.length;i++)  
  7.             {   $("#dataDiv").append"<div>"+jsonvars[i].name+jsonvars [i].age+"</div>");        }  
  8.               },"json");  
  9.     });   
  10.    });  
4.servlet端代码
Java代码   收藏代码
  1. package com.hj.ajax.servlets;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.PrintWriter;  
  5.   
  6. import javax.servlet.ServletException;  
  7. import javax.servlet.http.HttpServlet;  
  8. import javax.servlet.http.HttpServletRequest;  
  9. import javax.servlet.http.HttpServletResponse;  
  10.   
  11. import net.sf.json.JSONArray;  
  12. import net.sf.json.JSONObject;  
  13.   
  14. public class GetDataServlet extends HttpServlet  
  15. {  
  16.   
  17.     /** 
  18.      * 串行化版本序号 
  19.      */  
  20.     private static final long serialVersionUID = 6643682700511421833L;  
  21.   
  22.     /** 
  23.      * The doGet method of the servlet. <br> 
  24.      *  
  25.      * This method is called when a form has its tag value method equals to get. 
  26.      *  
  27.      * @param request 
  28.      *            the request send by the client to the server 
  29.      * @param response 
  30.      *            the response send by the server to the client 
  31.      * @throws ServletException 
  32.      *             if an error occurred 
  33.      * @throws IOException 
  34.      *             if an error occurred 
  35.      */  
  36.     @Override  
  37.     public void doGet(HttpServletRequest request, HttpServletResponse response)  
  38.             throws ServletException, IOException  
  39.     {  
  40.   
  41.         doPost(request, response);  
  42.     }  
  43.   
  44.     /** 
  45.      * The doPost method of the servlet. <br> 
  46.      *  
  47.      * This method is called when a form has its tag value method equals to 
  48.      * post. 
  49.      *  
  50.      * @param request 
  51.      *            the request send by the client to the server 
  52.      * @param response 
  53.      *            the response send by the server to the client 
  54.      * @throws ServletException 
  55.      *             if an error occurred 
  56.      * @throws IOException 
  57.      *             if an error occurred 
  58.      */  
  59.     @Override  
  60.     public void doPost(HttpServletRequest request, HttpServletResponse response)  
  61.             throws ServletException, IOException  
  62.     {  
  63.         response.setContentType("text/html;charset=utf-8");  
  64.         String username = request.getParameter("username");  
  65.   
  66.         System.out.println(username);  
  67.   
  68.         JSONObject json = new JSONObject();  
  69.         JSONArray array = new JSONArray();  
  70.         JSONObject member = null;  
  71.         for (int i = 0; i < 5; i++)  
  72.         {  
  73.             member = new JSONObject();  
  74.             member.put("name""xiaohua");  
  75.             member.put("age"15);  
  76.             array.add(member);  
  77.         }  
  78.   
  79.         json.put("mydata", array);  
  80.         PrintWriter pw = response.getWriter();  
  81.         pw.print(json.toString());  
  82.         pw.close();  
  83.     }  
  84.   
  85. }  
5.表单中文数据问题
当表单输入数据为中文是,一般为了安全起见,都使用encodeURIComponent()方法转换参数值,如
{username:encodeURIComponent($("#username").val())}.
 相应在servlet端则采用URLDecoder类的decode(src,srcCharset)方法进行转换,如jsp页面编码为utf-8,则
String username = URLDecoder.decode(request.getParameter("username"), "UTF-8");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值