原文: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中的实现。
分享到:
相关推荐
在.NET中使用AJAX技术来做服务器端和客户端交互,用JSON做为在异步应用程序中发送和接收信息的数据格式。
AJAX-JSON该源码从实例入手教你如何成为一个javascript高手
JSON-RPC-Java是一个用Java来实现动态JSON-RPC的框架. 利用它内置的一个轻级量JSON-RPC JavaScripIt客户端,可以让你透明地在JavaScript中调用Java代码。JSON-RPC-Java可运行在Servlet容器中如Tomcat也可以运行在...
Struts 2.1-AJAX-JSON实例,包含了json的jar包和需要的js文件,该项目经自己测试是可以的。
ajax学习:Java+ajax写的登录实例
AjaxJson 实例 讲解 最基本的用法 给初学者 有很大帮助 这是 本人老师的实例 呵呵
本例子采用弄AJAX和JSON格式的字符串 ,改变前台下拉列表的内容 不刷新页面自动将其他文本框赋值
ajax请求复杂的json数据实例,下载看看下载看看下载看看
实现了java+ajax+json+jquery的完整实例,包括ajax+jquery向后台传参,后台传输json数据到前台ajax接收。里面有自己遇到的四个问题,及解决的具体办法。
ajax实例应用,json实现的许多功能
java生成json数据 ajax请求数据并解析json
基于JSON2.O和Servlet的Ajax实例,快速入门的好例子
关于Ajax的学习,通过对本例的学习,会发现ajax对json的引用,对ajax的机制也有很大的帮助
基于jquery+json实现的网站后台管理中无刷新的分类管理功能演示,如上图演示所示,可无刷新添加一个分类、在动画弹出的对话框中输入分类名称即可实现保存,同进还可无刷新删除二级分类,删除一级分类,修改分类,...
jquery ajax用json传值实例 适用于初学者,将页面文件拖到网站项目中即可,包含了传入值传出值,可以根据此代码扩展为自己的代码,一看就明白,有备注
演示json和jquery实现ajax的小demo!
Ajax + JSON + Servlet + prototype.js(实现的一个Ajax实例) 很好的展示了Ajax与JSON的无缝连接与后台的交互。
php+ajax+json的简单实例,包含了json的重要语句,有了这个你学习json就容易多了!
JavaWeb将数据包装成JSON以及JSP通过ajax对JSON的获取与解析(代码实例) 运行环境:MyEclipse
这是一个学习jquery-ajax的实例,实例中应用到了bean -json的转化, 页面上应用到了jqury如何解析返回的json数据。