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,点击“登录”按钮,效果,如图。

Android实现服务器登录_第1张图片

 

更多相关文章

  1. android 获取服务器文件流 hander
  2. Android之快捷方式一——通过应用程序创建快捷方式
  3. Android Studio里面Failed to resolve: 包名 解决方式
  4. Android 通知的基本用法示例代码
  5. Android使用代码实现RelativeLayout,LinearLayout布局
  6. Android 从代码中打开淘宝和亚马逊、facebook、Message
  7. 修改dialog背景以及代码扩展AlertDialog和tint的使用
  8. Android应用程序创建桌面快捷方式
  9. 【Android】Android 彩信发送的两种方式+源代码

随机推荐

  1. Android webview加载html页面根据点击确
  2. Android提高篇之SQLite分页读取
  3. Android 9.0 系统启动流程
  4. Ubuntu16.04编译ffmpeg
  5. Android开发:Android简单通用BaseFragment
  6. Android性能优化之布局优化
  7. android 中webview的屏幕适配问题
  8. android操作sdcard中的多媒体文件(一)——
  9. android 如何使用Wake Lock来节电?
  10. 多条未接来电只显示来电数,同时拨号应用通