因比赛或者项目需要,写了几个小打小闹的APP。有的处于“单机”状态,有的处于“半联网”状态,觉得学习有点操之过急,所以先缓一缓,梳理一下之前所学的知识,将之前做的一些小玩意儿,整理出来写成博客。第一篇便是大部分APP都具有的注册登录系统。

代码传送门

一、问题描述

完成简单的注册与登录功能。

二、需求分析

在APP端有注册与登录两个显示界面:点击注册,将用户填写的信息存储到数据库当中;点击登录,查询服务器数据库,匹配则登录,进入一个新页面显示登录信息,不匹配则显示登录失败。

三、结构设计

  1. Android 用于与用户交互,信息的输入与显示。
  2. 阿里云服务器,Tomcat Web应用服务器 使用原生Servlet完成APP与服务器的交互。
  3. MySql数据库 用于数据的存储与匹配。
  4. 示意图

四、数据库设计

五、实体类设计(User.java)

public class User {private String nickname;//用户昵称private String phoneNum;//手机号码private String password;//用户密码public String getNickname() {return nickname;}public void setNickname(String nickname) {this.nickname = nickname;}public String getPhoneNum() {return phoneNum;}public void setPhoneNum(String phoneNum) {this.phoneNum = phoneNum;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}

六、APP 界面设计

  1. 示意图
  2. 效果图
    A. 登录界面

    B. 注册界面

    C. 成功登录后显示信息的界面

七、服务器端Servlet功能

  1. 获取登录信息,匹配数据库,返回登录结果
    LoginServlet——DBOperation.getUser()
  2. 获取注册信息,将新用户的数据写入数据库当中
    RegisterServlet——DBOperation.insertIntoUser()

八、数据交互

  1. 格式:Json格式
  2. 使用gson解析,Okhttp3传输数据
  3. 点击登录或注册按钮时,访问相应Servlet,APP 端处理响应数据并使用TextView或者Toast进行显示。

九、小结

至此,一个简易版的APP登录与注册系统的设计与开发便完成了。还有许多可以改善的地方,不过作为一个十分简易的系统Demo,应该勉强可以看看,给刚入门的小伙伴学习使用。

  1. 数据库的操作,使用的是DBUtils框架,简单易上手,对新手友好。
  2. APP端的model类,使用单例模式。原本是打算登录后仅为一个用户,无法修改,但是出现了账户密码输入错误,但是实例已经产生,第二次输入正确却无法产生新的实例而造成登录失败的尴尬情况,后来在单例的get方法中添加是否成功登录的标志字段flag辅助判断,解决bug。
  3. Web 端的Servlet中忘记添加以下代码,造成中文乱码问题。
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");

十、源代码

献上GitHub地址

Android学习之完整的注册登录Demo(APP端+服务器端)相关推荐

  1. Android学习路线指南,flutter登录页

    比如四大组件如何使用.如何创建Service.如何进行布局.简单的自定义View.动画等常见技术 书籍推荐 <第一行代码 Android>.<疯狂Android> 中级工程师 ...

  2. Android学习笔记之 仿QQ登录界面的实现

    原网址:http://www.cnblogs.com/wjdawx/p/3512493.html 先来看下效果图         1.首先是布局文件XML文件,不解释直接上 1>主界面 1 &l ...

  3. Android学习--02(猜猜我的星座App源码+Android常用控件TextView+EditText+Button+ImangeView+DatePicker+App间通信+跳转页面)

    猜猜我的星座App 1 Android常用控件 1.1 TextView控件 1.1.1 简介 1.1.2属性 1.1.3 扩展属性 1.1.4 TextView的使用方法 1.1.5总结 1.2 E ...

  4. android如何玩完整光遇,光遇安卓端魔法季开启 光遇魔法季活动玩法攻略

    为庆祝光遇安卓端上线,官方特意开启了魔法季活动,玩家们可以在7月9日-8月5日体验全新的魔法地图,还可能看到遗忘方舟哦!下面就是光遇魔法季活动玩法攻略了,有兴趣的安卓玩家都来看看吧! 光遇安卓端魔法季 ...

  5. php写的注册登录系统吗,php注册登录系统简化版_php技巧

    登录注册系统是日常上网最普通的操作,我设了一个分类一步步完善注册登录系统,若哪里有误,请见谅. 所用语言:php 数据库 :mysql 本次实现功能: 1.用户注册 2.用户登录 主要文件: 完整代码 ...

  6. 移动端UI界面设计之-注册登录

    注册登录是移动端UI界面设计中最基础的板块之一,界面看似简单,但是想设计一个让人眼前一亮的注册登录界面并非易事.今天,小编将和大家一起来聊聊移动端UI界面设计之-登录注册那些事.希望能对设计的朋友有所 ...

  7. PHP注册登录系统(一)-极简

    按: 所用语言:PHP 数据库 :MySQL // 创建数据库test create database test; // 创建数据表 create table user(id int(10) not ...

  8. 微信小程序注册/登录接口开发

    文章目录 后端有关说明 前端有关说明 接口设计 小程序注册/登录接口 APP 注册/登录接口 PC Web 端的注册/登录接口 小程序注册/登录序列图 校验 token 后端有关说明 登录和注册的逻辑 ...

  9. 产品周报第35期|APP端学习门户上线、每日一练新增编程题型、专栏显示订阅来源……

    hello,大家好,这里是「CSDN产品周报」第35期.本次更新主要涉及首页.动态.学习.问答,欢迎大家详细了解和使用. 一.CSDN排行榜更新 1.增加原力年榜 2.热榜算法更新:增加对含有违规图片 ...

最新文章

  1. 关于英伟达数字人文章的致歉和说明
  2. github snap android,GitHub - albuer/heapsnap: HeapSnap 是一个定位内存泄露的工具,适用于Android平台。...
  3. day05 selenium
  4. ulp通信_Java Math类ulp()方法及示例
  5. 酷派S6安全解密之“防窃密防跟踪防监听”
  6. 小孔成像实验探究的软件_小孔成像法观察日食
  7. php_self include,PHP_SELF返回/index.php/index.php
  8. Samba服务器安装测试
  9. 二进制方式搭建极简kubernetes1.10环境@centos7.3
  10. java 防御编程_用Java编程。实现两个人对决。有血量有防御。有攻击力
  11. 魔兽登录后 服务器那显示不兼容,魔兽世界服务器不兼容什么意思?魔兽世界服务器不兼容解决方法...
  12. Go语言使用谷歌浏览器打开指定网址
  13. 倍福---PLC 字符串类型string操作
  14. 小白calculator
  15. 反编译工具dava的使用
  16. 内网工具viper的介绍与配置简介
  17. lua运行外部程序_在C语言程序中嵌入Lua脚本
  18. nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
  19. javascript将数字每三位隔开
  20. Java集合(五)LinkedList底层扩容源码分析

热门文章

  1. Unity中使用SteamVR Plugin时不显示HTC Vive手柄控制器的解决办法
  2. BIOS编译(e3845):MinnowBoard Max/Turbot 1.01 UEFI Firmware
  3. 代码显示苹果 iOS 16.2 将允许 iPhone 更频繁刷新“实时活动”,但也更加耗电
  4. 极简+全场景,华为5G使能快速部署+极致体验
  5. RTKLIB学习记录 dops值输出
  6. 《Python机器学习基础教程》(一)——引言(k近邻算法)
  7. 如何把ppt文档翻译成英文?教你几种ppt翻译方法
  8. 百趣代谢组学文献分享:茶褐素可促进胆固醇降解
  9. ISO26262 Study
  10. 淘宝直通车关键词拖价怎么做?大神导航,一个神奇的网站,从此开启大神之路!