Android实现服务器登录

一、使用MyEclipse创建一个servlet service project服务;(

在创建服务器时一定要创建servlet service project,不能创建servlet project)代码如下:

package login;import java.io.IOException;import java.io.PrintWriter;import java.util.HashMap;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; public class AndroidLogin extends HttpServlet {public AndroidLogin() {super();}public void destroy() {super.destroy();}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");          PrintWriter out = response.getWriter();          Boolean flag =false;            String userName = request.getParameter("phone");          String password = request.getParameter("password");           if(userName.equals("123123")&&password.equals("123123"))   {            flag =true;  }        else {flag = false;}        System.out.println("userName:"+userName+"password:"+password);        out.print(flag);          out.flush();          out.close();}}

二、修改WebRoot/WEB-INF/web.xml文件中的代码,加上如下代码:

    This is the description of my J2EE component    This is the display name of my J2EE component    AndroidLogin    login.AndroidLogin        AndroidLogin    /login/AndroidLogin

三、修改Android的Layout界面

<?xml version="1.0"encoding="utf-8"?>            

四、修改LoginDemo代码(我自己建的Login Demo,默认为MainActivity)

packagecom.example.jsondemo;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Looper;importandroid.os.Message;importandroid.support.annotation.Nullable;importandroid.support.v7.app.AppCompatActivity;importandroid.view.View;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.TextView;importandroid.widget.Toast;importorg.apache.http.HttpResponse;importorg.apache.http.client.HttpClient;importorg.apache.http.client.methods.HttpPost;importorg.apache.http.impl.client.DefaultHttpClient;importorg.apache.http.util.EntityUtils;importjava.io.ByteArrayOutputStream;importjava.io.InputStream;importjava.net.HttpURLConnection;importjava.net.URL;public classLoginDemoextendsAppCompatActivity {    privateEditTextphone;    privateEditTextpassword;    privateButtonlogin;    Handlerhandler=newHandler(){        @Override        public void handleMessage(Message msg) {            switch(msg.what){                case1:                    Toast.makeText(LoginDemo.this,"成功",Toast.LENGTH_SHORT).show();                    break;                default:                    Toast.makeText(LoginDemo.this,"失败",Toast.LENGTH_SHORT).show();                    break;            }    }  };    @Override    protected void onCreate(@NullableBundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.login_demo);        password= (EditText) findViewById(R.id.editText);        login= (Button) findViewById(R.id.button);        phone= (EditText) findViewById(R.id.editText3);        login.setOnClickListener(newView.OnClickListener() {            @Override            public void onClick(View v) {                xxx();   }    });   }    private void xxx() {        newThread(newRunnable() {            @Override            public void run() {                String msg ="";                try{                    String phone1 =phone.getText().toString().trim();                    String pw =password.getText().toString().trim();                    String url ="http://10.0.2.2:8888/AndroidLogin/login/"+                            "AndroidLogin?phone="+phone1+"&password="+pw+"";                    HttpURLConnection conn = (HttpURLConnection)newURL(url).openConnection();                    //设置请求方式,请求超时信息                    conn.setRequestMethod("POST");                    conn.setReadTimeout(5000);                    conn.setConnectTimeout(5000);                    //设置运行输入,输出:                    conn.setDoOutput(true);                    conn.setDoInput(true);                    //Post方式不能缓存,需手动设置为false                    conn.setUseCaches(false);                    if(conn.getResponseCode() ==200) {                        //使用httpClient发送post请求                        HttpClient httpClient = newDefaultHttpClient();                        HttpPost post =newHttpPost(url);                        HttpResponse httpResponse = httpClient.execute(post);                        String result = EntityUtils.toString(httpResponse.getEntity());                        if(result.equals("true")){                            Message message1 =newMessage();                            message1.what=1;                            handler.sendMessage(message1);                        }else{                            Message message1 =newMessage();                            message1.what=0;                            handler.sendMessage(message1);                        }                    }                }catch(Exception e) {                    e.printStackTrace();   }    }    }).start();   }   }

五、启动模拟器,分别输入123123/123123,点击“登录”按钮,效果,如图。

 

更多相关文章

  1. Android基于Window.ID_ANDROID_CONTENT给定id添加子View
  2. Android下获取手机屏幕大小
  3. Android之快捷方式一——通过应用程序创建快捷方式
  4. Android(安卓)通知的基本用法示例代码
  5. 怎样在Android中ListView与ArrayAdapter配合使用
  6. Android(安卓)使用com.j256.ormlite
  7. android webview字体大小的控制
  8. Android:adb shell am命令行发送Activity/Service/Broadcast
  9. android 在程序中开启GPS功能

随机推荐

  1. 【3.29-4.4】上周精彩回顾
  2. 猜数小游戏设计
  3. Web前端架构师
  4. 架构师训练营
  5. Python信用评分卡建模(附代码)
  6. grid实现12列的栅格布局
  7. 如何防止内部员工疏忽造成的数据泄露
  8. 金融行业数据防泄漏,需要关注哪些地方?
  9. 字典和json的区别是什么?Python学习
  10. 学Python需要学数据库吗?Python学习教程!