`

登陆验证

 
阅读更多

package src.siwi.map.android;

 

import java.io.DataInputStream;

import java.net.HttpURLConnection;

import java.net.URL;

 

import android.app.Activity;

import android.app.AlertDialog;

import android.app.ProgressDialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.content.SharedPreferences;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.util.Log;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.CheckBox;

import android.widget.CompoundButton;

import android.widget.EditText;

import android.widget.Toast;

import android.widget.CompoundButton.OnCheckedChangeListener;

 

public class Login extends Activity {

private String userName;

private String password;

private EditText view_userName;

private EditText view_password;

private CheckBox view_rememberMe;

private Button view_loginSubmit;

private static final int MENU_EXIT = Menu.FIRST - 1;

private static final int MENU_ABOUT = Menu.FIRST;

private final String SHARE_LOGIN_TAG = "MAP_SHARE_LOGIN_TAG";

 

private String SHARE_LOGIN_USERNAME = "MAP_LOGIN_USERNAME";

private String SHARE_LOGIN_PASSWORD = "MAP_LOGIN_PASSWORD";

private boolean isNetError;

private ProgressDialog proDialog;

 

Handler loginHandler = new Handler() {

public void handleMessage(Message msg) 

{

isNetError = msg.getData().getBoolean("isNetError");

if(proDialog != null) 

{

proDialog.dismiss();

}

if(isNetError) 

{

Toast.makeText(Login.this, "当前网络不可用",

Toast.LENGTH_SHORT).show();

}

else 

{

Toast.makeText(Login.this, "错误的用户名或密码",

Toast.LENGTH_SHORT).show();

clearSharePassword();

}

}

};

 

 

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.login);

findViewsById();

initView(false);

setListener();

}

 

 

private void findViewsById() {

view_userName = (EditText)findViewById(R.id.loginUserNameEdit);

view_password = (EditText)findViewById(R.id.loginPasswordEdit);

view_rememberMe = (CheckBox)findViewById(R.id.loginRememberMeCheckBox);

view_loginSubmit = (Button)findViewById(R.id.loginSubmit);

}

 

private void initView(boolean isRememberMe) {

SharedPreferences share = getSharedPreferences(SHARE_LOGIN_TAG, 0);

String userName = share.getString(SHARE_LOGIN_USERNAME, "");

String password = share.getString(SHARE_LOGIN_PASSWORD, "");

Log.d(this.toString(), "userName=" + userName + " password=" + password);

if (!"".equals(userName)) {

view_userName.setText(userName);

}

if (!"".equals(password)) {

view_password.setText(password);

view_rememberMe.setChecked(true);

}

if (view_password.getText().toString().length() > 0) {

// view_loginSubmit.requestFocus();

// view_password.requestFocus();

}

share = null;

}

 

private boolean validateLocalLogin(String userName, String password, String validateUrl) {

boolean loginState = false;

HttpURLConnection conn = null;

DataInputStream dis = null;

try 

{

URL url = new URL(validateUrl);

conn = (HttpURLConnection)url.openConnection();

conn.setConnectTimeout(5000);

conn.setRequestMethod("GET");

conn.connect();

dis = new DataInputStream(conn.getInputStream());

if(conn.getResponseCode() != HttpURLConnection.HTTP_OK) 

{

Log.d(this.toString(), "HTTP ERROR");

isNetError = true;

return false;

}

int loginStateInt = dis.read();

 

Log.v("loginState", String.valueOf(loginStateInt));

if(loginStateInt == 1) 

{

loginState = true;

}

catch (Exception e) 

{

e.printStackTrace();

isNetError = true;

Log.d(this.toString(), e.getMessage() + "  127 line");

finally 

{

if(conn != null) 

{

conn.disconnect();

}

}

if(loginState) 

{

if(isRememberMe()) 

{

saveSharePreferences(true, true);

else 

{

saveSharePreferences(true, false);

}

else 

{

if(!isNetError)

{

clearSharePassword();

}

}

if(!view_rememberMe.isChecked()) 

{

clearSharePassword();

}

Log.v("loginState", String.valueOf(loginState));

return loginState;

}

 

private void saveSharePreferences(boolean saveUserName, boolean savePassword) {

SharedPreferences share = getSharedPreferences(SHARE_LOGIN_TAG, 0);

if(saveUserName) {

Log.d(this.toString(), "saveUserName="

+ view_userName.getText().toString());

share.edit().putString(SHARE_LOGIN_USERNAME,

view_userName.getText().toString()).commit();

}

if (savePassword) {

share.edit().putString(SHARE_LOGIN_PASSWORD,

view_password.getText().toString()).commit();

}

share = null;

}

 

private boolean isRememberMe() {

if (view_rememberMe.isChecked()) {

return true;

}

return false;

}

 

private OnClickListener submitListener = new OnClickListener() {

public void onClick(View v) {

proDialog = ProgressDialog.show(Login.this, "请稍候",

"", true, true);

Thread loginThread = new Thread(new LoginFailureHandler());

loginThread.start();

}

};

 

// .start();

// }

// };

 

private OnCheckedChangeListener rememberMeListener = new OnCheckedChangeListener() {

 

 

public void onCheckedChanged(CompoundButton buttonView,

boolean isChecked) {

if (view_rememberMe.isChecked()) {

Toast.makeText(Login.this, "ischecked",

Toast.LENGTH_SHORT).show();

}

}

};

 

 

 

private void setListener() {

view_loginSubmit.setOnClickListener(submitListener);

view_rememberMe.setOnCheckedChangeListener(rememberMeListener);

}

 

public boolean onCreateOptionsMenu(Menu menu) {

super.onCreateOptionsMenu(menu);

menu.add(0, MENU_EXIT, 0, getResources().getText(R.string.MENU_EXIT));

menu.add(0, MENU_ABOUT, 0, getResources().getText(R.string.MENU_ABOUT));

return true;

}

 

 

public boolean onMenuItemSelected(int featureId, MenuItem item) {

super.onMenuItemSelected(featureId, item);

switch (item.getItemId()) {

case MENU_EXIT:

finish();

break;

case MENU_ABOUT:

alertAbout();

break;

}

return true;

}

 

private void alertAbout() {

new AlertDialog.Builder(Login.this).setTitle(R.string.MENU_ABOUT)

.setMessage(R.string.aboutInfo).setPositiveButton(

R.string.ok_label,

new DialogInterface.OnClickListener() {

public void onClick(

DialogInterface dialoginterface, int i) {

}

}).show();

}

 

 

private void clearSharePassword() {

SharedPreferences share = getSharedPreferences(SHARE_LOGIN_TAG, 0);

share.edit().putString(SHARE_LOGIN_PASSWORD, "").commit();

share = null;

}

 

class LoginFailureHandler implements Runnable {

 

public void run() {

userName = view_userName.getText().toString();

password = view_password.getText().toString();

String validateURL="http://10.0.2.2:8080/androidShopServer/loginCheck.action?userName="

+ userName + "&password=" + password;

boolean loginState = validateLocalLogin(userName, password,

validateURL);

Log.d(this.toString(), "validateLogin");

 

if(loginState) 

{

Intent intent = new Intent();

intent.setClass(Login.this, IndexPage.class);

Bundle bundle = new Bundle();

bundle.putString("MAP_USERNAME", userName);

intent.putExtras(bundle);

startActivity(intent);

proDialog.dismiss();

} else {

Message message = new Message();

Bundle bundle = new Bundle();

bundle.putBoolean("isNetError", isNetError);

message.setData(bundle);

loginHandler.sendMessage(message);

}

}

 

}

}


分享到:
评论

相关推荐

    登陆验证系统(JAVA GUI界面)

    在本项目中,我们利用Java的SWING库来构建登录验证系统,这涉及到窗口组件、事件处理、数据验证等多个关键知识点。 1. **SWING库介绍** Swing是Java提供的一个轻量级组件库,它是Java AWT(Abstract Window ...

    Android客户端登陆验证+后台

    在Android客户端开发中,登录验证是至关重要的一个环节,它涉及到用户的身份确认、安全保护以及数据的准确性。本文将深入探讨Android客户端登录验证及其与后台交互的实现。 首先,我们来看"Android客户端登录验证...

    spring mvc 登陆验证

    下面将详细阐述Spring MVC实现登录验证的相关知识点。 **1. Spring MVC简介** Spring MVC是Spring框架的一个模块,专门用于构建Web应用程序。它提供了模型-视图-控制器(MVC)架构,简化了开发过程,使得业务逻辑与...

    java图片滑动验证(登录验证)原理与实现方法详解

    Java图片滑动验证(登录验证)原理与实现方法详解 Java图片滑动验证(登录验证)是一种常用的身份验证机制,它可以有效地防止机器人和恶意攻击。下面将详细介绍Java图片滑动验证(登录验证)的原理和实现方法。 ...

    java实现登陆验证

    在Java编程中,实现登录验证是一项基础且重要的任务,它涉及到用户身份的确认与安全性的保障。本项目通过创建一个简单的登录验证系统,主要涵盖了以下几个关键知识点: 1. **Servlet技术**:`servletlogin`这个...

    dwr用户登陆验证的例子

    这个"dwf用户登陆验证的例子"是一个示例项目,旨在帮助新手理解如何在DWR框架下实现用户登录验证功能。在这个例子中,我们将探讨DWR的核心特性以及如何利用它来处理用户认证。 首先,DWR的主要功能是提供Ajax(异步...

    jsp+servlet登录验证过滤器

    在这个项目中,“jsp+servlet登录验证过滤器”涉及了用户登录验证的过程,以及使用过滤器(Filter)来实现这一功能。下面将详细介绍这个主题中的相关知识点。 1. **JSP**:JSP是一种服务器端的技术,允许开发者在...

    ASP.NET 登陆验证+数据库访问

    在这个“ASP.NET 登陆验证+数据库访问”的源代码中,我们可以深入理解如何在ASP.NET环境中实现用户登录验证以及与SQL数据库的交互。 首先,登录验证是任何网站安全的基础。ASP.NET 提供了多种实现用户身份验证的...

    PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】

    4. **已登录验证**: 使用PHP的`session_start()`开启会话,通过`$_SESSION['username']`存储登录成功的用户名,以此来识别用户是否已登录。在后续的页面中,可以通过检查`$_SESSION['username']`是否为空来判断...

    php+ajax+jquery打造登陆验证

    这篇教程“php+ajax+jquery打造登陆验证”旨在教你如何利用这些技术实现无刷新的登录验证,提升用户体验。以下是对这些技术及其在登录验证中的应用进行的详细解释。 首先,PHP(Hypertext Preprocessor)是一种...

    注册及登录验证模块设计

    在开发Web应用程序时,注册和登录验证模块是不可或缺的一部分,它们确保了用户数据的安全性和系统的稳定性。本项目“注册及登录验证模块设计”提供了一个基于VS.NET的实现方案,通过打开web文件夹下的stat.sln项目...

    struts2登陆验证

    在Struts2中,登录验证是常见的安全控制机制,用于确保只有合法用户能够访问受保护的资源。 在Struts2中实现登录验证,我们需要以下几个关键组件和步骤: 1. **Action类**:这是处理用户请求的核心,通常包含一个...

    Struts2项目--1.简单登录验证

    简单登录验证”旨在介绍如何利用Struts2框架实现一个基本的用户登录验证功能,这是Web应用中的常见需求。 在Struts2中,我们首先需要配置`struts.xml`文件,它是整个应用的核心配置文件,定义了动作映射、拦截器和...

    登录验证程序.rar

    在IT行业中,登录验证是网络安全和用户数据保护的基础。在这个名为"登录验证程序.rar"的压缩包中,我们可以预见到包含了一个使用C#语言编写的登录验证系统。C#是一种广泛应用的面向对象的编程语言,尤其在开发...

    ASP.NET MVC5 入门 之登录验证

    在本入门教程中,我们将重点探讨如何在ASP.NET MVC5中实现登录验证功能。 首先,我们需要一个集成开发环境(IDE),Visual Studio 2013是推荐的选择。VS2013提供了丰富的工具和集成服务,使得ASP.NET MVC5项目的...

    Vue+Flask实现简单的登录验证跳转的示例代码

    Vue+Flask实现简单的登录验证跳转的示例代码 本篇文章主要介绍了使用Vue和Flask实现简单的登录验证跳转的示例代码,具体来说是使用Vue作为前端框架,Flask作为后端框架,实现了一个简单的登录验证跳转功能。 首先...

    android登陆验证demo

    本项目“android登陆验证demo”提供了一个简洁的框架,适用于移动互联应用的开发,其中包含了登录验证机制,以及ViewPager和TabHost的架构设计。下面我们将详细探讨这些关键知识点。 **1. 登录验证** 登录验证是...

    Jeecg配置单点登录 登录验证完整代码

    在本场景中,我们关注的是Jeecg如何配置单点登录(Single Sign-On,简称SSO)以及相关的登录验证代码。单点登录是一种网络应用架构中的安全机制,允许用户在一次登录后,就能访问多个相互关联的应用系统,而无需再次...

    C# winform登陆验证功能

    在本文中,我们将深入探讨如何使用C# Winform和Access数据库实现登录验证功能。这是一个非常适合初学者学习的项目,因为它涵盖了基本的用户界面设计、数据库交互以及简单的验证逻辑。 首先,C#(C Sharp)是一种...

Global site tag (gtag.js) - Google Analytics