安卓程序实现登陆、注册

如果用普通的安卓知识实现登陆,那么登陆、注册信息会存储到本地也就是手机端,别的手机就不能登陆账户,或者在删除app时用户信息也会一并删除,那么我们如果想要避免上面的情况,就需要使用服务器了。

前提:

  1. Android的IDE
  2. 装好Tomcat服务器
  3. 如果有Eclipse等java IDE更好,方便部署服务器

整体结构如下:

Android后端springboot android后端服务器做登录注册_服务器

安卓部分:

下面这部分代码的前提是,已经从登陆布局获取用户名和密码。之后点击登陆的逻辑实现:

//打开http连接
			HttpURLConnection connection = null;
            DataOutputStream out;
            //string用来判断服务器端反馈的结果。
            String string = "false";
            try {
            	//下面这段代码是统一资源定位符,用于定位服务器上我们需要的servlet,你可以简单理解为网页。
            	//这里,使用的http协议,下面第二个参数为服务器网址,如果你是公网填写公网网址;
            	//如果你是内网,就填写内网网址,那么你的手机必须与服务器在同意内网下
                URL url = new URL("http", "10.241.4.110", 8080, "/Android_Login/Login_submit");
                connection = (HttpURLConnection)url.openConnection();
                connection.setRequestMethod("POST");
                connection.setDoOutput(true);
                //用户向发服务器发送请求时附加参数,也就是传递值
                out = new DataOutputStream(connection.getOutputStream());
                //传递内容为姓名和密码
                out.writeBytes("name="+mUser+"&password="+mPassword);
                //上面代码运行后,服务器会反馈回来,所以下面代码就是接受反馈结果
                BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                //如果接受到了反馈结果,那么保存到string中
                if((string=br.readLine())!=null) {
                    Log.i("loginStatus",string);
                }
                out.close();
            } catch (Exception e) {
                return 0;
            }finally {
                connection.disconnect();
            }
            if(string.equals("success"))
                //TODO 成功后逻辑
            else
                //TODO 失败后逻辑

服务器部分:

服务器部分,我是利用的tomcat服务器。
如果你对servlet有了解那么,这里使用的servlet你可以自己配置

public class Login_submit extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.setContentType("text/html;character=gbk");
		PrintWriter out = resp.getWriter();
		try {
			//从移动端获取姓名和密码
			String name = req.getParameter("name");
			String password = req.getParameter("password");
			System.out.println("login/register:"+name);
			User user = new User(name, password);
			//这里写你的判断逻辑
			if (isUser(user))
			{
				out.print("success");
			}
			else {
					out.print("false");
			}
		} finally {
			out.close();
		}
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req, resp);
	}
}

这样就大功告成了!如果需要使用数据库,在服务器端写就行了,很简单的