国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot實現(xiàn)登陸注冊(附源碼)

這篇具有很好參考價值的文章主要介紹了SpringBoot實現(xiàn)登陸注冊(附源碼)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

此項目前端由html+css+vue(發(fā)送請求)組成,后端由springboot進(jìn)行處理請求,相關(guān)數(shù)據(jù)庫操作語句選用的是mybatis-plus

? ? ? ? 先看看我的項目總結(jié)吧:

先說完美的吧,因為前端登陸注冊界面是之前的,這次就復(fù)制了一下,在前端部分僅書寫了一些vue,使用v-model綁定username以及password,發(fā)送axios請求,后端那部分因為使用的是mybatis-plus,也沒有編寫一些sql語句,當(dāng)然,這些sql語句也不是很復(fù)雜的,有時間的小伙伴可以直接試著編寫,或在我這基礎(chǔ)上進(jìn)行修改,controller層的話,就是一些邏輯語句,例如:登陸時先判斷數(shù)據(jù)庫中是否存在該用戶,若存在再進(jìn)行密碼比對,注冊時則是先判斷用戶是否已經(jīng)注冊,存在數(shù)據(jù)庫中,若不存在再讓其進(jìn)行注冊。總而言之,此項目花費不到四十分鐘,總體還是不錯對于新手小白來說,我認(rèn)為困難的部分則是在前后端交互那個地方,存在一些差異,二者的數(shù)據(jù)格式不統(tǒng)一。

? ? ? ? 不足的地方,就是界面過于簡單,沒有啥js效果,效果非常直接,以及vue發(fā)送請求需要多加練習(xí)。

先看項目運(yùn)行后主界面效果:

登陸界面如下:

springboot登錄注冊功能,spring boot,java,mybatis

注冊界面如下:

springboot登錄注冊功能,spring boot,java,mybatis

?

項目目錄結(jié)構(gòu)如下:

springboot登錄注冊功能,spring boot,java,mybatis

?

1.數(shù)據(jù)庫中表的設(shè)計

1.1 創(chuàng)建一個表其中有兩個字段一個用戶名(varcahr類型,primary key)一個密碼(varchar類型)

1.2 表結(jié)構(gòu)如下所示

springboot登錄注冊功能,spring boot,java,mybatis

2.需要導(dǎo)入的jar包(pom.xml文件)以及相關(guān)配置設(shè)置(數(shù)據(jù)庫信息以及端口)

2.1文件具體相關(guān)代碼如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.wz</groupId>
    <artifactId>LogAndRegister</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>LogAndRegister</name>
    <description>LogAndRegister</description>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.76</version>
        </dependency>

        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.23</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

2.2數(shù)據(jù)庫信息以及端口

server:
  port: 81
spring:
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/logandregister
      username: root
      password: 111111

3.后端相關(guān)代碼的編寫

?3.1 后端返回給前端的信息封裝在R類中



@Data
public class R<T> {

    private Integer code; //編碼:1成功,0和其它數(shù)字為失敗

    private String msg; //錯誤信息

    private T data; //數(shù)據(jù)

    private Map map = new HashMap(); //動態(tài)數(shù)據(jù)

    public static <T> R<T> success(T object) {
        R<T> r = new R<T>();
        r.data = object;
        r.code = 1;
        return r;
    }

    public static <T> R<T> error(String msg) {
        R r = new R();
        r.msg = msg;
        r.code = 0;
        return r;
    }

    public R<T> add(String key, Object value) {
        this.map.put(key, value);
        return this;
    }

}

3.2 User實體類(即用戶的信息(賬號密碼))


@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private String username;
    private String password;
}

3.3 Controller(控制層相關(guān)代碼,處理前端發(fā)送的請求)


@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {

    @Autowired
    private UserService userService;
    @PostMapping("/login")
    public R<String> login(@RequestBody User user){
        log.info("user:{}",user);
        LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();
        lqw.eq(User::getUsername,user.getUsername());
        User one = userService.getOne(lqw);
        System.out.println(one);
        // 查詢不到用戶
        if (one == null){
            return R.error("用戶賬號不存在");
        }
        // 密碼錯誤
        if(!one.getPassword().equals(user.getPassword())){
            return R.error("密碼錯誤");
        }
        return R.success("登陸成功");
    }
    @PostMapping("/register")
    public R<String> register(@RequestBody User user){
        log.info("user:{}",user);
        // 判斷前端傳來的數(shù)據(jù)是否正常
        if (user==null){
            return R.error("請輸入注冊信息");
        }
        // 判斷賬號是否存在
        String username = user.getUsername();
        LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(User::getUsername,username);
        User one = userService.getOne(lambdaQueryWrapper);
        if (one!=null){
            return R.error("用戶賬號已注冊");
        }
        // 二者都滿足則以下
        userService.save(user);
        return R.success("注冊成功");

    }

}

3.4 Mapper層相關(guān)代碼


@Mapper
public interface UserMapper extends BaseMapper<User> {
}

3.5 定義的Service接口代碼


public interface UserService extends IService<User> {
}

3.6實現(xiàn)Service接口的實現(xiàn)類

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}

4.前端相關(guān)代碼

4.1 登陸界面login.html(包含vue發(fā)送請求)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>login</title>
    <link href="css/login.css" rel="stylesheet">
</head>

<body>
<div id="loginDiv">
    <form  id="form" >
        <h1 id="loginMsg">LOGIN IN</h1>
        <p>Username:<input id="username" name="username" type="text" v-model="userName"></p>
        <p>Password:<input id="password" name="password" type="password" v-model="passWord"></p>

        <div id="subDiv">
            <input type="submit" class="button" value="login up" @click="login">
            <input type="reset" class="button" value="reset" >
            <a href="register.html">沒有賬號?點擊注冊</a>
        </div>
    </form>
</div>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    var app = new Vue({
        el: "#loginDiv",
        data: {
            userName: "",
            passWord: "",
        },
        methods: {
            login:function (){
                console.log(this.userName,this.passWord);
                axios.post('http://localhost:81/user/login',
                    {
                    username: this.userName,
                    password: this.passWord,
                }).then( resp=> {
                    console.log(resp)
                    if (resp.data.code == '1') {
                        window.location.href = 'loginSuccess.html';
                    }else {
                        alert("賬號或密碼錯誤");
                        this.userName='';
                        this.passWord='';
                        }
                    })
                }
        }
    })
</script>
</body>
</html>

4.2 注冊界面register.html(包含vue發(fā)送請求)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>歡迎注冊</title>
    <link href="css/register.css" rel="stylesheet">
</head>
<body>

<div class="form-div">
    <div class="reg-content">
        <h1>歡迎注冊</h1>
        <span>已有帳號?</span> <a href="login.html">登錄</a>
    </div>
    <form id="reg-form">

        <table>

            <tr>
                <td>用戶名</td>
                <td class="inputs">
                    <input name="username" type="text" id="username" v-model="userName">
                    <br>
                    <span id="username_err" class="err_msg" style="display: none">用戶名不太受歡迎</span>
                </td>

            </tr>

            <tr>
                <td>密碼</td>
                <td class="inputs">
                    <input name="password" type="password" id="password" v-model="passWord">
                    <br>
                    <span id="password_err" class="err_msg" style="display: none">密碼格式有誤</span>
                </td>
            </tr>

        </table>

        <div class="buttons">
            <input value="注 冊" type="submit" id="reg_btn" @click="register">
        </div>
        <br class="clear">
    </form>

</div>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    var app = new Vue({
        el: "#reg-form",
        data: {
            userName: "",
            passWord: "",
        },
        methods: {
            register: function () {
                console.log(this.userName, this.passWord);
                axios.post('http://localhost:81/user/register',
                    {
                        username: this.userName,
                        password: this.passWord,
                    }).then(resp => {
                    console.log(resp)
                    if (resp.data.code == '1') {
                        alert(resp.data.data);
                        window.location.href = 'login.html';
                    } else {
                        console.log(resp.data.data);
                        alert(resp.data.data);
                        this.userName = '';
                        this.passWord = '';
                    }
                })
            }
        }
    })
</script>
</body>
</html>

5.項目完畢總結(jié)

? ? ? ? 先說完美的吧,因為前端登陸注冊界面是之前的,這次就復(fù)制了一下,在前端部分僅書寫了一些vue,使用v-model綁定username以及password,發(fā)送axios請求,后端那部分因為使用的是mybatis-plus,也沒有編寫一些sql語句,當(dāng)然,這些sql語句也不是很復(fù)雜的,有時間的小伙伴可以直接試著編寫,或在我這基礎(chǔ)上進(jìn)行修改,controller層的話,就是一些邏輯語句,例如:登陸時先判斷數(shù)據(jù)庫中是否存在該用戶,若存在再進(jìn)行密碼比對,注冊時則是先判斷用戶是否已經(jīng)注冊,存在數(shù)據(jù)庫中,若不存在再讓其進(jìn)行注冊??偠灾?,此項目花費不到四十分鐘,總體還是不錯對于新手小白來說,我認(rèn)為困難的部分則是在前后端交互那個地方,存在一些差異,二者的數(shù)據(jù)格式不統(tǒng)一。

? ? ? ? 不足的地方,就是界面過于簡單,沒有啥js效果,效果非常直接,以及vue發(fā)送請求需要多加練習(xí)。

有需要的小伙伴可以后臺私信我發(fā)源碼哦,碼文不易,小伙伴可以點個贊哦?。?!

? ? ? ??文章來源地址http://www.zghlxwxcb.cn/news/detail-679191.html

到了這里,關(guān)于SpringBoot實現(xiàn)登陸注冊(附源碼)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Springboot實現(xiàn)登錄注冊

    Springboot實現(xiàn)登錄注冊

    功能:1、實現(xiàn)用戶的登錄 2、實現(xiàn)用戶的注冊以及重名的判斷 LoginControl: RegisterControl: UserInfDaoInterface: UserInf: UserInfService: UserInfServiceInterface: DemoApplication: application.properties: login.jsp login_success.jsp login_failure register.jsp register_success.jsp register_failure register_failure_user pom.

    2024年02月03日
    瀏覽(14)
  • SpringBoot + layui 框架實現(xiàn)一周免登陸功能

    SpringBoot + layui 框架實現(xiàn)一周免登陸功能

    ?作者簡介:2022年 博客新星 第八 。熱愛國學(xué)的Java后端開發(fā)者,修心和技術(shù)同步精進(jìn)。 ??個人主頁:Java Fans的博客 ??個人信條:不遷怒,不貳過。小知識,大智慧。 ??當(dāng)前專欄:SpringBoot 框架從入門到精通 ?特色專欄:國學(xué)周更-心性養(yǎng)成之路 ??本文內(nèi)容:SpringBoot +

    2024年02月10日
    瀏覽(15)
  • Vue+SpringBoot項目開發(fā):后臺登陸功能的實現(xiàn)(二)

    Vue+SpringBoot項目開發(fā):后臺登陸功能的實現(xiàn)(二)

    項目搭建傳送門:從零開始,SpringBoot項目快速搭建 在本地mysql數(shù)據(jù)庫新建庫,庫名:vue_demo,(數(shù)據(jù)庫名字可自行更改,更改完記得在pom.xml中也同步更改) 項目結(jié)構(gòu) 下面是具體文件的代碼 pom.xml 返回實體類封裝ResultBody ResultBody.java 用戶實體類 User.java 登錄方法入?yún)?LoginReq.

    2024年02月13日
    瀏覽(15)
  • springboot使用 WxJava 實現(xiàn) 微信小程序(uniapp開發(fā))的登陸功能

    springboot使用 WxJava 實現(xiàn) 微信小程序(uniapp開發(fā))的登陸功能

    前端使用uniapp來開發(fā)微信小程序 后端springboot中使用WxJava來做服務(wù)端( WxJava是微信服務(wù)端開發(fā) 的Java SDK ) 該圖來源于微信小程序官方文檔 根據(jù)uniapp的官網(wǎng)直接通過它提供的第三方 登陸api直接使用,代碼如下 直接根據(jù)WxJava的官方demo (1) yml配置 (2)兩個配置文件 (3)contro

    2024年02月15日
    瀏覽(91)
  • 【業(yè)務(wù)功能篇96】微服務(wù)-springcloud-springboot-認(rèn)證服務(wù)-登錄注冊功能-Auth2.0-分布式session

    【業(yè)務(wù)功能篇96】微服務(wù)-springcloud-springboot-認(rèn)證服務(wù)-登錄注冊功能-Auth2.0-分布式session

    ??通過最基礎(chǔ)的登錄操作來完成登錄處理 登錄頁面處理 認(rèn)證服務(wù)的處理 會員中心的認(rèn)證邏輯 service中的具體認(rèn)證處理 ??OAuth2.0是OAuth協(xié)議的延續(xù)版本,但不向前兼容OAuth 1.0(即完全廢止了OAuth1.0)。 OAuth 2.0關(guān)注客戶端開發(fā)者的簡易性。要么通過組織在資源擁有者和HTTP服務(wù)商

    2024年02月09日
    瀏覽(25)
  • 手把手教你制作登錄、注冊界面 SpringBoot+Vue.js(cookie的靈活運(yùn)用,驗證碼功能)

    手把手教你制作登錄、注冊界面 SpringBoot+Vue.js(cookie的靈活運(yùn)用,驗證碼功能)

    實現(xiàn)思路:用戶在界面輸入用戶名和密碼傳入變量。用post方法傳輸?shù)胶蠖?,后端接收整個實體對象。將用戶名提取出。在dao層方法中通過select注解查詢,返回數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)對象。如果返回為空則return false。不為空則通過比對數(shù)據(jù)庫返回的密碼和用戶輸入的密碼,如果二者

    2024年02月03日
    瀏覽(20)
  • springboot+vue+elementsUI 實現(xiàn)分角色注冊登錄界面

    springboot+vue+elementsUI 實現(xiàn)分角色注冊登錄界面

    一、項目簡介 一共分為三個角色:管理員、用戶、設(shè)計師 登錄功能:賬號+密碼+身份選擇,登錄成功后跳轉(zhuǎn)到各身份對應(yīng)的頁面 注冊功能:只允許用戶和設(shè)計師注冊,用戶可以直接注冊成功,設(shè)計師提交材料后注冊需要管理員審核成功后方可注冊成功。 注冊頁面要求必填:

    2024年02月07日
    瀏覽(128)
  • 微服務(wù)系列文章之 Springboot+Vue實現(xiàn)登錄注冊

    微服務(wù)系列文章之 Springboot+Vue實現(xiàn)登錄注冊

    一、springBoot 創(chuàng)建springBoot項目 ? 分為三個包,分別為controller,service, dao以及resource目錄下的xml文件。 添加pom.xml 依賴 UserController.java ? UserService.java ? User.java (我安裝了lombok插件) ? UserMapper.java ? UserMapper.xml ? 主干配置 application.yaml ? 數(shù)據(jù)庫需要建相應(yīng)得到表 1 2 3 4 CREA

    2024年02月13日
    瀏覽(23)
  • springboot實現(xiàn)登錄功能

    springboot實現(xiàn)登錄功能

    springboot實現(xiàn)登錄功能需完成以下步驟: 實現(xiàn)springboot啟動器 使用maven下載相應(yīng)的包 配置resources目錄下的application.yaml文件 編寫數(shù)據(jù)庫entity實體層、service業(yè)務(wù)層 實現(xiàn)公共函數(shù)result 編寫controller控制層 springboot啟動類 使用idea創(chuàng)建的springboot項目,會自動生成啟動類,有 @SpringBoot

    2024年02月15日
    瀏覽(10)
  • SpringBoot+Vue實現(xiàn)一個系統(tǒng)登錄功能

    1. 創(chuàng)建一個Spring Boot項目,添加Web和Security依賴。 2. 創(chuàng)建一個User實體類,用于存儲用戶信息。 3. 創(chuàng)建一個UserDetailsService接口的實現(xiàn)類,用于加載用戶信息。 4. 創(chuàng)建一個WebSecurityConfig類,繼承WebSecurityConfigurerAdapter,并重寫configure方法,配置SpringSecurity。 5. 在Vue項目中創(chuàng)建一個

    2024年01月15日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包