博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSH服务器与Android通信(1)--服务器端发送数据
阅读量:4954 次
发布时间:2019-06-12

本文共 2278 字,大约阅读时间需要 7 分钟。

很多应用要求SSH服务器不仅和PC通信,还要和Android移动设备通信,这时就需要用到JSON了。其基本原理是服务器将数据转换成JSON格式,发送给Android客户端,客户端再将JSON格式的数据解析出来,从而实现了SSH服务器和Android客户端之间的通信。

(1)新建一个User library,包含JSON所需要的jar:

注意其中的gson除了加入Build path以外,还要复制到WEB-INF/lib/,否则会出错。

(2)新建一个ResUtil文件,使用GSON将数据转换成JSON字符串:

代码如下:

package com.school.tool;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.http.HttpServletResponse;import com.google.gson.Gson;public class ResUtil {        public static void toJson(HttpServletResponse response, Object data)         throws IOException {                Gson gson = new Gson();        String result = gson.toJson(data);        response.setContentType("text/json; charset=utf-8");        response.setHeader("Cache-Control", "no-cache");        PrintWriter out = response.getWriter();        out.print(result);        out.flush();        out.close();            }  }

(3)新建AClasQueryAction文件,处理Android客户端的请求:

代码如下:

package com.school.action;import java.io.IOException;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.struts2.ServletActionContext;import net.sf.json.JSONArray;import com.school.entity.Clas;import com.school.service.ClasService;import com.school.tool.ResUtil;import com.opensymphony.xwork2.ActionSupport;@SuppressWarnings("serial")public class AClasQueryAction extends ActionSupport {        private ClasService clasService;    public void setClasService(ClasService clasService) {        this.clasService = clasService;    }        private Clas clas;    // 封装并返回所有课程信息    public String execute(){        Map
map = new HashMap
(); List
claslist = clasService.findAll(); try{ map.put("Classes", claslist); ResUtil.toJson(ServletActionContext.getResponse(), map); }catch (IOException e){ e.printStackTrace(); } return null; }}

该文件获得所有的课程信息,封装在Map里面,并返回给客户端。

(4)修改applicationContext.xml和struts.xml文件,在applicationContext.xml中加入以下语句:

在struts.xml文件中加入以下语句:

(5)重新启动服务器,在浏览器中访问http://localhost:8080/School/aclasquery,结果如下:

可见服务器正确的以JSON格式返回了所有课程的数据。如果使用Android客户端访问该URL,也可以获得以上JSON格式的数据,然后再解析出来就可以了。

转载于:https://www.cnblogs.com/mstk/p/4664998.html

你可能感兴趣的文章
Scrapy入门程序点评
查看>>
DotNetty网络通信框架学习之源码分析
查看>>
8.1 Android Basic 数据存储 Preferences Structured(分组的Preferences)
查看>>
原因和证明
查看>>
VC6.0图像处理2--图像的反色
查看>>
Snoop, 对WPF程序有效的SPY++机制
查看>>
JAVA程序猿怎么才干高速查找到学习资料?
查看>>
使用axel下载百度云文件
查看>>
Qt中图像的显示与基本操作
查看>>
详解软件工程之软件测试
查看>>
WCF(二) 使用配置文件实现WCF应用程序
查看>>
【CodeForces 803 C】Maximal GCD(GCD+思维)
查看>>
python 去掉换行符或者改为其他方式结尾的方法(end='')
查看>>
数据模型(LP32 ILP32 LP64 LLP64 ILP64 )
查看>>
REST构架风格介绍:状态表述转移
查看>>
c++ operator
查看>>
java小技巧
查看>>
POJ 3204 Ikki's Story I - Road Reconstruction
查看>>
网页消息类
查看>>
【BZOJ】2959: 长跑(lct+缩点)(暂时弃坑)
查看>>