1. packagecom.action.userAction;
  2. importjava.io.OutputStream;
  3. importjavax.servlet.http.HttpServletRequest;
  4. importjavax.servlet.http.HttpServletResponse;
  5. importorg.apache.struts2.ServletActionContext;
  6. importcom.opensymphony.xwork2.Action;
  7. publicclassLoginCheckActionimplementsAction{
  8. privateStringuserName;
  9. privateStringpassword;
  10. publicStringexecute()throwsException{
  11. //TODOAuto-generatedmethodstub
  12. HttpServletRequestrequest=ServletActionContext.getRequest();
  13. userName=request.getParameter("userName");
  14. password=request.getParameter("password");
  15. HttpServletResponseresponse=ServletActionContext.getResponse();
  16. OutputStreamos=response.getOutputStream();
  17. if(!"lovehui".equals(userName)||!"1989".equals(password))
  18. {
  19. os.write(newInteger(-1));
  20. }
  21. else
  22. {
  23. os.write(newInteger(1));
  24. }
  25. response.setStatus(HttpServletResponse.SC_OK);
  26. returnnull;
  27. }
  28. publicStringgetUserName(){
  29. returnuserName;
  30. }
  31. publicvoidsetUserName(StringuserName){
  32. this.userName=userName;
  33. }
  34. publicStringgetPassword(){
  35. returnpassword;
  36. }
  37. publicvoidsetPassword(Stringpassword){
  38. this.password=password;
  39. }
  40. }

接下来是Client端,就贴最主要的一个Activity,有一点要注意下,就是本地回路地址不是常用的127.0.0.1,要换成10.0.2.2,原因也无法赘述,也是借鉴了网上别人的经验:

Java代码
  1. packagesrc.siwi.map.android;
  2. importjava.io.DataInputStream;
  3. importjava.NET.HttpURLConnection;
  4. importjava.net.URL;
  5. importandroid.app.Activity;
  6. importandroid.app.AlertDialog;
  7. importandroid.app.ProgressDialog;
  8. importandroid.content.DialogInterface;
  9. importandroid.content.Intent;
  10. importandroid.content.SharedPreferences;
  11. importandroid.os.Bundle;
  12. importandroid.os.Handler;
  13. importandroid.os.Message;
  14. importandroid.util.Log;
  15. importandroid.view.Menu;
  16. importandroid.view.MenuItem;
  17. importandroid.view.View;
  18. importandroid.view.View.OnClickListener;
  19. importandroid.widget.Button;
  20. importandroid.widget.CheckBox;
  21. importandroid.widget.CompoundButton;
  22. importandroid.widget.EditText;
  23. importandroid.widget.Toast;
  24. importandroid.widget.CompoundButton.OnCheckedChangeListener;
  25. publicclassLoginextendsActivity{
  26. privateStringuserName;
  27. privateStringpassword;
  28. privateEditTextview_userName;
  29. privateEditTextview_password;
  30. privateCheckBoxview_rememberMe;
  31. privateButtonview_loginSubmit;
  32. privatestaticfinalintMENU_EXIT=Menu.FIRST-1;
  33. privatestaticfinalintMENU_ABOUT=Menu.FIRST;
  34. privatefinalStringSHARE_LOGIN_TAG="MAP_SHARE_LOGIN_TAG";
  35. privateStringSHARE_LOGIN_USERNAME="MAP_LOGIN_USERNAME";
  36. privateStringSHARE_LOGIN_PASSWORD="MAP_LOGIN_PASSWORD";
  37. privatebooleanisNetError;
  38. privateProgressDialogproDialog;
  39. HandlerloginHandler=newHandler(){
  40. publicvoidhandleMessage(Messagemsg)
  41. {
  42. isNetError=msg.getData().getBoolean("isNetError");
  43. if(proDialog!=null)
  44. {
  45. proDialog.dismiss();
  46. }
  47. if(isNetError)
  48. {
  49. Toast.makeText(Login.this,"当前网络不可用",
  50. Toast.LENGTH_SHORT).show();
  51. }
  52. else
  53. {
  54. Toast.makeText(Login.this,"错误的用户名或密码",
  55. Toast.LENGTH_SHORT).show();
  56. clearSharePassword();
  57. }
  58. }
  59. };
  60. publicvoidonCreate(BundlesavedInstanceState){
  61. super.onCreate(savedInstanceState);
  62. setContentView(R.layout.login);
  63. findViewsById();
  64. initView(false);
  65. setListener();
  66. }
  67. privatevoidfindViewsById(){
  68. view_userName=(EditText)findViewById(R.id.loginUserNameEdit);
  69. view_password=(EditText)findViewById(R.id.loginPasswordEdit);
  70. view_rememberMe=(CheckBox)findViewById(R.id.loginRememberMeCheckBox);
  71. view_loginSubmit=(Button)findViewById(R.id.loginSubmit);
  72. }
  73. privatevoidinitView(booleanisRememberMe){
  74. SharedPreferencesshare=getSharedPreferences(SHARE_LOGIN_TAG,0);
  75. StringuserName=share.getString(SHARE_LOGIN_USERNAME,"");
  76. Stringpassword=share.getString(SHARE_LOGIN_PASSWORD,"");
  77. Log.d(this.toString(),"userName="+userName+"password="+password);
  78. if(!"".equals(userName)){
  79. view_userName.setText(userName);
  80. }
  81. if(!"".equals(password)){
  82. view_password.setText(password);
  83. view_rememberMe.setChecked(true);
  84. }
  85. if(view_password.getText().toString().length()>0){
  86. //view_loginSubmit.requestFocus();
  87. //view_password.requestFocus();
  88. }
  89. share=null;
  90. }
  91. privatebooleanvalidateLocalLogin(StringuserName,Stringpassword,StringvalidateUrl){
  92. booleanloginState=false;
  93. HttpURLConnectionconn=null;
  94. DataInputStreamdis=null;
  95. try
  96. {
  97. URLurl=newURL(validateUrl);
  98. conn=(HttpURLConnection)url.openConnection();
  99. conn.setConnectTimeout(5000);
  100. conn.setRequestMethod("GET");
  101. conn.connect();
  102. dis=newDataInputStream(conn.getInputStream());
  103. if(conn.getResponseCode()!=HttpURLConnection.HTTP_OK)
  104. {
  105. Log.d(this.toString(),"HTTPERROR");
  106. isNetError=true;
  107. returnfalse;
  108. }
  109. intloginStateInt=dis.read();
  110. Log.v("loginState",String.valueOf(loginStateInt));
  111. if(loginStateInt==1)
  112. {
  113. loginState=true;
  114. }
  115. }
  116. catch(Exceptione)
  117. {
  118. e.printStackTrace();
  119. isNetError=true;
  120. Log.d(this.toString(),e.getMessage()+"127line");
  121. }
  122. finally
  123. {
  124. if(conn!=null)
  125. {
  126. conn.disconnect();
  127. }
  128. }
  129. if(loginState)
  130. {
  131. if(isRememberMe())
  132. {
  133. saveSharePreferences(true,true);
  134. }
  135. else
  136. {
  137. saveSharePreferences(true,false);
  138. }
  139. }
  140. else
  141. {
  142. if(!isNetError)
  143. {
  144. clearSharePassword();
  145. }
  146. }
  147. if(!view_rememberMe.isChecked())
  148. {
  149. clearSharePassword();
  150. }
  151. Log.v("loginState",String.valueOf(loginState));
  152. returnloginState;
  153. }
  154. privatevoidsaveSharePreferences(booleansaveUserName,booleansavePassword){
  155. SharedPreferencesshare=getSharedPreferences(SHARE_LOGIN_TAG,0);
  156. if(saveUserName){
  157. Log.d(this.toString(),"saveUserName="
  158. +view_userName.getText().toString());
  159. share.edit().putString(SHARE_LOGIN_USERNAME,
  160. view_userName.getText().toString()).commit();
  161. }
  162. if(savePassword){
  163. share.edit().putString(SHARE_LOGIN_PASSWORD,
  164. view_password.getText().toString()).commit();
  165. }
  166. share=null;
  167. }
  168. privatebooleanisRememberMe(){
  169. if(view_rememberMe.isChecked()){
  170. returntrue;
  171. }
  172. returnfalse;
  173. }
  174. privateOnClickListenersubmitListener=newOnClickListener(){
  175. publicvoidonClick(Viewv){
  176. proDialog=ProgressDialog.show(Login.this,"请稍候",
  177. "",true,true);
  178. ThreadloginThread=newThread(newLoginFailureHandler());
  179. loginThread.start();
  180. }
  181. };
  182. //.start();
  183. //}
  184. //};
  185. privateOnCheckedChangeListenerrememberMeListener=newOnCheckedChangeListener(){
  186. publicvoidonCheckedChanged(CompoundButtonbuttonView,
  187. booleanisChecked){
  188. if(view_rememberMe.isChecked()){
  189. Toast.makeText(Login.this,"ischecked",
  190. Toast.LENGTH_SHORT).show();
  191. }
  192. }
  193. };
  194. privatevoidsetListener(){
  195. view_loginSubmit.setOnClickListener(submitListener);
  196. view_rememberMe.setOnCheckedChangeListener(rememberMeListener);
  197. }
  198. publicbooleanonCreateOptionsMenu(Menumenu){
  199. super.onCreateOptionsMenu(menu);
  200. menu.add(0,MENU_EXIT,0,getResources().getText(R.string.MENU_EXIT));
  201. menu.add(0,MENU_ABOUT,0,getResources().getText(R.string.MENU_ABOUT));
  202. returntrue;
  203. }
  204. publicbooleanonMenuItemSelected(intfeatureId,MenuItemitem){
  205. super.onMenuItemSelected(featureId,item);
  206. switch(item.getItemId()){
  207. caseMENU_EXIT:
  208. finish();
  209. break;
  210. caseMENU_ABOUT:
  211. alertAbout();
  212. break;
  213. }
  214. returntrue;
  215. }
  216. privatevoidalertAbout(){
  217. newAlertDialog.Builder(Login.this).setTitle(R.string.MENU_ABOUT)
  218. .setMessage(R.string.aboutInfo).setPositiveButton(
  219. R.string.ok_label,
  220. newDialogInterface.OnClickListener(){
  221. publicvoidonClick(
  222. DialogInterfacedialoginterface,inti){
  223. }
  224. }).show();
  225. }
  226. privatevoidclearSharePassword(){
  227. SharedPreferencesshare=getSharedPreferences(SHARE_LOGIN_TAG,0);
  228. share.edit().putString(SHARE_LOGIN_PASSWORD,"").commit();
  229. share=null;
  230. }
  231. classLoginFailureHandlerimplementsRunnable{
  232. publicvoidrun(){
  233. userName=view_userName.getText().toString();
  234. password=view_password.getText().toString();
  235. StringvalidateURL="http://10.0.2.2:8080/androidShopServer/loginCheck.action?userName="
  236. +userName+"&password="+password;
  237. booleanloginState=validateLocalLogin(userName,password,
  238. validateURL);
  239. Log.d(this.toString(),"validateLogin");
  240. if(loginState)
  241. {
  242. Intentintent=newIntent();
  243. intent.setClass(Login.this,IndexPage.class);
  244. Bundlebundle=newBundle();
  245. bundle.putString("MAP_USERNAME",userName);
  246. intent.putExtras(bundle);
  247. startActivity(intent);
  248. proDialog.dismiss();
  249. }else{
  250. Messagemessage=newMessage();
  251. Bundlebundle=newBundle();
  252. bundle.putBoolean("isNetError",isNetError);
  253. message.setData(bundle);
  254. loginHandler.sendMessage(message);
  255. }
  256. }
  257. }
  258. }

更多相关文章

  1. Android为HttpClient设置证书(用户名和密码)
  2. android保存用户名密码
  3. Android——用户登陆及用户名和密码的保存
  4. Android—Android中监听EditText文本输入,实现修改用户名,清除密码
  5. Android 选择文件并返回路径
  6. 分享终端控制传感器或设备,形成回路控制实例
  7. windows10家庭版更改登录用户名
  8. 我正在尝试使用带有post方法的AJAX将用户名和密码发送到php文件
  9. 用于检查用户名可用性的Javascript帖子无效

随机推荐

  1. utility for debugging android native a
  2. Android(安卓)手机控制台灯开关详细教程-
  3. 写出一份“有理有据使人信服”的Android
  4. Android动画alpha、rotate、scale、trans
  5. android开发人员必须知道的事---苹果HTC
  6. unity3d Android(安卓)SDK 安装
  7. 大型情感类电视连续剧--Android高德之旅(3
  8. ConstraintLayout约束布局属性
  9. android drawable序列化
  10. android 5.0以上的主题错误