Android与(Servlet)服务器交互
来源:互联网 发布:免费门户网站模板源码 编辑:程序博客网 时间:2024/04/30 14:25
package com.rocky;import java.io.ByteArrayInputStream;import java.io.DataInputStream;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.apache.http.protocol.HTTP;import org.apache.http.util.EntityUtils;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;/*** * @author huangshuhao *思路: *把参数传给一个Uri,当该Uri接受到由post或get方法传过了的 *参数后,就交由一个Servlet来处理这些参数,类似网页中处理 *一样,都是提交参数后由Servlet来接受并处理 */public class LoginActivity extends Activity {private static final int REQUEST_CODE = 2;HttpPost httpRequest=new HttpPost(UriAPI.HTTPCustomer);Button loginButton;Button cancael;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main2);loginButton=(Button) findViewById(R.id.login);//注册监听器对象loginButton.setOnClickListener(new OnClickListener(){CharSequence username="";CharSequence password="";public void onClick(View v){//准备需要提交的数据,从手机界面抓取下来EditText ev_username =(EditText)findViewById(R.id.username);username=ev_username.getText();EditText ev_password=(EditText)findViewById(R.id.password);password=ev_password.getText();if(! username.equals("")&&! password.equals("")){//创建HttpPost 对象,传入一个UriHttpPost httpRequest =new HttpPost (UriAPI.HTTPCustomer);//创建参数List<NameValuePair> params=new ArrayList<NameValuePair>();params.add(new BasicNameValuePair("username", username.toString()));params.add (new BasicNameValuePair("password", password.toString()));params.add(new BasicNameValuePair("flag","0"));try{//设置编码格式httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));//提交HttpPost对象和获取服务器HttpResponse响应数据完成HttpResponse httpResponse=new DefaultHttpClient().execute(httpRequest);//获取响应服务器的数据if(httpResponse.getStatusLine().getStatusCode()==200){//利用字节数组流和包装的绑定技术byte[] data = new byte[2048];//先把从服务端来的数据转化成字节数组data =EntityUtils. toByteArray((HttpEntity)httpResponse.getEntity());//再创建字节数组输入流对象ByteArrayInputStream bais = new ByteArrayInputStream(data);//绑定字节流和数据包装流DataInputStream dis = new DataInputStream(bais);//将字节数组中的数据还原成原来的各种数据类型,代码如下:String user = new String(dis.readUTF());}}catch(ClientProtocolException e){e.printStackTrace();}catch(UnsupportedEncodingException e){e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}});}public class UriAPI {/** 定义一个Uri **/public static final String HTTPCustomer ="http://192.168.157.100:8028/JSHWDemo/servlet/CustomerServlet";}}
服务器端代码
import java.io.DataOutputStream;public class CustomerServlet extends HttpServlet {public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {String username=request.getParameter("username");String password=request.getParameter("password");response.setContentType(CONTENT_TYPE);try{ //做登录判断后返回的结果 customer = cusDao.login(username,password); DataOutputStream output = new DataOutputStream(response.getOutputStream());if(customer! =null){ //登录成功,向手机写数据//output.writeUTF(customer.getUsername());output.writeUTF("服务器端数据:用户名:" + username);output.writeUTF("服务器端数据:密码:" + password);output.writeInt(1);output.close();}else {//登录失败output.writeUTF("No");}}catch(Exception e){e.printStackTrace();}}}
注释已经很清楚了,看注释吧,如果还不行就看<Android手机访问服务器的一种数据交互方法.pdf>
http://wenku.baidu.com/view/e99cc78ca0116c175f0e4842.html
- Android与(Servlet)服务器交互
- android服务器与客户端交互之servlet
- android客户端与servlet服务器交互简单示例
- android 与服务器交互
- Android与服务器交互
- Android与服务器交互
- Android和服务器servlet的简单交互
- android客户端 与服务器交互
- Android与PHP服务器交互
- android与webservice服务器交互
- Android 客户端与服务器交互
- Android与PHP服务器交互
- Android与PHP服务器交互
- Android与PHP服务器交互
- android HttpClient与服务器交互
- Android与服务器交互数据
- Android与服务器进行交互
- 理解android与服务器交互
- android学习笔记一(基础篇)
- Javascript 获取Url《各种获取》
- smarty 内建函数
- VMware网络连接:桥接、NAt、host-only模式
- 让VIM与Ubuntu和睦相处
- Android与(Servlet)服务器交互
- 带有微型投影机功能的手机:用?还是不用?(视频)
- 一个Linux下C线程池的实现
- Ubuntu下配置一个高效的PHP开发环境GVIM
- CentOS 6安装DHCP
- 【android学习之十六】——特色功能1:GoogleMap手机地图
- Linux 线程同步机制:互斥、读写锁、条件变量
- 2012校招之威盛电子(武汉补招)四面+offer
- Visual Studio 遇到了异常。这可能是由某个扩展导致的。