android登录模块
16lz
2021-01-23
- packagecom.action.userAction;
- importjava.io.OutputStream;
- importjavax.servlet.http.HttpServletRequest;
- importjavax.servlet.http.HttpServletResponse;
- importorg.apache.struts2.ServletActionContext;
- importcom.opensymphony.xwork2.Action;
- publicclassLoginCheckActionimplementsAction{
- privateStringuserName;
- privateStringpassword;
- publicStringexecute()throwsException{
- //TODOAuto-generatedmethodstub
- HttpServletRequestrequest=ServletActionContext.getRequest();
- userName=request.getParameter("userName");
- password=request.getParameter("password");
- HttpServletResponseresponse=ServletActionContext.getResponse();
- OutputStreamos=response.getOutputStream();
- if(!"lovehui".equals(userName)||!"1989".equals(password))
- {
- os.write(newInteger(-1));
- }
- else
- {
- os.write(newInteger(1));
- }
- response.setStatus(HttpServletResponse.SC_OK);
- returnnull;
- }
- publicStringgetUserName(){
- returnuserName;
- }
- publicvoidsetUserName(StringuserName){
- this.userName=userName;
- }
- publicStringgetPassword(){
- returnpassword;
- }
- publicvoidsetPassword(Stringpassword){
- this.password=password;
- }
- }
接下来是Client端,就贴最主要的一个Activity,有一点要注意下,就是本地回路地址不是常用的127.0.0.1,要换成10.0.2.2,原因也无法赘述,也是借鉴了网上别人的经验:
Java代码- packagesrc.siwi.map.android;
- importjava.io.DataInputStream;
- importjava.NET.HttpURLConnection;
- importjava.net.URL;
- importandroid.app.Activity;
- importandroid.app.AlertDialog;
- importandroid.app.ProgressDialog;
- importandroid.content.DialogInterface;
- importandroid.content.Intent;
- importandroid.content.SharedPreferences;
- importandroid.os.Bundle;
- importandroid.os.Handler;
- importandroid.os.Message;
- importandroid.util.Log;
- importandroid.view.Menu;
- importandroid.view.MenuItem;
- importandroid.view.View;
- importandroid.view.View.OnClickListener;
- importandroid.widget.Button;
- importandroid.widget.CheckBox;
- importandroid.widget.CompoundButton;
- importandroid.widget.EditText;
- importandroid.widget.Toast;
- importandroid.widget.CompoundButton.OnCheckedChangeListener;
- publicclassLoginextendsActivity{
- privateStringuserName;
- privateStringpassword;
- privateEditTextview_userName;
- privateEditTextview_password;
- privateCheckBoxview_rememberMe;
- privateButtonview_loginSubmit;
- privatestaticfinalintMENU_EXIT=Menu.FIRST-1;
- privatestaticfinalintMENU_ABOUT=Menu.FIRST;
- privatefinalStringSHARE_LOGIN_TAG="MAP_SHARE_LOGIN_TAG";
- privateStringSHARE_LOGIN_USERNAME="MAP_LOGIN_USERNAME";
- privateStringSHARE_LOGIN_PASSWORD="MAP_LOGIN_PASSWORD";
- privatebooleanisNetError;
- privateProgressDialogproDialog;
- HandlerloginHandler=newHandler(){
- publicvoidhandleMessage(Messagemsg)
- {
- 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();
- }
- }
- };
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.login);
- findViewsById();
- initView(false);
- setListener();
- }
- privatevoidfindViewsById(){
- 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);
- }
- privatevoidinitView(booleanisRememberMe){
- SharedPreferencesshare=getSharedPreferences(SHARE_LOGIN_TAG,0);
- StringuserName=share.getString(SHARE_LOGIN_USERNAME,"");
- Stringpassword=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;
- }
- privatebooleanvalidateLocalLogin(StringuserName,Stringpassword,StringvalidateUrl){
- booleanloginState=false;
- HttpURLConnectionconn=null;
- DataInputStreamdis=null;
- try
- {
- URLurl=newURL(validateUrl);
- conn=(HttpURLConnection)url.openConnection();
- conn.setConnectTimeout(5000);
- conn.setRequestMethod("GET");
- conn.connect();
- dis=newDataInputStream(conn.getInputStream());
- if(conn.getResponseCode()!=HttpURLConnection.HTTP_OK)
- {
- Log.d(this.toString(),"HTTPERROR");
- isNetError=true;
- returnfalse;
- }
- intloginStateInt=dis.read();
- Log.v("loginState",String.valueOf(loginStateInt));
- if(loginStateInt==1)
- {
- loginState=true;
- }
- }
- catch(Exceptione)
- {
- e.printStackTrace();
- isNetError=true;
- Log.d(this.toString(),e.getMessage()+"127line");
- }
- 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));
- returnloginState;
- }
- privatevoidsaveSharePreferences(booleansaveUserName,booleansavePassword){
- SharedPreferencesshare=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;
- }
- privatebooleanisRememberMe(){
- if(view_rememberMe.isChecked()){
- returntrue;
- }
- returnfalse;
- }
- privateOnClickListenersubmitListener=newOnClickListener(){
- publicvoidonClick(Viewv){
- proDialog=ProgressDialog.show(Login.this,"请稍候",
- "",true,true);
- ThreadloginThread=newThread(newLoginFailureHandler());
- loginThread.start();
- }
- };
- //.start();
- //}
- //};
- privateOnCheckedChangeListenerrememberMeListener=newOnCheckedChangeListener(){
- publicvoidonCheckedChanged(CompoundButtonbuttonView,
- booleanisChecked){
- if(view_rememberMe.isChecked()){
- Toast.makeText(Login.this,"ischecked",
- Toast.LENGTH_SHORT).show();
- }
- }
- };
- privatevoidsetListener(){
- view_loginSubmit.setOnClickListener(submitListener);
- view_rememberMe.setOnCheckedChangeListener(rememberMeListener);
- }
- publicbooleanonCreateOptionsMenu(Menumenu){
- 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));
- returntrue;
- }
- publicbooleanonMenuItemSelected(intfeatureId,MenuItemitem){
- super.onMenuItemSelected(featureId,item);
- switch(item.getItemId()){
- caseMENU_EXIT:
- finish();
- break;
- caseMENU_ABOUT:
- alertAbout();
- break;
- }
- returntrue;
- }
- privatevoidalertAbout(){
- newAlertDialog.Builder(Login.this).setTitle(R.string.MENU_ABOUT)
- .setMessage(R.string.aboutInfo).setPositiveButton(
- R.string.ok_label,
- newDialogInterface.OnClickListener(){
- publicvoidonClick(
- DialogInterfacedialoginterface,inti){
- }
- }).show();
- }
- privatevoidclearSharePassword(){
- SharedPreferencesshare=getSharedPreferences(SHARE_LOGIN_TAG,0);
- share.edit().putString(SHARE_LOGIN_PASSWORD,"").commit();
- share=null;
- }
- classLoginFailureHandlerimplementsRunnable{
- publicvoidrun(){
- userName=view_userName.getText().toString();
- password=view_password.getText().toString();
- StringvalidateURL="http://10.0.2.2:8080/androidShopServer/loginCheck.action?userName="
- +userName+"&password="+password;
- booleanloginState=validateLocalLogin(userName,password,
- validateURL);
- Log.d(this.toString(),"validateLogin");
- if(loginState)
- {
- Intentintent=newIntent();
- intent.setClass(Login.this,IndexPage.class);
- Bundlebundle=newBundle();
- bundle.putString("MAP_USERNAME",userName);
- intent.putExtras(bundle);
- startActivity(intent);
- proDialog.dismiss();
- }else{
- Messagemessage=newMessage();
- Bundlebundle=newBundle();
- bundle.putBoolean("isNetError",isNetError);
- message.setData(bundle);
- loginHandler.sendMessage(message);
- }
- }
- }
- }
更多相关文章
- Android为HttpClient设置证书(用户名和密码)
- android保存用户名密码
- Android——用户登陆及用户名和密码的保存
- Android—Android中监听EditText文本输入,实现修改用户名,清除密码
- Android 选择文件并返回路径
- 分享终端控制传感器或设备,形成回路控制实例
- windows10家庭版更改登录用户名
- 我正在尝试使用带有post方法的AJAX将用户名和密码发送到php文件
- 用于检查用户名可用性的Javascript帖子无效