`
王非123
  • 浏览: 24726 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaWeb开发中Ajax技术、json与java实现List、Map数据直接传递的研究

    博客分类:
  • json
 
阅读更多
     JavaWeb开发中Ajax技术、json与java实现List、Map数据直接传递的研究
一、在JavaWeb开发中基于jquery框架来使用ajax技术,Json与后台servlet进行数据交互示例,下面示例中基于servlet技术,没有使用struts2等框架。
        由于项目需要通过ajax得到后台的List对象、map对象里面的值,闲暇时间摸索了一下关于json接受List对象的方法,步骤如下:
1.首先下载json所以依赖的包, Json-lib 最新版json-lib-2.3-jdk15.jar,其官方网站是:http://json-lib.sourceforge.net/可以直接download,细心的你会发现其网站页面里面有提示它还需要其他包:
Json-lib requires(at least) the following dependencies in your classpath:
•jakartacommons-lang 2.4
•jakartacommons-beanutils 1.7.0
•jakartacommons-collections 3.2
•jakartacommons-logging 1.1.1
•ezmorph 1.0.6
下载地址分别是:
http://commons.apache.org/lang/
http://commons.apache.org/beanutils/
http://commons.apache.org/collections/
http://commons.apache.org/logging/
http://ezmorph.sourceforge.net/
2.首先先见一个小web项目
先建一个User类:
[java] view plaincopy
package com.json; 
public class User { 
    String username; 
    String password; 
    public String getUsername() { 
        return username; 
    } 
    public void setUsername(String username) { 
        this.username = username; 
    } 
    public String getPassword() { 
        return password; 
    } 
    public void setPassword(String password) { 
        this.password = password; 
    }     

再建一个servlet 程序:
[java] view plaincopy
package com.json; 
 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.ArrayList; 
import java.util.List; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
import net.sf.json.JSONArray; 
 
public class TestJson extends HttpServlet { 
 
    public void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException { 
           doPost(request,response); 
    } 
    public void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException { 
 
        response.setContentType("text/html");    
        String str= request.getParameter("name");//得到ajax传递过来的paramater 
        System.out.print(str); 
        PrintWriter out = response.getWriter(); 
        List list = new ArrayList();//传递List 
        Map m=new HashMap();//传递Map     
        User u1=new User(); 
        u1.setUsername("zah"); 
        u1.setPassword("123"); 
        User u2=new User(); 
        u2.setUsername("ztf"); 
        u2.setPassword("456");   
        list.add(u1); //添加User对象       
        list.add(u2);     //添加User对象   
       
        m.put("u1", u1); 
        m.put("u2", u2);    
 
        JSONArray jsonArray2 = JSONArray.fromObject( list ); 
       //把list转化成转化成json对象  
        JSONObject jo=JSONObject.fromObject(m);//转化Map对象为Json对象 
        out.print(jsonArray2);//返给ajax请求 
        out.print(jo);//返给ajax请求 
    } 

配置好web.xml中的servlet映射,这一步就略了。 
3.建立ajax实现 (这里为了快速实现用的是jquery实现的)
[html] view plaincopy
<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript"> 
     function test(){ 
         $.ajax({  
                type:"POST", //请求方式 
                url:"testjson", //请求路径:${base}/类所在的命名空间/类名(配置文件中执行对应类的那个name),命名空间是在配置文件中定义。 
                cache: false,    
                data:"name=zah",  //传参 
                dataType: 'json',   //返回值类型 
               success:function(json){       
                    alert(json[0].username+" " json[0].password);    //弹出返回过来的List对象 
                   } 
                }); 
      } 
</script> 
  </head> 
  <body> 
    <input type="button" name="b" value="测试" onclick=test()> 
  </body> 
测试开始,点击按钮弹出zah 123
json[0]就相当于u1对象 json[1]相当于u2对象,对于其属性的访问跟java对象一样,其他的Connection测试应该一样,访问Map的话直接把返回函数改成如下即可:
[javascript] view plaincopy
success:function(json){      
               alert(json.u1.username) 
               } 
  直接跟上Key.属性即可访问Object对象。
分享到:
评论

相关推荐

    java web下开发二级级联下拉菜单(数据库实现的)

    在Java中,我们可以使用`Map, List&lt;Category&gt;&gt;`这样的数据结构来存储树形结构,其中`Integer`是菜单ID,`List&lt;Category&gt;`是该菜单的子菜单列表。 前端部分,可以使用JavaScript库如jQuery或者现代的前端框架如Vue、...

    jsonplugin-0.32.jar

    2. **JSON解析**:库中的API可以解析JSON文本,将JSON对象和数组转换为Java的Map和List,使开发者能轻松地访问和操作JSON数据。 3. **性能优化**:考虑到效率问题,"jsonplugin-0.32.jar"可能采用了高效的算法和...

    javaWeb物资管理系统项目源码.rar

    6. **前后端交互**:JSON(JavaScript Object Notation)格式用于数据交换,Ajax实现页面无刷新更新,可能使用jQuery或其他JavaScript库进行前端处理。 7. **安全控制**:项目可能包含用户认证和授权功能,这可能...

    jQuery进阶学习资料-EasyUI教程.doc

    将JSON-RPC-Java与jQuery EasyUI结合,可以通过Ajax调用JSON-RPC服务,获取或更新数据,实现前端与后端的实时交互。 1. **创建前端界面** - 使用EasyUI创建用户界面,如表格、表单等,并配置相应的事件监听器,如...

    java培训课程体系

    - **AJAX技术:** 了解异步请求的基本原理及其在Web开发中的应用。 #### 四、JavaWeb程序设计(3周) ##### 4.1 Java与XML - **XML基础知识:** 学习XML的基本语法及其与JSON的区别。 - **解析XML:** 掌握DOM和...

    JavaWeb JDBC + MySql 通讯录实现简单的增删改查功能案例详解

    在JavaWeb应用中,JDBC(Java Database Connectivity)是用于与关系型数据库交互的重要技术,而MySQL是一款广泛使用的开源数据库管理系统。本案例将探讨如何利用JavaWeb中的JDBC与MySQL数据库来实现一个简单的通讯录...

    Java学习路线图.pdf

    - **集合框架**:理解Collection、List、Set、Map接口及其常见实现类,学习泛型和工具类的使用。 - **异常处理**:掌握异常的分类、抛出、捕获和自定义异常的创建。 6. **数据结构与排序**: - **排序算法**:...

Global site tag (gtag.js) - Google Analytics