利用简易Tomcat服务器结合MysqL实现Android手机注册与登录(客户端部分)

package com.example.java4androidmysql;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

	public static final String URL = "http://192.168.2.1:8080/JavaRegisterMysql/login";
	
	public static String res="";
    public static String name = "";
    public static String code = "";
    public static String phone =" ";
    public static String chose="0";
	Button connectButton=null;
	Button registerButton=null;
	EditText noteUser=null;
	EditText notePassword=null;	

	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_main);
		
		
		connectButton=(Button)findViewById(R.id.btnConnect);
		registerButton=(Button)findViewById(R.id.btnRegister);
        noteUser=(EditText)findViewById(R.id.editUserName);
        notePassword=(EditText)findViewById(R.id.editPassword);

        //注意类Class DriverManager Statement ResultSet
        
        
        connectButton.setOnClickListener(new View.OnClickListener() {
			
			public void onClick(View v) {
						
			        
			            Toast.makeText(MainActivity.this, "正在登录", Toast.LENGTH_SHORT).show();
			            name = noteUser.getText().toString().trim();
			            code = notePassword.getText().toString().trim();    
			            chose="1";
			            new SubmitAsyncTask().execute(URL);			            

			            Toast.makeText(MainActivity.this, "res = "+res, Toast.LENGTH_SHORT).show();
			            if(res.equals("2")){
			            	Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
			    			//Intent intent=new Intent();
			    			//intent.setClass(MainActivity.this, WriteNote.class);
			    			//MainActivity.this.startActivity(intent);
			            }else if(res.equals("1")){
			            	Toast.makeText(MainActivity.this, "用户名或密码错误", Toast.LENGTH_SHORT).show();
			            }else if(res.equals("3")){
			            	Toast.makeText(MainActivity.this, "注册失败", Toast.LENGTH_SHORT).show();
			            }else if(res.equals("4")){
			            	Toast.makeText(MainActivity.this, "注册成功", Toast.LENGTH_SHORT).show();
			            }else if(res.equals("-1")){
			            	Toast.makeText(MainActivity.this, "网络异常", Toast.LENGTH_SHORT).show();
			            }
					}		
		});
        noteUser.setText("ab");
        notePassword.setText("123456");
        
		registerButton.setOnClickListener(new View.OnClickListener() {
			
			public void onClick(View v) {
									            
						Intent intent=new Intent();
						intent.setClass(MainActivity.this, Register.class);
						MainActivity.this.startActivity(intent);
			                				
					}		
		});
	    
	}
		

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
	
		
}

以上为手机主界面函数调用

package com.example.java4androidmysql;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Register extends Activity{

	public static final String URL = "http://192.168.2.1:8080/JavaRegisterMysql/login";
	Button backButton=null;
	Button registerButton=null;
	EditText user=null;
	EditText password=null;
	EditText phone=null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.register);
		
		backButton=(Button)findViewById(R.id.btnBack);
		registerButton=(Button)findViewById(R.id.btnRegister);
        user=(EditText)findViewById(R.id.editUserName);
        password=(EditText)findViewById(R.id.editPassword);
        phone=(EditText)findViewById(R.id.editPhone);

        //注意类Class DriverManager Statement ResultSet
        
        
        registerButton.setOnClickListener(new View.OnClickListener() {
			
			public void onClick(View v) {						
			            
			            MainActivity.name = user.getText().toString().trim();
			            MainActivity.code = password.getText().toString().trim();
			            MainActivity.phone = phone.getText().toString().trim();
			            MainActivity.chose="2";
			            
			            new SubmitAsyncTask().execute(URL);			         

			            Toast.makeText(Register.this, "res = "+MainActivity.res, Toast.LENGTH_SHORT).show();
			            if(MainActivity.res.equals("2")){
			            	Toast.makeText(Register.this, "登录成功", Toast.LENGTH_SHORT).show();
			    			//Intent intent=new Intent();
			    			//intent.setClass(MainActivity.this, WriteNote.class);
			    			//MainActivity.this.startActivity(intent);
			            }else if(MainActivity.res.equals("1")){
			            	Toast.makeText(Register.this, "用户名或密码错误", Toast.LENGTH_SHORT).show();
			            }else if(MainActivity.res.equals("3")){
			            	Toast.makeText(Register.this, "注册失败", Toast.LENGTH_SHORT).show();
			            }else if(MainActivity.res.equals("4")){
			            	Toast.makeText(Register.this, "注册成功", Toast.LENGTH_SHORT).show();
			            }else if(MainActivity.res.equals("-1")){
			            	Toast.makeText(Register.this, "网络异常", Toast.LENGTH_SHORT).show();
			            }
			                				
					}		
		});
        user.setText("gjw");
        password.setText("123");
        phone.setText("13570236302");
	}

}

以上为注册界面

package com.example.java4androidmysql;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import android.os.AsyncTask;

public class SubmitAsyncTask extends AsyncTask<String, Integer, String>{
    String info = "";
    protected String doInBackground(String... params) {
        // TODO Auto-generated method stub
        String url = params[0];
        String reps = "";            
        reps = doPost(url);
        return reps;
    }

    protected void onPostExecute(String result) {
        // TODO Auto-generated method stub
        MainActivity.res = result.trim();
        super.onPostExecute(result);
    }     

/**
 * 用Post方式跟服务器传递数据
 * @param url
 * @return
 */
private String doPost(String url){
    String responseStr = "";
    try {
    	//发送post类型请求
        HttpPost httpRequest = new HttpPost(url);
        HttpParams params = new BasicHttpParams();
        ConnManagerParams.setTimeout(params, 1000); //从连接池中获取连接的超时时间
        HttpConnectionParams.setConnectionTimeout(params, 3000);//通过网络与服务器建立连接的超时时间
        HttpConnectionParams.setSoTimeout(params, 5000);//读响应数据的超时时间
        httpRequest.setParams(params);
        
        //下面开始跟服务器传递数据,使用BasicNameValuePair
        List<BasicNameValuePair> paramsList = new ArrayList<BasicNameValuePair>();
        
        paramsList.add(new BasicNameValuePair("NAME", MainActivity.name));
        paramsList.add(new BasicNameValuePair("CODE", MainActivity.code));
        paramsList.add(new BasicNameValuePair("PHONE", MainActivity.phone));
        paramsList.add(new BasicNameValuePair("CHOSE", MainActivity.chose));
        
        UrlEncodedFormEntity mUrlEncodeFormEntity = new UrlEncodedFormEntity(paramsList, HTTP.UTF_8);
        httpRequest.setEntity(mUrlEncodeFormEntity);
        
        
        HttpClient httpClient = new DefaultHttpClient();
        HttpResponse httpResponse = httpClient.execute(httpRequest);
        final int ret = httpResponse.getStatusLine().getStatusCode();
        if(ret == HttpStatus.SC_OK){
            responseStr = EntityUtils.toString(httpResponse.getEntity(), HTTP.UTF_8);
        }else{
            responseStr = "-1";
        }

        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
 
        return responseStr;

	}
}

以上为接口类,但写得可能有些不对(如返回变量那里是上次调用的),略忙,等再改一下。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/ab" >

    <TextView
        android:id="@+id/FRppt01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/Title" 
        android:textSize="15pt"
        android:textColor="#FFFFFF"
        android:textStyle="bold"
        android:layout_marginTop="40dp"
        android:gravity="center_horizontal"
        android:padding="3dip"/>
       
	<EditText
        android:id="@+id/editUserName"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="输入用户名"/>
	
	<EditText
        android:id="@+id/editPassword"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="输入密码"/>
    	
      <TableLayout 
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <TableRow>
			    <Button
			        android:id="@+id/btnConnect"
			        android:layout_width="fill_parent"
			        android:layout_height="wrap_content"
			        android:text="登录"
			        android:layout_marginTop="260dp"			       
			        android:layout_weight="1" />
			    <Button
			        android:id="@+id/btnRegister"
			        android:layout_width="fill_parent"
			        android:layout_height="wrap_content"
			        android:text="注册" 
			        android:layout_marginTop="260dp"			       
			        android:layout_weight="1"/>"
		    </TableRow>
	     </TableLayout>

</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/ab" >

    <TextView
        android:id="@+id/FRppt01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/RegisterPage" 
        android:textSize="15pt"
        android:textColor="#FFFFFF"
        android:textStyle="bold"
        android:layout_marginTop="40dp"
        android:gravity="center_horizontal"
        android:padding="3dip"/>
    
    <TableLayout
		android:layout_below="@id/FRppt01" 
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:stretchColumns="1"
		android:layout_marginLeft="10dip"
		android:layout_marginRight="10dip"
		>
		<TableRow 
		    android:layout_width="fill_parent"
		    android:layout_height="wrap_content"
		    android:layout_marginBottom="5dip">
    
		    <TextView 
		        android:id="@+id/textUserName"
		        android:layout_width="wrap_content"
		        android:layout_height="wrap_content"
		        android:textSize="12pt"
		        android:layout_weight="1"
		        android:layout_below="@id/FRppt01"
		        android:text="@string/userName"/>"
			<EditText
		        android:id="@+id/editUserName"
		        android:layout_width="fill_parent"
		        android:layout_height="wrap_content"
		        android:layout_weight="1"
		        />
		</TableRow>
		<TableRow 
		    android:layout_width="fill_parent"
		    android:layout_height="wrap_content"
		    android:layout_marginBottom="5dip">
			<TextView 
		        android:id="@+id/textPassword"
		        android:layout_width="wrap_content"
		        android:layout_height="wrap_content"
		        android:layout_weight="1"
		        android:textSize="12pt"
		        android:text="@string/passWord"/>
			<EditText
		        android:id="@+id/editPassword"
		        android:layout_width="fill_parent"
		        android:layout_height="wrap_content"
		        android:layout_weight="1"
		        />
		</TableRow>
		<TableRow 
		    android:layout_width="fill_parent"
		    android:layout_height="wrap_content"
		    android:layout_marginBottom="5dip">		    	
			<TextView 
		        android:id="@+id/textPhone"
		        android:layout_width="wrap_content"
		        android:layout_height="wrap_content"
		        android:layout_weight="1"
		        android:textSize="12pt"
		        android:text="@string/phone"/>
			<EditText
		        android:id="@+id/editPhone"
		        android:layout_width="fill_parent"
		        android:layout_height="wrap_content"
		        android:layout_weight="1"		        
		        />
		</TableRow>
	</TableLayout>
		
      <TableLayout 
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            >

          <TableRow>

              <Button
                  android:id="@+id/btnBack"
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:layout_marginTop="260dp"
                  android:layout_weight="1"
                  android:text="@string/Back" />

              <Button
                  android:id="@+id/btnRegister"
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:layout_marginTop="260dp"
                  android:layout_weight="1"
                  android:text="@string/Register" />
          </TableRow>

	     </TableLayout>

</RelativeLayout>

以上两段代码为布局文件代码。

转载于:https://my.oschina.net/u/262922/blog/268624

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值