1. 程式人生 > >無資料庫版本最簡單的登入註冊後臺系統--springboot版本

無資料庫版本最簡單的登入註冊後臺系統--springboot版本

簡單的springboot 登入註冊版本,讓你感受springboot和註解的便利性

【準備工作】:postman--便於介面測試,idea社群版本或者旗艦版本,社群版本需要安裝plug-in搜尋spring assistant就可以。

【建立工程,搭好架構】:如圖:

  1. 建立User類簡單的幾個屬性
    package com.zhangyiyi.chapter1.domain;
    
    public class User {
        private String userName;
        private String phoneNum;
        private String passWd;
    
        public String getUserName() {
            return userName;
        }
    
        public void setUserName(String userName) {
            this.userName = userName;
        }
    
        public String getPhoneNum() {
            return phoneNum;
        }
    
        public void setPhoneNum(String phoneNum) {
            this.phoneNum = phoneNum;
        }
    
        public String getPassWd() {
            return passWd;
        }
    
        public void setPassWd(String passWd) {
            this.passWd = passWd;
        }
    }
    
  2.  建立LoginController作為攔截使用者請求到對應的處理介面,稍後講解spring mvc的開發步驟
    package com.zhangyiyi.chapter1.controller;
    
    import com.zhangyiyi.chapter1.domain.User;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.ArrayList;
    import java.util.List;
    
    @RestController
    public class LoginController {
     private List<User> userList;
        public LoginController(){
            super();
            userList=new ArrayList<User>();
    
        }
        public static Log logger=LogFactory.getLog(LoginController.class);
        @PostMapping(value = "/login")
        public String login(@RequestParam("phonenum") String phoneNum,
                            @RequestParam("passwd") String passWd){
            for(User user:userList){
                if(user.getPassWd().equals(passWd)&&user.getPhoneNum().equals(phoneNum)){
                    logger.info("loginpost 方法訪問");
                    return user.getUserName()+"歡迎登陸";
    
                }
            }
            return "登入失敗";
        }
        @PostMapping(value = "/register")
        public  String register(@RequestParam("phonenum") String phoneNum,
                                @RequestParam("passwd") String passWd,
                                @RequestParam("username") String userName){
            User user=new User();
            user.setPassWd(passWd);
            user.setUserName(userName);
            user.setPhoneNum(phoneNum);
            userList.add(user);
            return userName+"註冊成功";
    
        }
    }
    
  3.  入口函式:

    package com.zhangyiyi.chapter1;
    
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class Chapter1ApplicationTests {
    
    
        public static void main(String[] args) {
                SpringApplication.run(Chapter1Application.class, args);
              }
    
    }

    刪除test的方法,建立main方法,然後開啟執行。

  4. postman測試介面,首先查詢你自己的本機ipv4地址,最簡單的就是cmd裡面輸入ipconfig獲取

  5. 使用:

  6. 註冊和登入使用

  7. 結果:

【現在講解spring mvc開發步驟 】:

  1. 前段控制器DispatcherServlet來攔截使用者請求
  2. 定義處理使用者請求的Handle類,其實就是我們寫的LoginController,兩種方式實現controller介面或者使用註解,實現介面方式如下:

       還是推薦使用註解方式,至於為什麼,你不覺得這樣很方便麼?定義controller是MVC裡面必不可少的,DispatcherServlet就是裡面的C,前端控制器,負責接收請求,再把請求分配給對應Handle,正常來說註冊與登入應該寫成兩個java類,本文為了方便暫時寫到一塊。

疑問點:Controller並未收到使用者請求,他如何處理的?MVC框架底層機制就是:前端Servlet接收到使用者請求,通常做預處理,解析,封裝引數,通過反射建立Controller,並呼叫指定方法:

如:

這兩一一對應所以這個註解的方法就會接收到字尾為login的使用者請求了,是不是很簡單也同時學習了註解的作用?

當然還有一種方式是用xml配置檔案代替註解方法,spring2.5以後不推薦所以就不講啦。

總結:Spring MVC框架中,控制器由兩個部分共同組成, ,DispatcherServlet和Controller,前者攔截使用者請求和處理,後者負責業務控制,例如呼叫後臺業務邏輯程式碼,返回處理結果。

下一章就重點講五花八門的註解啦