目录
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的登录,若失败,则返回失败信息,如密码不正确等;对于注册,则会判断账号是否存在,输入是否为空等条件,若正确,则插入数据库,注册成功,否则失败。