SpringBoot项目+注册功能实现

注册功能实现分析

目录

 一、AppConfig.java

二、register.html

三、UserDto.java

四、UserController.java

五、UserMapper.xml

六、运行结果


 一、AppConfig.java

@Configuration
public class AppConfig implements WebMvcConfigurer {

    //统一视图跳转
    @Override
    public void addViewControllers(ViewControllerRegistry registry){
        //访问路径为http://localhost:8080/时,那么就是访问login文件夹下的login.html页面
        registry.addViewController("/").setViewName("login/login");
        registry.addViewController("/login.html").setViewName("login/login");
        registry.addViewController("/register.html").setViewName("login/register");
    }
}

二、register.html

js表单校验、ajax验证用户名是否被占用、ajax提交表单

       

我同意《驴友网服务公约》

立即注册

三、UserDto.java


/**
 * @description: 注册参数实体
 **/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserDto {
    private String userName; //注册的用户名
    private String password;  //注册的密码
    private String email; //注册的邮箱
}

四、UserController.java


/**
 * @description: 用户相关的控制层
 **/
@Controller//标记控制层,把当前类的对象交给容器管理
//映射路径(访问路径,可以声明在类和方法上),只要访问此类中的资源,一级路径必须是user
@RequestMapping("/user")
@Slf4j //日志框架
public class UserController {
    @Autowired//根据类型自动注入对象
    @Qualifier("userService")//如果指定注入的对象,使用Qualifier注解
    private IUserService userService;

    //登录
    @RequestMapping("login")
    public String login(String username, String password, Model model, HttpSession session) {
        log.info("login方法入参:username={},password={}", username, password);  //日志信息打印
        //1.接收请求中的参数(view-controller):方法的入参直接获取(页面输入的username和password)
        //2.处理数据
        //(1)创建UserServiceImpl的对象 --- 成员变量自动注入
        //(2)调用service中的方法  参数:username password  返回值:UserEntity
        UserEntity user = userService.login(username, password);
        //3.保存数据(controller-view)并跳转页面
        String url;
        //(1)判断登录是否成功
        if (user != null) {
            //(2)成功 1.把数据保存到session中  2.跳转页面到index.html
            session.setAttribute("USER", user);
            if (user.getRole() == 1) {
                url = "index";
            } else {
                url = "/admin/index";
            }
        } else {
            //(3)失败 1.把异常信息保存到model中  2.跳转到login.html
            model.addAttribute("msg", "登录名或者密码错误");
            url = "/login/login";
        }
        //经过视图解析器,最终路径解析为 前缀(/templates/)+url+后缀(.html)
        return url;
    }

    //验证用户名是否存在
    @RequestMapping("/checkUserName")
    public @ResponseBody
    boolean checkUserName(String username) {
        System.out.println("==============" + username);
        //1.接收页面参数---方法入参  username
        //2.处理数据,调用service中验证用户名是否注册过的方法  参数:userName  返回值:boolean
        return userService.checkUserName(username);
    }

    //注册
    @RequestMapping("/register")
    public @ResponseBody
    boolean register(UserDto userDto) {
        System.out.println("===============" + userDto);
        //1.接收页面参数--方法入参 UserDto
        //2.调用service中注册的方法   参数:UserDto 返回值:boolean
        return userService.register(userDto);
    }

}

五、UserMapper.xml

注:IUservice接口、UserServerImpl类、UserMapper接口略






    
    
    
    
    

    
    
        insert into t_user(username, password, email, status, role)
        values (#{userName}, #{password}, #{email}, 1, 1)
    

六、运行结果

SpringBoot项目+注册功能实现_第1张图片

你可能感兴趣的:(spring,boot,java,spring)