Android Tomcatのアプリケーションのクライアント部分
最近はクライアントのログイン部分を作るため、最后にTomcatをservletサーバーとして、MySQLをデータベースとして、今日はクライアントの部分を书いて、主にAndroidのネットのプログラミング部分で、サーバーの端のプログラミングは明日また书くようにしましょう、今日は少し疲れました.
まず、レイアウトファイルです.次のようにします.
まず、レイアウトファイルです.次のようにします.
<?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" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<TableLayout >
<TableRow >
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nameStr"/>
<EditText
android:id="@+id/et_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</TableRow>
<TableRow >
<TextView
android:id="@+id/tv_passwd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/passwdStr"/>
<EditText
android:id="@+id/et_passwd"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:password="true"/>
</TableRow>
<TableRow >
<Button
android:id="@+id/btn_confirm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_confirm"/>
<Button
android:id="@+id/btn_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_cancel"/>
</TableRow>
</TableLayout>
</LinearLayout>
それからネットワークプログラミングの部分を行います.post方式を使うに違いありません.この部分は個別のツールクラスを作ります.見てください.package com.chenlong12580.app.tomcat;
import java.io.IOException;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
public class HttpUtil {
// URL
public static final String BASE_URL="http://222.20.60.132:8080/WebRoot/";
// Get request
public static HttpGet getHttpGet(String url){
HttpGet request = new HttpGet(url);
return request;
}
// Post request
public static HttpPost getHttpPost(String url){
HttpPost request = new HttpPost(url);
return request;
}
// response
public static HttpResponse getHttpResponse(HttpGet request) throws ClientProtocolException, IOException{
HttpResponse response = new DefaultHttpClient().execute(request);
return response;
}
// response
public static HttpResponse getHttpResponse(HttpPost request) throws ClientProtocolException, IOException{
HttpResponse response = new DefaultHttpClient().execute(request);
return response;
}
// Post ,
public static String queryStringForPost(String url){
// url HttpPost
HttpPost request = HttpUtil.getHttpPost(url);
String result = null;
try {
//
HttpResponse response = HttpUtil.getHttpResponse(request);
//
if(response.getStatusLine().getStatusCode()==200){
//
result = EntityUtils.toString(response.getEntity());
return result;
}
} catch (ClientProtocolException e) {
e.printStackTrace();
result = " !";
return result;
} catch (IOException e) {
e.printStackTrace();
result = " !";
return result;
}
return null;
}
//
public static String queryStringForPost(HttpPost request){
String result = null;
try {
//
HttpResponse response = HttpUtil.getHttpResponse(request);
//
if(response.getStatusLine().getStatusCode()==200){
//
result = EntityUtils.toString(response.getEntity());
return result;
}
} catch (ClientProtocolException e) {
e.printStackTrace();
result = " !";
return result;
} catch (IOException e) {
e.printStackTrace();
result = " !";
return result;
}
return null;
}
// Get ,
public static String queryStringForGet(String url){
// HttpGet
HttpGet request = HttpUtil.getHttpGet(url);
String result = null;
try {
//
HttpResponse response = HttpUtil.getHttpResponse(request);
//
if(response.getStatusLine().getStatusCode()==200){
//
result = EntityUtils.toString(response.getEntity());
return result;
}
} catch (ClientProtocolException e) {
e.printStackTrace();
result = " !";
return result;
} catch (IOException e) {
e.printStackTrace();
result = " !";
return result;
}
return null;
}
}
は最後にActivityの中で機能を実現しました.つまり、ボタンを設定するイベントリスナーです.以下のようにします.package com.chenlong12580.app.tomcat;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class TomcatActivity extends Activity {
/** Called when the activity is first created. */
private EditText et_name, et_passwd;
private Button btn_confirm, btn_cancel;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
et_name = (EditText)findViewById(R.id.et_name);
et_passwd = (EditText)findViewById(R.id.et_passwd);
btn_confirm = (Button)findViewById(R.id.btn_confirm);
btn_cancel = (Button)findViewById(R.id.btn_cancel);
btn_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
btn_confirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String queryStr = "username=" + et_name.getText().toString()
+"&password=" + et_passwd.getText().toString();
String urlStr = HttpUtil.BASE_URL+"servlet/tomcat?"+queryStr;
String result = HttpUtil.queryStringForPost(urlStr);
if(result != null) {
showDialog(" !");
}else {
showDialog(" !");
}
}
});
}
private void showDialog(String str) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(str).setPositiveButton(" ", null);
AlertDialog dialog = builder.create();
dialog.show();
}
}
はまだテストできません.明日サーバー側に書いてからテストしましょう.