JSON实例(AJAX+STRUTS )

前段时间做项目用到了json,今天我抽时间写了一个struts+ajax+json的例子.
个人感觉ajax+json在很大程度上降低了网络和服务器的IO,是一个很不错的组合!
1:json的lib我用的是json-lib-2.1-jdk15.jar,它可以在
2:struts用的是1.2
3:用到了js第三方prototype.js,主要用它包装的ajax对象,大家也没必要用这个,可以直接在js里用XMLHttpRequest。


以下是例子中所用到的相关文件:
Java代码
/// toolhxw.js
/**
@hxw 20080602
*/
//回调函数 简单回调函数
function showesay(dataResponse)
{
var data = eval('(' + dataResponse.responseText + ')');
var str='';
str+='<ul>';
str+='<li>'+data.param1;+'</li>';
str+='<li>'+data.param2;+'</li>';
str+='</ul>';
document.getElementById("content").innerHTML=str;
}
//回调函数 复杂回调函数
function showcomplex(dataResponse)
{
var data = eval('(' + dataResponse.responseText + ')');
var str='';
for(var i=0;i<data.js.length;i++)
{
str+='<ul>';
str+='<li>'+data.js[i].id+'</li>';
str+='<li>'+data.js[i].age+'</li>';
str+='<li>'+data.js[i].name+'</li>';
str+='<li>'+data.js[i].address+'</li>';
str+='</ul>';
}
document.getElementById("content").innerHTML=str;
}
//获取简单的json数据
function getesay(){
var url = 'test.do';
var pars = 'method=getEasy';
var ajax = new Ajax.Request(
url,
{method:'post',parameters:pars,onComplete:showesay}
);
}
//获取对象级复杂数据
function getcomplex(){
var url = 'test.do';
var pars = 'method=getComplex';
var ajax = new Ajax.Request(
url,
{method:'post',parameters:pars,onComplete:showcomplex}
);
}

///struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
<data-sources />
<form-beans />
<global-exceptions />
<global-forwards />
<action-mappings >
<action path="/test" parameter="method" type="com.json.struts.action.TestAction">
</action>

</action-mappings>

<message-resources parameter="com.json.struts.ApplicationResources" />
</struts-config>

TestAction.java

/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.json.struts.action;

import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import net.sf.json.*;

/**
* @author hxw
*
*/
public class TestAction extends DispatchAction {


/**
* 获取简单组合数据
*/
public ActionForward getEasy(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
response.setContentType("text/html; charset=GBK");
try
{
PrintWriter out = response.getWriter();
//这里的数据拼装一般是从数据库查询来的
JSONObject jsonObject = new JSONObject();
jsonObject.put("param1", "变量一");
jsonObject.put("param2", "变量二");
out.print(jsonObject.toString());
out.flush();
out.close();
return null;
}catch(Exception e)
{
e.printStackTrace();
return null;
}
}
/**
* 获取复杂组合数据
*/
public ActionForward getComplex(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
response.setContentType("text/html; charset=GBK");
try
{
PrintWriter out = response.getWriter();
JSONObject obj = new JSONObject();
JSONArray js = new JSONArray();
//这里的数据拼装一般是从数据库查询来的
for(int i=0;i<3;i++)
{
JSONObject objtemp = new JSONObject();
objtemp.put("id", i);
objtemp.put("age", "23");
objtemp.put("name", "test"+i);
objtemp.put("address", "test");
js.add(objtemp);
}
obj.put("js",js);
out.print(obj.toString());
}catch(Exception e)
{
e.printStackTrace();
System.out.print("消费明细json存储异常");
}
return null;
}
}

test.jsp
<%@ page language="java" import="java.util.*" contentType="text/html;charset=gbk"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>json练习</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/toolhxw.js"></script>
</head>

<body>
<div id="func" >
<a href='javascript:getesay()'>获取简单组合数据</a>
<a href='javascript:getcomplex()'>获取复杂组合数据</a>
</div>
<div id="content">
正在获取内容...
</div>
</body>
</html>

/// toolhxw.js
/**
@hxw 20080602
*/
//回调函数 简单回调函数
function showesay(dataResponse)
{
var data = eval('(' + dataResponse.responseText + ')');
var str='';
str+='<ul>';
str+='<li>'+data.param1;+'</li>';
str+='<li>'+data.param2;+'</li>';
str+='</ul>';
document.getElementById("content").innerHTML=str;
}
//回调函数 复杂回调函数
function showcomplex(dataResponse)
{
var data = eval('(' + dataResponse.responseText + ')');
var str='';
for(var i=0;i<data.js.length;i++)
{
str+='<ul>';
str+='<li>'+data.js[i].id+'</li>';
str+='<li>'+data.js[i].age+'</li>';
str+='<li>'+data.js[i].name+'</li>';
str+='<li>'+data.js[i].address+'</li>';
str+='</ul>';
}
document.getElementById("content").innerHTML=str;
}
//获取简单的json数据
function getesay(){
var url = 'test.do';
var pars = 'method=getEasy';
var ajax = new Ajax.Request(
url,
{method:'post',parameters:pars,onComplete:showesay}
);
}
//获取对象级复杂数据
function getcomplex(){
var url = 'test.do';
var pars = 'method=getComplex';
var ajax = new Ajax.Request(
url,
{method:'post',parameters:pars,onComplete:showcomplex}
);
}

///struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
<data-sources />
<form-beans />
<global-exceptions />
<global-forwards />
<action-mappings >
<action path="/test" parameter="method" type="com.json.struts.action.TestAction">
</action>

</action-mappings>

<message-resources parameter="com.json.struts.ApplicationResources" />
</struts-config>

TestAction.java

/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.json.struts.action;

import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import net.sf.json.*;

/**
* @author hxw
*
*/
public class TestAction extends DispatchAction {


/**
* 获取简单组合数据
*/
public ActionForward getEasy(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
response.setContentType("text/html; charset=GBK");
try
{
PrintWriter out = response.getWriter();
//这里的数据拼装一般是从数据库查询来的
JSONObject jsonObject = new JSONObject();
jsonObject.put("param1", "变量一");
jsonObject.put("param2", "变量二");
out.print(jsonObject.toString());
out.flush();
out.close();
return null;
}catch(Exception e)
{
e.printStackTrace();
return null;
}
}
/**
* 获取复杂组合数据
*/
public ActionForward getComplex(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
response.setContentType("text/html; charset=GBK");
try
{
PrintWriter out = response.getWriter();
JSONObject obj = new JSONObject();
JSONArray js = new JSONArray();
//这里的数据拼装一般是从数据库查询来的
for(int i=0;i<3;i++)
{
JSONObject objtemp = new JSONObject();
objtemp.put("id", i);
objtemp.put("age", "23");
objtemp.put("name", "test"+i);
objtemp.put("address", "test");
js.add(objtemp);
}
obj.put("js",js);
out.print(obj.toString());
}catch(Exception e)
{
e.printStackTrace();
System.out.print("消费明细json存储异常");
}
return null;
}
}

test.jsp
<%@ page language="java" import="java.util.*" contentType="text/html;charset=gbk"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>json练习</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/toolhxw.js"></script>
</head>

<body>
<div id="func" >
<a href='javascript:getesay()'>获取简单组合数据</a>
<a href='javascript:getcomplex()'>获取复杂组合数据</a>
</div>
<div id="content">
正在获取内容...
</div>
</body>
</html>

大家将这几个文件拷贝到你的myeclipse的web项目中,发布运行即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ajax是一种用于在客户端和服务器之间进行异步通信的技术,可以在不刷新整个网页的情况下更新部分网页内容。JSON是一种轻量级的数据交换格式,常用于在服务器和客户端之间传递数据。ashx是一种处理程序,用于在服务器上接收和处理Ajax请求。 "ajax json ashx实现列表页.rar"是一个压缩文件,可能包含一个使用以上技术实现的列表页的项目。 该项目可能包括一个ashx处理程序,用于接收Ajax请求并处理相关操作。程序可能使用JSON格式将数据从服务器发送到客户端,以便在列表页上更新显示。通过Ajax技术,用户可以在不刷新整个页面的情况下获取最新的数据,并在列表页上进行交互操作,如添加、删除或编辑列表项。 实现这个列表页可能涉及到以下步骤: 1. 创建一个ashx处理程序,用于处理列表页的请求。 2. 在客户端使用Ajax技术发送请求给服务器,请求列表数据。 3. 服务器接收到请求后,从数据库或其他数据源中获取数据,并将数据封装成JSON格式。 4. 服务器将封装好的JSON数据响应给客户端。 5. 客户端接收到响应后,解析JSON数据,并根据数据更新列表页的显示。 6. 在列表页上实现交互功能,如添加、删除或编辑列表项。 7. 根据用户的操作,使用Ajax技术发送相应的请求给服务器,进行数据的增删改操作。 8. 服务器接收到请求后,进行相应的操作,并响应结果给客户端。 9. 客户端接收到响应后,更新列表页的显示。 通过以上的步骤,可以实现一个使用AjaxJSON和ashx处理程序的列表页,用户可以在列表页上进行数据的增删改操作,并实时更新数据的显示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值