在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例Android平台开发 → 通过Android客户端访问web服务器,实现一个登录功能,服务端+数据库+安卓端- 注册登录

通过Android客户端访问web服务器,实现一个登录功能,服务端+数据库+安卓端- 注册登录

Android平台开发

下载此实例
  • 开发语言:Java
  • 实例大小:6.08M
  • 下载次数:218
  • 浏览次数:7480
  • 发布时间:2015-12-19
  • 实例类别:Android平台开发
  • 发 布 人:你哈扭头
  • 文件格式:.rar
  • 所需积分:2
 相关标签: 注册登录

实例介绍

【实例简介】

实现的功能:通过Android客户端访问web服务器,实现一个登录功能,判断用户输入的用户名与密码是否与数据库的一致。
使用技术:服务端:Struts2 javabean servlet(struts2的)
          客户端:Android 4.0.2
          数据库:MySQL
          数据传输:Json

使用说明:
1、利用MySQL新建数据库,建数据表:usermsg,有两个属性:username、password,字段类型为varchar;
2、将数据库名、用户名、密码,依次写入文件GetConn.java(位于\json-struts-android-mysql代码文件\服务端\JsonWeb\src\com\dongzi\db)的"connection=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/此处填DB名","DB帐号","DB密码");"
3、如果表名和属性不按第一步建,则要改UserDaoImp.java(位于\json-struts-android-mysql代码文件\服务端\JsonWeb\src\com\dongdbimp)的"PreparedStatement ps=conn.prepareStatement("select * from usermsg where username=? and password=?");"
4、利用MyEclipse导入工程(JsoWeb),步骤大概是file\import
5、利用带有Android SDK的Eclipse导入JsonAndroid,该版本为Google API 16.


【实例截图】


【核心代码】

package com.example.jsonandroid;

import java.io.IOException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.StrictMode;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
 //模拟器自己把自己当成localhost了,服务器应该为10.0.2.2
 private static  String url="http://10.0.2.2:8080/JsonWeb/login.action?";
 private final String url_constant="http://10.0.2.2:8080/JsonWeb/login.action?";
 private EditText txUserName;
 private EditText txPassword;
 private Button btnLogin;
    @Override
    public void onCreate(Bundle savedInstanceState) {
    	///在Android2.2以后必须添加以下代码
		//本应用采用的Android4.0
		//设置线程的策略
		 StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()   
         .detectDiskReads()   
         .detectDiskWrites()   
         .detectNetwork()   // or .detectAll() for all detectable problems   
         .penaltyLog()   
         .build());   
		//设置虚拟机的策略
		  StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()   
		         .detectLeakedSqlLiteObjects()   
		         //.detectLeakedClosableObjects()   
		         .penaltyLog()   
		         .penaltyDeath()   
		         .build());
        super.onCreate(savedInstanceState);
        //设置页面布局
        setContentView(R.layout.main);
        //设置初始化视图
        initView();
        //设置事件监听器方法
        setListener();
    }
    
    /**
     * 创建初始化视图的方法
     */
	private void initView() {
		btnLogin=(Button)findViewById(R.id.btnLogin);
		txUserName=(EditText)findViewById(R.id.UserName);
		txPassword=(EditText)findViewById(R.id.textPasswd);
	}
	/**
	 * 设置事件的监听器的方法
	 */
	private void setListener() {
		btnLogin.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				String userName=txUserName.getText().toString();
				Log.v("userName = ", userName);
				String password=txPassword.getText().toString();
				Log.v("passwd = ",password);
				loginRemoteService(userName,password);
			}
		});
	}
	
	
	/**
     * 获取Struts2 Http 登录的请求信息
     * @param  userName
     * @param  password
     */
    public void loginRemoteService(String userName,String password){
        String result=null;
    	try {
	    		 
	    	//创建一个HttpClient对象
	    	HttpClient httpclient = new DefaultHttpClient();
	    	//远程登录URL
	    	//下面这句是原有的
	    	//processURL=processURL "userName=" userName "&password=" password;
	    	url= url_constant "userName=" userName "&password=" password;
	    	Log.d("远程URL", url);
	        //创建HttpGet对象
	    	HttpGet request=new HttpGet(url);
	    	//请求信息类型MIME每种响应类型的输出(普通文本、html 和 XML,json)。允许的响应类型应当匹配资源类中生成的 MIME 类型
	    	//资源类生成的 MIME 类型应当匹配一种可接受的 MIME 类型。如果生成的 MIME 类型和可接受的 MIME 类型不 匹配,那么将
	    	//生成 com.sun.jersey.api.client.UniformInterfaceException。例如,将可接受的 MIME 类型设置为 text/xml,而将
	    	//生成的 MIME 类型设置为 application/xml。将生成 UniformInterfaceException。
	    	request.addHeader("Accept","text/json");
	        //获取响应的结果
			HttpResponse response =httpclient.execute(request);
			//获取HttpEntity
			HttpEntity entity=response.getEntity();
			//获取响应的结果信息
			String json =EntityUtils.toString(entity,"UTF-8");
			//JSON的解析过程
			if(json!=null){
				JSONObject jsonObject=new JSONObject(json);
				result=jsonObject.get("message").toString();
			}
		   if(result==null){  
			   json="登录失败请重新登录";
		   }
			//创建提示框提醒是否登录成功
			 AlertDialog.Builder builder=new Builder(MainActivity.this);
			 builder.setTitle("提示")
			 .setMessage(result)
			 .setPositiveButton("确定", new DialogInterface.OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					dialog.dismiss();
				}
			}).create().show();
		 
    	 } catch (ClientProtocolException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
    
}

标签: 注册登录

实例下载地址

通过Android客户端访问web服务器,实现一个登录功能,服务端+数据库+安卓端- 注册登录

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警