//Android端代码

public class LoginActivity extends Activity
{
EditText et_username,et_password;
TextView tv_errMsg;
Button btn_login;
String strUrl = "http://192.168.1.102:8080/Login/login_login2.action";
public static int REQUEST_SUCCESS_CODE = 200;
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.proj2_login);
et_username = (EditText)findViewById(R.id.et_username);
et_password = (EditText)findViewById(R.id.et_password);
tv_errMsg = (TextView)findViewById(R.id.tv_errMsg);
btn_login = (Button)findViewById(R.id.btn_login);
btn_login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
String result;
/* 发送部分 */
try {
HttpClient httpClient = new DefaultHttpClient();
String address = strUrl;
HttpPost httpPost = new HttpPost(address);
List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("username", et_username.getText().toString()));
params.add(new BasicNameValuePair("password", et_password.getText().toString()));
httpPost.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //将参数填入POST Entity中

HttpResponse httpResponse = httpClient.execute(httpPost);

/* 接收 */
if (httpResponse.getStatusLine().getStatusCode() == 200) {
result = EntityUtils.toString(httpResponse.getEntity());
/* json文本解析 */
JSONTokener jsonParser = new JSONTokener(result);

JSONObject jsonResult = (JSONObject) jsonParser.nextValue();
String status = jsonResult.getString("loginStatus");
String outMessage = jsonResult.getString("outMessage");
if(status.equals("true")){
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
intent.putExtra("username", outMessage);
startActivityForResult(intent, REQUEST_SUCCESS_CODE);
} else {
tv_errMsg.setVisibility(View.VISIBLE);
tv_errMsg.setText(outMessage);
}
} else {
tv_errMsg.setVisibility(View.VISIBLE);
tv_errMsg.setText("连接异常,CODE:" + httpResponse.getStatusLine().getStatusCode());
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}


服务器端代码:采用SSH框架
public class LoginAction extends ActionSupport {

HttpServletRequest request;
HttpServletResponse response;
LoginService loginService;

public LoginService getLoginService() {
return loginService;
}

public void setLoginService(LoginService loginService) {
this.loginService = loginService;
}

public String execute() throws Exception
{
request = ServletActionContext.getRequest();
request.setCharacterEncoding("utf-8"); //避免乱码

String name = request.getParameter("username");
String password = request.getParameter("password");
int result = loginService.validate(name, password);//验证用户名密码是否正确

JsonObject jsonObj = new JsonObject(); //须引入gson jar包
String loginStatus = "";
String outMessage = "";
if(result>0){
loginStatus = "true";
outMessage = "登录失败!";
}
else{
loginStatus = "false";
outMessage = "用户名或密码错误!";
}
jsonObj.addProperty("loginStatus", loginStatus);
jsonObj.addProperty("outMessage", outMessage);

response = ServletActionContext.getResponse();

response.setContentType("text/html;charset=utf-8");//避免乱码

PrintWriter out = response.getWriter();
out.write(jsonObj.toString());
//out.println(jsonObj.toString()); //也ok
return null;
}
}


更多相关文章

  1. Google用户登录界面 Android实现
  2. 安装Android(安卓)Studio遇到中文乱码的解决方法
  3. [Android] 该文件包与具有同一名称的现有文件包存在冲突
  4. Android中AVD(Android(安卓)Virtual Device)不能启动的处理方法
  5. Android避免context相关内存溢出
  6. 如何避免android上的进程的内存限制
  7. 如何避免输入法弹出时遮挡住按钮或输入框
  8. android修改Zxing源码,避免出现错误信息
  9. Android(安卓)音乐乱码问题修改

随机推荐

  1. Android客户端与后台服务器的数据交互
  2. 开发者必看|Android(安卓)8.0 新特性及开
  3. Android(安卓)控件之 Spinner下拉列表 使
  4. React Native添加Android原生模块
  5. android 机器人
  6. 浅析Android下的Android.mk文件
  7. Android事件分发机制完全解析,带你从源码
  8. Study on Android【一】--概述
  9. android简介
  10. Android(安卓)ANR错误排查