Android客户端向SSH服务器发送数据主要有三种情况:通过客户端删除数据、添加数据和修改数据。

1.删除数据

先看看jsp文件里面是怎样删除数据的:

<td align="center"><a href="clasdelete.action?id=<s:property value='#st.id'/>" onclick="if(!window.confirm('是否删除'))return false;" >删除</a>

也就是说,只要向服务器发出一个HTTP请求,包含clasdelete.action?id=(要删除的记录id),就可以实现记录的删除。因此,首先通过点击按钮事件获得要删除的记录的ID,然后再启动一个线程向服务器发出HTTP请求即可。

        // 点击删除按钮        my_item.btnDel.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                Var.id = my_item.txtNum.getText().toString();                Var.type = 2;                Var.delThread = new CommThread();                Var.delThread.start();            }        });

删除数据的功能和向服务器请求数据的功能可以在一个线程类里面实现,因为它们除了请求的URL不同,其他的操作基本上都是一样的。

        // 删除数据        else if (Var.type == 2){            Var.strAct ="clasdelete.action?id=" + Var.id;            Var.strURL = Var.strHost + Var.strAct;            resIS = getIS(Var.strURL);        }

2.添加数据

先看看在jsp文件里面是如何实现添加数据的:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>添加课程</title>   </head>  <body>   <center>     <s:form action="clas" method="post" >     <tr>       <td colspan="2" align="center">         <h1><s:text name="欢迎添加课程"/></h1><br/>         <s:property value="exception.message"/>       </td>     </tr>     <s:textfield name="clas.name" key="课程名称"       tooltip="Enter class name!" required="true"></s:textfield>       <s:textfield name="clas.comment" key="课程介绍"       tooltip="Enter the comment!" required="true"></s:textfield>      <s:submit value="提交"/>     <s:set/>     </s:form>   </center>   </body></html>

也就是说,只要向服务器提交clas.name、clas.comment两个变量的值就可以了。在Android客户端,只能通过NameValuePair[]数组向服务器提交变量的值。新建一个线程类,把变量的名称和值放进NameValuePair[]数组,再向服务器提交就可以了。

        public void add(){                Var.strAct = "clas";        Var.strURL = Var.strHost + Var.strAct;        Log.i("PostThread:", Var.strURL);        // 建立HTTPPost连接        HttpPost httpRequest = new HttpPost(Var.strURL);        // 变量用NameValuePair[]数组储存         List <NameValuePair> params = new ArrayList <NameValuePair>();        params.add(new BasicNameValuePair("clas.name", AddActivity.txtName));        params.add(new BasicNameValuePair("clas.comment", AddActivity.txtComm));        try{            // 发出HTTPRequest            httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));            // 取得HTTPResponse            HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);            // 状态码为200表明成功            if(httpResponse.getStatusLine().getStatusCode() == 200)                {                   sendMessage(Var.msg_add, "");            }            else{                sendMessage(Var.msg_error,httpResponse.getStatusLine().toString());            }        }        // 出错处理        catch (ClientProtocolException e){            e.printStackTrace();            sendMessage(Var.msg_error, e.toString());        }        catch (IOException e){            e.printStackTrace();            sendMessage(Var.msg_error,e.toString());        }        catch (Exception e){            e.printStackTrace();            sendMessage(Var.msg_error,e.toString());        }            }

3.修改数据

修改数据和删除数据类似,也是把变量名称和值放进NameValuePair[]数组,再向服务器提交就可以了。

    // 修改数据    public void update(){                Var.strAct = "clasupdate";        Var.strURL = Var.strHost + Var.strAct;        Log.i("PostThread:", Var.strURL);        // 建立HTTPPost连接        HttpPost httpRequest = new HttpPost(Var.strURL);        // Post变量用NameValuePair[]数组储存         List <NameValuePair> params = new ArrayList <NameValuePair>();        params.add(new BasicNameValuePair("clas.id", UpdateActivity.txtID));        params.add(new BasicNameValuePair("clas.name", UpdateActivity.txtName));        params.add(new BasicNameValuePair("clas.comment", UpdateActivity.txtComm));        try{            // 发出HTTPRequest            httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));            // 取得HTTPResponse            HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);            // 状态码为200表明成功            if(httpResponse.getStatusLine().getStatusCode() == 200)                {                   sendMessage(Var.msg_update, "");            }            else{                sendMessage(Var.msg_error,httpResponse.getStatusLine().toString());            }        }        // 出错处理        catch (ClientProtocolException e){            e.printStackTrace();            sendMessage(Var.msg_error, e.toString());        }        catch (IOException e){            e.printStackTrace();            sendMessage(Var.msg_error,e.toString());        }        catch (Exception e){            e.printStackTrace();            sendMessage(Var.msg_error,e.toString());        }            }

更多相关文章

  1. android多线程访问服务器数据
  2. Android(安卓)P解决Socket通信Tcp粘包问题
  3. android学习笔记之十二进程通信(IPC)
  4. android ListView 中getview学习总结
  5. android 访问 OData
  6. 20172321 2017-2018-2 《程序设计与数据结构》第11周学习总结
  7. Android(安卓)通过NTP服务器自动获取时间的方法
  8. push研究――Apache Mina探索初步
  9. 【转】Android深入探究笔记之三 -- Intent (隐式意图和显示意图)

随机推荐

  1. 腾讯微博Android客户端开发——自动获取
  2. 开源一款android 偷拍 app【静拍】豌豆荚
  3. Android实现甘特图(GanttChart)效果
  4. android手机定位
  5. android webview增强版,对原生webview的一
  6. 读写Android中assets目录下的文件的方法
  7. 如何实现Android应用的启动画面(闪屏)?
  8. Android—启动内置APK和动态发送接收自定
  9. 浅谈android @id和@+id的区别
  10. android的消息机制 handler looper Messa