Struts2_Android(2.2)_模拟数据访问项目 JSON项目

<!-- 允许客户端联网 -->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

package com.example.coffeeclient;

import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONObject;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {

private ListView listView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.listView = new ListView(this);
// 调试地址 10.0.2.2
String url = "http://10.0.2.2:8080/coffeeServer/getCoffeeList";
ArrayAdapter<String> aa = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, getData(url));
this.listView.setAdapter(aa);
setContentView(this.listView);
}

// 获得服务端数据(服务端通过PrintWriter输出JSON数组)
private List<String> getData(String url) {

List<String> list = new ArrayList<String>();
String result = "";
HttpURLConnection conn = null;
try {
URL _url = new URL(url);
// 打开连接
conn = (HttpURLConnection) _url.openConnection();
// 创建一个字节数组
byte[] data = new byte[conn.getContentLength()];
// 读取输入流中的数据
conn.getInputStream().read(data);
result = new String(data);
JSONArray arr = new JSONArray(result);
for (int i = 0; i < arr.length(); i++) {
JSONObject o = arr.getJSONObject(i);
String s = " " + o.getString("cname") + " "
+ o.getDouble("cmoney") + " 元";
list.add(s);
}
} catch (Exception e) {
throw new RuntimeException(e);
}finally{
//关闭连接
conn.disconnect();
}
return list;
}
}

package com.web;

import java.io.PrintWriter;
import java.util.List;

import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.struts2.interceptor.ServletResponseAware;

import com.bll.TbGoodService;
import com.bll.TbGoodServiceImpl;
import com.entity.TCoffee;
import com.opensymphony.xwork2.ActionSupport;

public class TbGoodAction extends ActionSupport implements ServletResponseAware {

private TbGoodService tbGoodService = new TbGoodServiceImpl();
private HttpServletResponse response;

public String findAll() throws Exception{

//从业务层拿到数据
List<TCoffee> list = this.tbGoodService.findAll();

this.response.setContentType("text/html;charset=UTF-8");

//使用PrintWriter对象输出JSON数组
PrintWriter out = this.response.getWriter();
//创建JSON数组
JSONArray arr = new JSONArray();
for(TCoffee t : list){
//创建JSON对象
JSONObject g=new JSONObject();
//设置属性
g.put("cid", t.getCid());
g.put("cname", t.getCname());
g.put("cmoney", t.getCmoney());
//添加JSON对象到JSON数组
arr.add(g);
}
out.print(arr);
System.out.println(arr);
return null;
}

public void setServletResponse(HttpServletResponse response) {
// TODO Auto-generated method stub
this.response = response;
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值