原文:http://www.cnblogs.com/lsnproj/archive/2012/02/09/2341524.html
实例二:Ajax返回Json在Java中的实现
在上一个随笔中,介绍AJAX的一个简单实例,在这篇中主要是说一下使用Json来将后台取得的数据显示到前台页面。可以说这种方法应该是实现无刷新分页的基础,而且在开发过程中经常被用到。这里的后台部分由JAVA来实现。
这个例子也在上一篇中那个项目中实现。新建一个SecondTest.html页面,定义一个按钮,并给这个按钮绑定事件ajaxJson()。在JS中实现AJAX,这里的AJAX相对于上一篇中的,我做了简单的封装,将原有的代码分成三个方法,分别是create()、callback()、run()。
create方法是用来创建XMLHttp对象的,callback是用来实现回调函数的,run方法是核心方法。具体代码如下:
create():
function create(){
if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}else if(window.ActiveXObject){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
}
callback():
function callback(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
//要实现的操作
}else{
alert("AJAX服务器返回错误!");
}
}
}
run():
function run(url){
create();
xmlHttp.open("POST",url,true);
xmlHttp.onreadystatechange=callback;
xmlHttp.send();
}
以上三个方法写好后,在ajaxJson()方法中直接调用run方法并将请求当参数传入进去。代码如下:
function ajaxJson(){
run("test.do?method=jsonTest&&msg="+new Date());
}
在AjaxController类的中新建jsonTest方法,在JAVA中实现Json是需要Json架包的,Json的架包有:json-lib-2.3-jdk15.jar,ezmorph-1[1].0.6.jar,commons-logging-tests.jar,commons-logging-api-1.1.1.jar,commons-logging-adapters-1.1.1.jar,commons-logging-1.1.1-sources.jar,commons-logging-1.1.1-javadoc.jar,commons-logging-1.1.1.jar,commons-lang.jar,commons-collections-3[1].2.1.jar,commons-beanutils-core.jar,commons-beanutils-bean-collections.jar,commons-beanutils.jar。看着有点多哈,可以自己去CSDN上面找,我试着删掉一些,但发现少了会不好使,所以为了保险还是把这些都加进去吧。
在开发过程中一般数据都是从数据库中取出来的,习惯性的我们会在程序中将取出的数据存到List中,而Json架包中正好有封装好的方法能将List转换为Json。在这个例子中我们自己制造一些假数据放到List中,然后再将List转换为Json,再返回给前台。代码如下:
public ActionForward jsonTest(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//制造假数据
ArrayList<UserModel> list=new ArrayList<UserModel>();
UserModel user1=new UserModel();//用户对象1
user1.setUserId(1);
user1.setUserName("哈哈");
user1.setUserSex("男");
list.add(user1);
UserModel user2=new UserModel();//用户对象2
user2.setUserId(2);
user2.setUserName("呵呵");
user2.setUserSex("女");
list.add(user2);
//将List转化为JSON
JSONArray json=JSONArray.fromObject(list);
//设置编码
response.setCharacterEncoding("gbk");
//写入到前台
response.getWriter().write(json.toString());
return null;
}
后台部分写完了,现在前台SecondTest.html页面需要接收后台反馈来的数据,这个时候就需要在回调函数中接收Json数据。JS代码如下:后台部分写完了,现在前台SecondTest.html页面需要接收后台反馈来的数据,这个时候就需要在回调函数中接收Json数据。JS代码如下:
//回调函数
function callback(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
var xmlDoc=xmlHttp.responseText;
var data=eval(xmlDoc);
alert(data[0].userId+","+data[0].userName+","+data[0].userSex);
alert(data[1].userId+","+data[1].userName+","+data[1].userSex);
}else{
alert("AJAX服务器返回错误!");
}
}
}
以上就完成了Ajax返回Json在Java中的实现。
分享到:
相关推荐
在这个例子中,服务器端通过`JsonResult`返回JSON格式的用户信息,客户端通过AJAX请求获取这些信息并解析显示。 **五、总结** AJAX+JSON在.NET环境中的应用大大提高了Web应用程序的交互性和效率,减少了不必要的...
在这个“Java+ajax写的登录实例”中,我们将深入探讨如何利用这两种技术实现一个实时验证用户登录信息的功能。 首先,让我们了解Java。Java是一种面向对象的编程语言,广泛用于开发服务器端应用。在登录场景中,...
在Struts 2中,可以利用Struts2的Ajax插件来实现AJAX功能,该插件提供了Action的Ajax支持,使得Action可以直接返回JSON或XML格式的数据。 **JSON** 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器...
AjaxJson 是一种在 Web 应用程序中实现异步数据交换的技术,它结合了 AJAX(Asynchronous JavaScript and XML)和 JSON(JavaScript Object Notation)的优势,使得网页可以在不刷新整个页面的情况下与服务器进行...
在IT行业中,Ajax(异步JavaScript和XML)与JSON(JavaScript Object ...通过学习和实践"Ajax-json.rar"中的实例,你不仅可以掌握这两种技术的基本用法,还能探索更高级的应用场景,从而真正成为一名JavaScript高手。
【标题】"Ajax + JSON + Java" 是一种常见的前端与后端交互技术组合,用于实现网页的异步数据更新,无需整个页面刷新。Ajax(Asynchronous JavaScript and XML)是利用JavaScript进行局部页面更新的技术,而JSON...
JSON-RPC-Java是一个用Java来实现动态JSON-RPC的框架. 利用它内置的一个轻级量JSON-RPC JavaScripIt客户端,可以让你透明地在JavaScript中调用Java代码。JSON-RPC-Java可运行在Servlet容器中如Tomcat也可以运行在...
3. 在前端处理返回的JSON数据:在$.ajax()方法的success回调函数中,返回的数据会被处理。这里使用了eval()函数来转换字符串形式的JSON数据为JavaScript对象。然而,在实际开发中,出于安全考虑,不建议使用eval()...
在描述中提到的`AjaxJson.java`文件,就是这样一个实体类,它的设计目的是为了简化后端接口的返回数据封装,使得前端可以直接理解并处理这些数据。 `AjaxJson.java`的可能实现会如下所示: ```java public class ...
在Java中,Ajax和JSON结合使用,可以实现高效、简洁的前后端数据交互。 本实例以"JSON2.0"库为基础,结合Servlet技术,展示了如何在Java环境中构建一个Ajax应用。JSON2.0是Douglas Crockford提供的一个纯JavaScript...
总结来说,这个“java+ajax+json+jquery完整实例”是一个很好的学习资源,可以帮助开发者理解如何在实际项目中运用这些技术,实现前后端的高效交互,提升用户体验。通过学习和实践这个实例,开发者能够增强自己的Web...
3. **创建XMLHttpRequest实例**:在JavaScript中创建XMLHttpRequest对象。 4. **打开连接**:使用XMLHttpRequest对象的open()方法,指定HTTP请求类型(GET或POST)、URL和是否异步执行。 5. **设置请求头**:根据...
总之,这个"jquery ajax用json传值实例 asp.net"是一个很好的学习资源,可以帮助初学者快速掌握如何在客户端和服务器之间使用AJAX和JSON进行数据交换。通过实践和理解这些基础概念,你可以进一步提升你的Web开发技能...
在现代Web开发中,AJAX(Asynchronous JavaScript and XML)技术是不可或缺的一部分,它允许网页在不刷新整个页面的情况下与服务器进行数据交换。本实例主要关注如何使用AJAX处理复杂的JSON(JavaScript Object ...
【购物车-Ajax实现实例】是一个典型的电子商务网站功能模块,用于模拟用户在虚拟商城中添加、删除商品至购物车的过程。在这个实例中,我们主要关注的是如何利用Ajax技术实现页面无刷新更新,以及与服务器端JSP进行...
在Web开发中,Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,它允许页面在不重新加载整个页面的情况下与服务器交换数据并更新部分网页内容。"Ajax返回JSON对象"这个主题聚焦于Ajax如何处理JSON...
在Java中,我们可以使用各种库来生成JSON,如Gson、Jackson、org.json等。以Gson为例,首先需要添加Gson库依赖,然后创建一个Java对象并转换为JSON字符串: ```java import com.google.gson.Gson; public class...
初学者在接触Ajax时,通常会通过一些简单实例来理解其基本原理和用法。 首先,我们来看看**HTML**(HyperText Markup Language)文件`new_file.html`。HTML是网页的基础,它定义了网页的结构和内容。在使用Ajax时,...