登录注册实现(服务器数据)

时间:2022-09-11 23:20:15
  1 <?xml version="1.0" encoding="utf-8"?>
  2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3     android:layout_width="fill_parent"
  4     android:layout_height="fill_parent"
  5     android:orientation="vertical"
  6     android:background="@drawable/bg_01">"
  7     
  8       <TextView 
  9         android:layout_width="wrap_content"
 10         android:layout_height="wrap_content"
 11         android:text="注册"
 12         android:textSize="22dip"
 13         android:textColor="#FFFFFF"
 14         android:paddingLeft="140dip"
 15         android:paddingRight="50dip"
 16         android:paddingTop="10dip"
 17         android:background="@drawable/topbg"
 18         />
 19     "
 20     <EditText 
 21         android:id="@+id/register_username"
 22         android:layout_width="wrap_content"
 23         android:layout_height="wrap_content"
 24         android:layout_marginTop="20dip"
 25         android:background="@drawable/search" 
 26         android:layout_marginLeft="20dip"
 27         android:layout_marginRight="20dip"
 28         android:height="40dip"
 29         android:hint="用户名"
 30         />
 31 
 32      <EditText 
 33         android:id="@+id/register_passwd"
 34         android:layout_width="wrap_content"
 35         android:layout_height="wrap_content"
 36         android:layout_marginTop="20dip"
 37         android:background="@drawable/search" 
 38         android:layout_marginLeft="20dip"
 39         android:layout_marginRight="20dip"
 40         android:height="40dip"
 41         android:hint="密码"
 42         />
 43     
 44       <EditText 
 45         android:id="@+id/reregister_passwd"
 46         android:layout_width="wrap_content"
 47         android:layout_height="wrap_content"
 48         android:layout_marginTop="20dip"
 49         android:background="@drawable/search" 
 50         android:layout_marginLeft="20dip"
 51         android:layout_marginRight="20dip"
 52         android:height="40dip"
 53         android:hint="确认密码"
 54         />
 55       <Button 
 56           android:id="@+id/register_submit"
 57           android:layout_width="wrap_content"
 58           android:layout_height="wrap_content"
 59           android:background="@drawable/topbg"
 60           android:height="40dip"
 61           android:width="70dip"
 62           android:layout_marginTop="60dip"
 63           android:text="确定"
 64           android:textColor="#FFFFFF"
 65           android:textSize="22dip"
 66       
 67           />
 68      
 69 </LinearLayout>
 70 
 71 处理注册页面的Activity:
 72 
 73 package com.example.foreveross.office;
 74 
 75 import java.io.IOException;
 76 import java.io.UnsupportedEncodingException;
 77 import java.util.ArrayList;
 78 import java.util.List;
 79 
 80 import org.apache.http.HttpEntity;
 81 import org.apache.http.HttpResponse;
 82 import org.apache.http.NameValuePair;
 83 import org.apache.http.ParseException;
 84 import org.apache.http.client.ClientProtocolException;
 85 import org.apache.http.client.HttpClient;
 86 import org.apache.http.client.entity.UrlEncodedFormEntity;
 87 import org.apache.http.client.methods.HttpPost;
 88 import org.apache.http.impl.client.DefaultHttpClient;
 89 import org.apache.http.message.BasicNameValuePair;
 90 import org.apache.http.util.EntityUtils;
 91 
 92 import com.example.wenandroid.R;
 93 import android.app.Activity;
 94 import android.os.Bundle;
 95 import android.os.StrictMode;
 96 import android.view.View;
 97 import android.view.View.OnClickListener;
 98 import android.view.View.OnFocusChangeListener;
 99 import android.widget.Button;
100 import android.widget.EditText;
101 import android.widget.Toast;
102 
103 public class UserRegister extends Activity {
104  
105 private EditText register_username;
106 private EditText register_passwd;
107 private EditText reregister_passwd;
108 private Button register_submit;
109     @Override
110     protected void onCreate(Bundle savedInstanceState) {
111         // TODO Auto-generated method stub
112         super.onCreate(savedInstanceState);
113         StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
114         StrictMode.setThreadPolicy(policy);
115         setContentView(R.layout.user_register);
116         register_username=(EditText)findViewById(R.id.register_username);
117         register_passwd=(EditText)findViewById(R.id.register_passwd);
118         reregister_passwd=(EditText)findViewById(R.id.reregister_passwd);
119         register_submit=(Button)findViewById(R.id.register_submit);
120         register_username.setOnFocusChangeListener(new OnFocusChangeListener()
121         {
122 
123             @Override
124             public void onFocusChange(View v, boolean hasFocus) {
125                 // TODO Auto-generated method stub
126                 if(!hasFocus){
127                     if(register_username.getText().toString().trim().length()<4){
128                         Toast.makeText(UserRegister.this, "用户名不能小于4个字符", Toast.LENGTH_SHORT).show();
129                     }
130                 }
131             }
132             
133         });
134         register_passwd.setOnFocusChangeListener(new OnFocusChangeListener()
135         {
136 
137             @Override
138             public void onFocusChange(View v, boolean hasFocus) {
139                 // TODO Auto-generated method stub
140                 if(!hasFocus){
141                     if(register_passwd.getText().toString().trim().length()<6){
142                         Toast.makeText(UserRegister.this, "密码不能小于8个字符", Toast.LENGTH_SHORT).show();
143                     }
144                 }
145             }
146             
147         });
148         reregister_passwd.setOnFocusChangeListener(new OnFocusChangeListener()
149         {
150 
151             @Override
152             public void onFocusChange(View v, boolean hasFocus) {
153                 // TODO Auto-generated method stub
154                 if(!hasFocus){
155                     if(!reregister_passwd.getText().toString().trim().equals(register_passwd.getText().toString().trim())){
156                         Toast.makeText(UserRegister.this, "两次密码输入不一致", Toast.LENGTH_SHORT).show(); 
157                     }
158                 }
159             }
160             
161         });
162         register_submit.setOnClickListener(new OnClickListener(){
163 
164             @Override
165             public void onClick(View v) {
166                 
167                 if(!checkEdit()){
168                     return;
169                 }
170                 // TODO Auto-generated method stub
171                 String httpUrl="http://192.168.1.100:8080/web-test/register.jsp";
172                 HttpPost httpRequest=new HttpPost(httpUrl);
173                 List<NameValuePair> params=new ArrayList<NameValuePair>();
174                 params.add(new BasicNameValuePair("username",register_username.getText().toString().trim()));
175                 params.add(new BasicNameValuePair("password",register_passwd.getText().toString().trim()));
176                 HttpEntity httpentity = null;
177                 try {
178                     httpentity = new UrlEncodedFormEntity(params,"utf8");
179                 } catch (UnsupportedEncodingException e) {
180                     // TODO Auto-generated catch block
181                     e.printStackTrace();
182                 }
183                 httpRequest.setEntity(httpentity);
184                 HttpClient httpclient=new DefaultHttpClient();
185                 HttpResponse httpResponse = null;
186                 try {
187                     httpResponse = httpclient.execute(httpRequest);
188                 } catch (ClientProtocolException e) {
189                     // TODO Auto-generated catch block
190                     e.printStackTrace();
191                 } catch (IOException e) {
192                     // TODO Auto-generated catch block
193                     e.printStackTrace();
194                 }
195                 if(httpResponse.getStatusLine().getStatusCode()==200)
196                 {
197                     String strResult = null;
198                     try {
199                         strResult = EntityUtils.toString(httpResponse.getEntity());
200                     } catch (ParseException e) {
201                         // TODO Auto-generated catch block
202                         e.printStackTrace();
203                     } catch (IOException e) {
204                         // TODO Auto-generated catch block
205                         e.printStackTrace();
206                     }
207                     Toast.makeText(UserRegister.this, strResult, Toast.LENGTH_SHORT).show();
208                 }
209                 else
210                 {
211                     Toast.makeText(UserRegister.this, "请求错误", Toast.LENGTH_SHORT).show();
212                 }
213                 
214             }
215             
216         });
217     }
218     
219     private boolean checkEdit(){
220         if(register_username.getText().toString().trim().equals("")){
221             Toast.makeText(UserRegister.this, "用户名不能为空", Toast.LENGTH_SHORT).show();
222         }else if(register_passwd.getText().toString().trim().equals("")){
223             Toast.makeText(UserRegister.this, "密码不能为空", Toast.LENGTH_SHORT).show();
224         }else if(!register_passwd.getText().toString().trim().equals(reregister_passwd.getText().toString().trim())){
225             Toast.makeText(UserRegister.this, "两次密码输入不一致", Toast.LENGTH_SHORT).show();
226         }else{
227             return true;
228         }
229         return false;
230     }
231     
232 }
233 
234 登录页面xml:
235 
236 user_login.xml:
237 
238 <?xml version="1.0" encoding="utf-8"?>
239 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
240     android:layout_width="fill_parent"
241     android:layout_height="fill_parent"
242     android:orientation="vertical" 
243     android:background="@drawable/bg_01">
244     
245     <TextView 
246         android:layout_width="wrap_content"
247         android:layout_height="wrap_content"
248         android:text="登录"
249         android:textSize="22dip"
250         android:textColor="#FFFFFF"
251         android:paddingLeft="140dip"
252         android:paddingRight="50dip"
253         android:paddingTop="10dip"
254         android:background="@drawable/topbg"
255         />
256     
257     <LinearLayout
258     android:layout_width="fill_parent"
259     android:layout_height="wrap_content"
260     android:orientation="vertical" >
261         
262         <EditText
263         android:id="@+id/login_username"
264         android:layout_width="fill_parent"
265         android:layout_height="40dip"
266         android:layout_marginLeft="20dip"
267         android:layout_marginRight="20dip"
268         android:layout_marginTop="30dip"
269         android:hint="用户名"
270         android:paddingTop="10dip"
271         android:textSize="18dip"
272         android:background="@drawable/search">
273             
274         </EditText>
275         
276         <EditText
277         android:id="@+id/login_password"
278         android:layout_width="fill_parent"
279         android:layout_height="40dip"
280         android:layout_marginLeft="20dip"
281         android:layout_marginRight="20dip"
282         android:layout_marginTop="10dip"
283         android:password="true"
284         android:paddingTop="10dip"
285         android:textSize="18dip"
286         android:hint="密码"
287         android:background="@drawable/search">
288             
289         </EditText>
290     </LinearLayout>
291 
292      <LinearLayout
293     android:layout_width="fill_parent"
294     android:layout_height="wrap_content"
295     android:layout_gravity="center_horizontal"
296     android:layout_marginTop="15dip">
297 
298          <CheckBox
299              android:id="@+id/cb1"
300              android:layout_width="wrap_content"
301              android:layout_height="wrap_content"
302              android:layout_marginLeft="50dip"
303              android:layout_marginRight="30dip"
304              android:text="记住密码" 
305              android:button="@drawable/checkbox_icon_no" />"
306          <CheckBox
307              android:id="@+id/cb2"
308              android:layout_width="wrap_content"
309              android:layout_height="wrap_content"
310              android:text="自动登录" 
311              android:paddingRight="50dip"
312              android:button="@drawable/checkbox_icon_no"/>
313         </LinearLayout>
314         
315      <LinearLayout
316     android:layout_width="fill_parent"
317     android:layout_height="wrap_content"
318     android:layout_gravity="center_horizontal"
319     android:layout_marginTop="20dip">
320          <Button 
321              android:id="@+id/user_login_button"
322              android:layout_width="wrap_content"
323              android:layout_height="wrap_content"
324              android:text="登录"
325              android:layout_marginLeft="50dip"
326              android:textColor="#F7FBFD"
327              android:background="#FF0000"
328              android:width="70dip"
329              android:height="40dip"
330              android:textSize="18dip"
331              />
332          
333             <Button 
334              android:id="@+id/user_register_button"
335              android:layout_width="wrap_content"
336              android:layout_height="wrap_content"
337              android:text="注册"
338              android:layout_marginLeft="50dip"
339              android:textColor="#F7FBFD"
340              android:width="70dip"
341              android:height="40dip"
342              android:background="#0F9000"
343              android:textSize="18dip"
344              />
345          
346      </LinearLayout>
347      
348 </LinearLayout>
349 
350 登录页面Activity:
351 
352 package com.example.foreveross.office;
353 
354 import java.io.IOException;
355 import java.io.UnsupportedEncodingException;
356 import java.util.ArrayList;
357 import java.util.List;
358 
359 import org.apache.http.HttpEntity;
360 import org.apache.http.HttpResponse;
361 import org.apache.http.NameValuePair;
362 import org.apache.http.ParseException;
363 import org.apache.http.client.ClientProtocolException;
364 import org.apache.http.client.HttpClient;
365 import org.apache.http.client.entity.UrlEncodedFormEntity;
366 import org.apache.http.client.methods.HttpPost;
367 import org.apache.http.impl.client.DefaultHttpClient;
368 import org.apache.http.message.BasicNameValuePair;
369 import org.apache.http.util.EntityUtils;
370 
371 import com.example.wenandroid.R;
372 import android.app.Activity;
373 import android.content.Intent;
374 import android.os.Bundle;
375 import android.os.StrictMode;
376 import android.view.View;
377 import android.view.View.OnClickListener;
378 import android.view.View.OnFocusChangeListener;
379 import android.widget.Button;
380 import android.widget.EditText;
381 import android.widget.Toast;
382 
383 public class UserLogin extends Activity implements OnClickListener {
384 private EditText login_username;
385 private EditText login_password;
386 private Button user_login_button;
387 private Button user_register_button;
388 
389     @Override
390 protected void onCreate(Bundle savedInstanceState) {
391     super.onCreate(savedInstanceState);
392     StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
393     StrictMode.setThreadPolicy(policy);
394     setContentView(R.layout.user_login);
395     initWidget();
396 
397 }
398     private void initWidget()
399     {
400         login_username=(EditText)findViewById(R.id.login_username);
401         login_password=(EditText)findViewById(R.id.login_password);
402         user_login_button=(Button)findViewById(R.id.user_login_button);
403         user_register_button=(Button)findViewById(R.id.user_register_button);
404         user_login_button.setOnClickListener(this);
405         user_register_button.setOnClickListener(this);
406         login_username.setOnFocusChangeListener(new OnFocusChangeListener()
407         {
408 
409             @Override
410             public void onFocusChange(View v, boolean hasFocus) {
411                 // TODO Auto-generated method stub
412                 if(!hasFocus){
413                     String username=login_username.getText().toString().trim();
414                     if(username.length()<4){
415                         Toast.makeText(UserLogin.this, "用户名不能小于4个字符", Toast.LENGTH_SHORT);
416                     }
417                 }
418             }
419             
420         });
421         login_password.setOnFocusChangeListener(new OnFocusChangeListener()
422         {
423 
424             @Override
425             public void onFocusChange(View v, boolean hasFocus) {
426                 // TODO Auto-generated method stub
427                 if(!hasFocus){
428                     String password=login_password.getText().toString().trim();
429                     if(password.length()<4){
430                         Toast.makeText(UserLogin.this, "密码不能小于4个字符", Toast.LENGTH_SHORT);
431                     }
432                 }
433             }
434             
435         });
436     }
437     
438 
439     @Override
440     public void onClick(View v) {
441         // TODO Auto-generated method stub
442         switch(v.getId())
443         {
444         case R.id.user_login_button:
445             if(checkEdit())
446             {
447                 login();
448             }
449             
450             break;
451         case R.id.user_register_button:
452             Intent intent2=new Intent(UserLogin.this,UserRegister.class);
453             startActivity(intent2);
454             break;
455         }
456     }
457     
458     private boolean checkEdit(){
459         if(login_username.getText().toString().trim().equals("")){
460             Toast.makeText(UserLogin.this, "用户名不能为空", Toast.LENGTH_SHORT).show();
461         }else if(login_password.getText().toString().trim().equals("")){
462             Toast.makeText(UserLogin.this, "密码不能为空", Toast.LENGTH_SHORT).show();
463         }else{
464             return true;
465         }
466         return false;
467     }
468     
469     private void login(){
470         String httpUrl="http://192.168.1.102:8080/web-test/login.jsp";
471         HttpPost httpRequest=new HttpPost(httpUrl);
472         List<NameValuePair> params=new ArrayList<NameValuePair>();
473         params.add(new BasicNameValuePair("username",login_username.getText().toString().trim()));
474         params.add(new BasicNameValuePair("password",login_password.getText().toString().trim()));
475         HttpEntity httpentity = null;
476         try {
477             httpentity = new UrlEncodedFormEntity(params,"utf8");
478         } catch (UnsupportedEncodingException e) {
479             // TODO Auto-generated catch block
480             e.printStackTrace();
481         }
482         httpRequest.setEntity(httpentity);
483         HttpClient httpclient=new DefaultHttpClient();
484         HttpResponse httpResponse = null;
485         try {
486             httpResponse = httpclient.execute(httpRequest);
487         } catch (ClientProtocolException e) {
488             // TODO Auto-generated catch block
489             e.printStackTrace();
490         } catch (IOException e) {
491             // TODO Auto-generated catch block
492             e.printStackTrace();
493         }
494         if(httpResponse.getStatusLine().getStatusCode()==200)
495         {
496             String strResult = null;
497             try {
498                 strResult = EntityUtils.toString(httpResponse.getEntity());
499             } catch (ParseException e) {
500                 // TODO Auto-generated catch block
501                 e.printStackTrace();
502             } catch (IOException e) {
503                 // TODO Auto-generated catch block
504                 e.printStackTrace();
505             }
506             Toast.makeText(UserLogin.this, strResult, Toast.LENGTH_SHORT).show();
507             Intent intent=new Intent(UserLogin.this,IndexActivity.class);
508             startActivity(intent);
509         }
510         else
511         {
512             Toast.makeText(UserLogin.this, "登录失败!", Toast.LENGTH_SHORT).show();
513         }
514         
515     }
516 }