Android學習之完整的註冊登錄Demo(APP端+服務器端)

因比賽或者項目需要,寫了幾個小打小鬧的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. 示意圖
    APP界面示意圖
  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地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章