山东大学软件学院创新实训——飞讯(三)

目录

一.目标概述

二.springboot设置路由

三.springboot接收前端数据

1.接收请求头数据

2.接收请求体数据

3.Restful风格接收参数

四.数据的装载

五.数据的返回

 六.登录注册的实现

1.流程架构图

2.controller层

3.service层

4.dao层

5.xml数据库语句

6.为了装载数据,对实体类进行定义,对传送和返回的数据进行装载

七.总结


一.目标概述

    通过接近一周时间对springboot的学习,我对springboot有了基本的了解,知道了springboot与前端的交互方式、对数据的处理方式以及使用方法,因此,这次的目标是采用springboot完成登录注册功能,从而巩固springboot的知识,为后续的开发作准备。

二.springboot设置路由

@RequestMapping("/user")

三.springboot接收前端数据

1.接收请求头数据

@RequestParam

2.接收请求体数据

@RequestBody

3.Restful风格接收参数

@PathVariable

四.数据的装载

采用map进行json数据的接收

@RequestBody Map<String,Object> bodyMap

五.数据的返回

采用json进行数据的返回,json包括code,msg和data,code为响应的状态码,msg为相应的信息,data为返回的数据,当code为200时,表示响应成功,并在data中返回相应的数据,当code为400时,表示响应失败,在msg中返回失败的原因。

 六.登录注册的实现

1.流程架构图

2.controller层

@RequestMapping("/login")
    public JsonResult<User> login(@RequestBody Map<String,String> map){
        if (!map.containsKey("userid") || map.get("userid").equals("") || map.get("userid") == null){
            return new JsonResult<User>("400","缺少userid");
        }
        if (!map.containsKey("password") || map.get("password").equals("") || map.get("password") == null){
            return new JsonResult<User>("400","缺少password");
        }
        String userid = map.get("userid");
        String password = map.get("password");
        String userSig = userSigService.generateUserSig(userid);
        User user = new User(userid,password,userSig);

        User resUser = userSigService.login(user);
        if (resUser != null){
            JsonResult<User> jsonResult = new JsonResult<User>("200",user,"登录成功");
            return jsonResult;
        }
        else{
            User is_exist = userSigService.user_exist(user);
            if (is_exist != null){
                return new JsonResult<User>("400","密码错误");
            }
            else {
                return new JsonResult<User>("400","该用户未注册");
            }
        }
    }

    @RequestMapping("/register")
    public JsonResult<User> register(@RequestBody Map<String,String> map){
        if (!map.containsKey("userid") || map.get("userid").equals("") || map.get("userid") == null){
            return new JsonResult<User>("400","缺少userid");
        }
        if (!map.containsKey("password") || map.get("password").equals("") || map.get("password") == null){
            return new JsonResult<User>("400","缺少password");
        }
        String userid = map.get("userid");
        String password = map.get("password");
        String userSig = userSigService.generateUserSig(userid);
        User user = new User(userid,password,userSig);

        int res = userSigService.register(user);
        if (res == ResCondition.register_success){
            JsonResult<User> jsonResult = new JsonResult<User>("400",user,"注册成功");
            return jsonResult;
        }
        else if (res == ResCondition.register_existed){
            return new JsonResult<User>("400","用户已存在");
        }
        else if (res == ResCondition.register_fail){
            return new JsonResult<User>("400","注册失败");
        }
        else {
            return new JsonResult<User>("400","未知的错误");
        }
    }

3.service层

service接口:

//登录
public User login(User user);

//注册
public int register(User user);

service实现:

    @Override
    public User login(User user) {
        return userSigMapper.login(user);
    }

    @Override
    public int register(User user) {
        User user_exist = userSigMapper.user_exist(user);
        if (user_exist != null){
            return ResCondition.register_existed;
        }
        else {
            int success = userSigMapper.register(user);
            if (success > 0){
                return ResCondition.register_success;
            }
            else {
                return ResCondition.register_fail;
            }
        }
    }

4.dao层

    //登录
    public User login(User user);

    //注册
    public int register(User user);

5.xml数据库语句

    <select id="login" resultType="User" parameterType="User">
        select userid,password from user where userid = #{userid} and password = #{password}
    </select>

    <insert id="register" parameterType="User">
        insert into user(userid,password) values (#{userid},#{password})
    </insert>

6.为了装载数据,对实体类进行定义,对传送和返回的数据进行装载

package com.feixun.feixunshiyan.domain;

public class User {

    private String userid;
    private String password;
    private String userSig;

    public User(String userid, String password, String userSig) {
        this.userid = userid;
        this.password = password;
        this.userSig = userSig;
    }

    public User(String userid, String password) {
        this.userid = userid;
        this.password = password;
    }

    public String getUserid() {
        return userid;
    }

    public void setUserid(String userid) {
        this.userid = userid;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUserSig() {
        return userSig;
    }

    public void setUserSig(String userSig) {
        this.userSig = userSig;
    }

    @Override
    public String toString() {
        return "User{" +
                "userid='" + userid + '\'' +
                ", password='" + password + '\'' +
                ", userSig='" + userSig + '\'' +
                '}';
    }
}

此时,基于springboot框架的登录注册的功能已经实现。

七.总结

    通过这次对springboot的实践操作,加深了我对springboot的基础知识,懂得了springboot的基本使用用法,同时利用springboot完成了登录和注册的后端功能,对于登录,当前端传来用户的数据时,对数据进行查询,若账号存在且密码正确,则返回userid和userSig,以进行im的登录,若失败,则返回失败信息,如密码不正确等;对于注册,则会判断账号是否存在,输入是否为空等条件,若正确,则插入数据库,注册成功,否则失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值