客户端与服务端的交互
必备知识部分必备知识部分 服务端(生成服务端(生成 JsonJson 数据)数据) 使用使用 MyeclipseMyeclipse 1 1、、 新建新建 Web projectWeb project 2 2、、 完成后的目录结构完成后的目录结构 3、写一个序列化、写一个序列化 jsonjson 的类,并继承自的类,并继承自 HttpServletHttpServlet,覆写,覆写 doGetdoGet 方法方法 自己写一个最简单的生成自己写一个最简单的生成 jsonObjectjsonObject 数据的方法数据的方法 /** * 写json数据出来,类型jsonObject * */ publicpublic String toJson { JSONObject jsonObject newnew JSONObject; trytry { jsonObject.put“studentId“, “2012329700030“; jsonObject.put“name“, “龙隆蟀舞“; jsonObject.put“sex“, “男“; jsonObject.put“password“, “55555555“; jsonObject.put“major“, “数字媒体与技术“; } catchcatch JSONException e { e.printStackTrace; } returnreturn jsonObject.toString; } 然后在然后在 doGetdoGet 方法中返回该数据方法中返回该数据 String temp toJson; resp.getOutputStream.writetemp.getBytes“utf-8“; resp.setContentType“text/json;charsetutf-8“; // resp.getWriter.printtemp;//也是输出的一种办法 在在 doPostdoPost 方法中调用方法中调用 doGetdoGet 方法方法doGetreq, resp;doGetreq, resp; 3 3、、 然后配置然后配置 WebRootWebRoot 目录下的目录下的 WEB-INFWEB-INF 里的里的 web.xmlweb.xml,在,在web-appweb-app 节点里输入节点里输入 以下配置信息以下配置信息 Json_Serialize com.zstu.practice.Json_Serialize Json_Serialize /Json_Serialize 4 4、、 然后将该工程部署到服务器上,在浏览器中访问该工程的地址然后将该工程部署到服务器上,在浏览器中访问该工程的地址 http//localhost8080/Practice/Json_Serializehttp//localhost8080/Practice/Json_Serialize 成功后可以访问到如下内容成功后可以访问到如下内容 补充补充 刚才写的是一条刚才写的是一条 jsonObjectjsonjsonObjectjson 对象对象 数据,数据, 现在来写一条现在来写一条 jsonArrayjsonjsonArrayjson 数组数组 数据数据; ; 应用举例应用举例 jsonObjectjsonObject可以用于返回查询可以用于返回查询具体某个学号具体某个学号的单个学生数据的单个学生数据 jsonArrayjsonArray可以用于返回查询可以用于返回查询具体某个专业具体某个专业的所有学生数据的所有学生数据 先改写下原来的先改写下原来的 toJsonObjecttoJsonObject 方法方法 /** * 写json数据出来,类型jsonObject * */ publicpublic JSONObject toJsonObject { JSONObject jsonObject newnew JSONObject; trytry { jsonObject.put“studentId“, “2012329700030“; jsonObject.put“name“, “龙隆蟀舞“; jsonObject.put“sex“, “男“; jsonObject.put“age“, “18“; jsonObject.put“major“, “数字媒体与技术“; } catchcatch JSONException e { e.printStackTrace; } //返回数据 returnreturn jsonObject; } 在写一个生成在写一个生成 jsonArrayjsonArray 的方法的方法 /** * 写json数据出来,类型jsonArray * */ publicpublic String toJsonArray { JSONArray jsonArray newnew JSONArray; // 放入一层对象数据 jsonArray.puttoJsonObject; // 返回数据 returnreturn jsonArray.toString; } 至此,服务端至此,服务端 jsonjson 格式的数据生成讲解完毕。格式的数据生成讲解完毕。 安卓端(数据请求得到安卓端(数据请求得到 JosnJosn)) 写一个写一个 httphttp 请求的基类包括请求的基类包括 GETGET 和和 POSTPOST 两种方式;两种方式; 首先,最简单的首先,最简单的 GETGET 方式方式 /** * 得到 Json 的字符串,通过 GET 方式 * * param url_path * return */ public static String getJsonGETString url_path { String text ““; // 定义要返回的字符串 try { URL url new URLurl_path; HttpURLConnection conn HttpURLConnection url.openConnection;// 获取连接 conn.setRequest“GET“;// 请求的方式为 GET conn.setConnectTimeout4000;// 设置连接超时 int statusCode conn.getResponseCode;// 获得状态码 if statusCode 200 { Stream is conn.getStream;// 输入流 text getStringFromStreamis;// 得到结果 return text; } else { text “timeout“; return text; } }