<!-- 允许客户端联网 -->
<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;
}
}
分享到:
相关推荐
在"Struts2_JSON_Demo"这个项目中,我们将看到如何在Struts2框架中集成JSON支持,以实现前后端的数据交互。以下是一些关键的知识点: 1. **Struts2 JSON插件**:Struts2提供了内置的JSON插件,允许我们直接将Action...
在Java编程中,JSON常用于前后端数据交互,特别是与Struts2框架结合时,可以实现服务器端与客户端之间的数据高效传输。 Struts2是一个开源的MVC框架,它在SSH(Spring、Struts2、Hibernate)集成开发中扮演着控制器...
在HTML页面中,我们可以使用jQuery的`$.ajax`或`$.getJSON`方法发起Ajax请求,获取Struts2 Action返回的JSON数据: ```html <script src="jquery.js"></script> $(document).ready(function() { $.getJSON('...
在标题和描述中提到的"struts2_spring_json.rar"是一个关于如何在Liferay中利用Struts2和Spring框架处理JSON数据的示例应用。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端交互,...
在这个项目中,开发者可能会遇到如何配置Struts2的JSON结果类型、如何在Hibernate中序列化和反序列化JSON对象、如何在ExtJS中解析和展示JSON数据等问题。理解并熟练掌握这些技术的集成和使用,对于开发高效、响应式...
在标题和描述中提到的"struts2所需的包和Struts2_json所需包",主要是指为了实现Struts2框架与JSON数据交互所需要的一系列依赖库。这些包包括但不限于以下几部分: 1. **Struts2核心库**:这是Struts2的基础,包含`...
在“JSONDemo”项目中,我们将看到如何在Android应用中处理接收到的JSON数据。通常,Android开发者会使用诸如Gson或Jackson这样的库来解析JSON,将数据转化为Java对象,或者将Java对象转化为JSON字符串发送到服务器...
最后,`课堂笔记20151107-json.txt`可能是学习过程中的笔记,记录了如何配置和使用Struts2的JSON功能,可能包括了如何在JSP页面中使用AJAX请求JSON数据,以及如何解析和显示这些数据。 总结来说,这个“struts2_...
同时,通过设置Action的返回类型为`json`,我们可以使Struts2以JSON格式返回响应数据,这对于前端AJAX调用非常有用,因为它可以直接解析JSON数据并更新页面内容。 在前端,我们需要创建一个HTML表单,包含一个或多...
然而,随着时间的推移,Struts2框架被发现存在多个安全漏洞,这些漏洞可能导致严重的后果,如远程代码执行、数据泄露等。"K8_Struts2_EXP 20170310"是针对这些问题的一款检测工具,主要用于识别和预防Struts2框架的...
Struts2是一款非常流行的Java Web开发框架,它提供了一种模型-视图-控制器(MVC)架构,帮助开发者构建动态、数据驱动的Web应用程序。然而,随着时间的推移,Struts2框架出现了一些安全漏洞,其中最著名的是S2-045、...
在这个"struts2_ajax_json"项目中,我们将探讨如何将Struts2与Ajax和JSON结合,实现异步数据交互。 首先,让我们了解Struts2如何支持Ajax请求。Struts2提供了`<s:a>`、`<s:submit>`等标签,它们可以通过添加`ajax=...
学习Struts2第三天笔记
官方建议修复方案:升级到最新版本 struts-2.3.15.1 但通常现有系统升级,可能导致不稳定及与其他框架比如spring等的不兼容,成本较高。 鉴于此本人整理了一种既可以不用升级现有struts版本,有能完美解决这两个...
这个"struts2_jar"压缩包很可能是包含了Struts2框架的核心组件和其他相关依赖,以方便开发者快速搭建和运行Struts2项目。 在Struts2框架中,以下是一些核心知识点: 1. **Action类**:Struts2中的Action类是业务...
struts2-json-plugin-2.2.3.1能用的包