Java开发:实现用户注册登录的功能

这篇具有很好参考价值的文章主要介绍了Java开发:实现用户注册登录的功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

在Java开发过程中,实现用户的注册功能是最基本的,用户通过手机号或者邮箱作为注册账号也是非常常见的操作方式,不管是通过手机号注册或者邮箱注册,原理都差不多,那么本文就来分享一下在Java开发过程中的用户注册账号的功能实现。

二、准备工作

1、通过Java语言来实现用户注册登录的后台功能;

2、使用环境有JDK6、Eclipse、Oracle10G、Tomcat等;

三、具体实现思路及核心步骤

1、数据库设计

①数据库的表名称以及要求:

表名:users 主键:id 

字段名称:id:用户id,username:用户名称,password:密码,group_id:用户类型id ②创建数据表,创建主、外键,创建序列,新加测试数据

2、使用Eclipse创建web项目UserDemo

3、给项目工程添加Spring、Hibernate等支持,并且正确引入集成到项目中,以及配置

4、创建数据持久化类,以及对应的映射文件,让用户类型和用户之间建立双向一对多的关系

5、新建接口以及实现类,使用spring数据库对象实现对应数据库的操作

6、创建service接口以及实现类,并且实现对应的业务逻辑

7、创建action类,并引入接口和访问器,完成配置文件

8、新建spring配置文件,实现对应的对象声明和配置

9、前端部分的界面搭建,以及接口联调

10、测试环节:调试运行成功之后将对应的相关数据库对象导出sql文件,以及用户注册数据的备份机制处理,完成测试,实现用户注册登录的功能。

四、核心代码

1、UserService.java文件的核心代码

public interface UserService {
    /**
     * 用户注册
     *
     * @param userId
     * @param dto
     * @throws Exception
     */
    void userRegister(Long userId, UserRegisterDTO dto) throws Exception;
    /**
     * 忘记密码
     *
     * @param userId
     * @param dto
     * @throws Exception
     */
    void updatePassword(Long userId, UpdatePasswordDTO dto) throws Exception;
    /**
     * 通过邮箱发送验证码
     *
     * @param userId
     * @param email
     * @throws BusinessException
     */
    void sendVerificationCode(Long userId, String email) throws BusinessException;
    /**
     * 通过用户名密码获取用户
     *
     * @param loginName
     * @param loginPwd
     * @return
     * @throws BusinessException
     */
    User getUser(String loginName, String loginPwd) throws BusinessException;
}

2、UserController.java文件的核心代码

@RestController
@Slf4j
public class UserController extends BaseController {
    private final UserService userService;
    @Autowired
    public UserController(UserService userService) {
        this.userService = userService;
    }
    /**
     * 会员注册
     *
     * @param dto
     * @param request
     * @return
     * @throws Exception
     */
    @ApiOperation(value = "会员注册", produces = "application/json")
    @ApiResponses({@ApiResponse(code = AjaxReturn.SUCCESS, message = "注冊成功", response = AjaxReturn.class)})
    @PostMapping(path = {"/user-save"})
    public AjaxReturn userRegister(@ModelAttribute UserRegisterDTO dto, HttpServletRequest request) throws Exception {
        log.info(dto.toString());
        Long userId = getAuthentication(request);
        if (StringUtils.isBlank(dto.getMobile()) && StringUtils.isBlank(dto.getEmail())) {
            throw new BusinessException("请输入手机号或邮箱");
        }
        if (StringUtils.isNotBlank(dto.getMobile()) && !StringUtils.isNumeric(dto.getMobile())) {
            throw new BusinessException("请输入正确的手机号");
        }
        if (StringUtils.isNotBlank(dto.getEmail()) && !StringUtils.isEmail(dto.getEmail())) {
            throw new BusinessException("请输入正确的邮箱");
        }
        if (StringUtils.isBlank(dto.getLoginPwd())) {
            throw new BusinessException("password must not be null");
        }
        // 密码MD5加密
        dto.setLoginPwd(DigestUtils.md5Hex(dto.getLoginPwd()));
        if (StringUtils.isBlank(dto.getVerificationCode())) {
            throw new BusinessException("verification code must not be null");
        }
        userService.userRegister(userId, dto);
        return AjaxReturn.builder().build();
    }
    /**
     * 忘记密码
     *
     * @param dto
     * @param request
     * @return
     * @throws Exception
     */
    @ApiOperation(value = "忘记密码", produces = "application/json")
    @ApiResponses({@ApiResponse(code = AjaxReturn.SUCCESS, message = "更新密码成功", response = AjaxReturn.class)})
    @PostMapping(path = {"/user-password-forget"})
    public AjaxReturn updatePassword(@ModelAttribute UpdatePasswordDTO dto, HttpServletRequest request) throws Exception {
        Long userId = getAuthentication(request);
        if (StringUtils.isBlank(dto.getMobile()) && StringUtils.isBlank(dto.getEmail())) {
            throw new BusinessException("请输入手机号或邮箱");
        }
        if (StringUtils.isNotBlank(dto.getMobile()) && !StringUtils.isNumeric(dto.getMobile())) {
            throw new BusinessException("请输入正确的手机号");
        }
        if (StringUtils.isNotBlank(dto.getEmail()) && !StringUtils.isEmail(dto.getMobile())) {
            throw new BusinessException("请输入正确的邮箱");
        }
        if (StringUtils.isBlank(dto.getLoginPwd())) {
            throw new BusinessException("password must not be null");
        }
        // 密码MD5加密
        dto.setLoginPwd(DigestUtils.md5Hex(dto.getLoginPwd()));
        if (StringUtils.isBlank(dto.getVerificationCode())) {
            throw new BusinessException("verification code must not be null");
        }
        userService.updatePassword(userId, dto);
        return AjaxReturn.builder().build();
    }
    /**
     * 通过邮件发送验证码
     *
     * @param email
     * @param request
     * @return
     * @throws BusinessException
     */
    @ApiOperation(value = "通过邮件发送验证码", produces = "application/json")
    @ApiResponses({@ApiResponse(code = AjaxReturn.SUCCESS, message = "通过邮件发送验证码成功", response = AjaxReturn.class)})
    @PostMapping(path = {"/verification-code-send"})
    public AjaxReturn sendVerificationCode(@ApiParam(name = "email", value = "邮箱", required = true) @RequestParam String email, HttpServletRequest request) throws BusinessException {
        Long userId = getAuthentication(request);
        userService.sendVerificationCode(userId, email);
        return AjaxReturn.builder().build();
    }
}

3、LoginController文件

Java开发:实现用户注册登录的功能

五、注意事项

1、注意代码的书写、命名规范;

2、在关键代码处加注解,方便后期维护;

3、考虑控件摆放整齐,留意界面美观;

4、在操作数据库的时候需要注意必要的异常处理,建立容错机制。

最后

通过上文讲述的流程步骤,就简单实现了一个比较全面的用户注册登录的功能,虽然这个功能很普遍,但是对于Java开发刚入门的新手来说还是有难度的,这个命题可以作为出入Java开发者来作为练习的知识点,以上就是本文的全部内容,如有不妥之处,还请多多提出来。

 文章来源地址https://www.toymoban.com/news/detail-408350.html

到了这里,关于Java开发:实现用户注册登录的功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaWeb项目----实现用户登录、注册、对商品信息进行的添加、删除、修改功能

    在idea中创建有关类   web中写jsp页面,index.jsp是首页布局 运行效果如下:  登录页面 运行效果如下:   注册页面  运行效果如下:   登陆正确时跳转到zhuye.jsp主页页面( 使用Java脚本获取集合中对象的元素,放html标签中) 运行效果如下:   在登陆页面,密码或用户名输入

    2024年02月11日
    浏览(40)
  • 安卓studio 个人课设项目:“这个app“——实现注册登录,显示用户信息功能,并跳转对应网页

    目录 目录 功能说明  登录页面 注册页面 登录后界面 点击头像出现侧滑界面,并显示用户信息 点击编辑按钮进入信息编辑页面  保存后返回  用户名已更改 跳转网页 相关代码 布局 登录界面  注册界面  信息显示界面  主界面 实现侧滑布局  信息编辑界面 网页显示界面 

    2023年04月26日
    浏览(45)
  • 手把手教你实现:Android注册登录功能,通过本地服务器保存用户账号密码到数据库

    代码我放到文章最后面了 首先你需要电脑一台:如果没有电脑将会很难办呢 -----沃兹基硕德 下载并安装以下开发工具 Android Studio 官网最新版 用来开发 安卓App IntelliJ IDEA 官网最新版 用来开发 后端 ,处理安卓APP的请求 Navicat for MySql 官网最新版 数据库可视化工具,用来查看数

    2024年01月16日
    浏览(51)
  • 使用javaweb实现登录注册页面,并且对功能和业务进行分层 用户登录成功跳转到主页并展示数据库的商品的信息

    一、Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据。 Servlet+JSP+JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式。 这里以一个最常用的用户登录

    2024年02月03日
    浏览(64)
  • 【Java案例】用户登录注册

    案例介绍: 编写程序实现简单的用户登录注册功能。程序包含以下4个功能: (1)登录功能,用户输入正确的账号密码登录成功; (2)注册功能,输入用户名和密码进行注册; (3)查看功能,查看所有的用户名与密码; (4)退出功能,退出系统; 用户可以输入对应的编

    2024年01月16日
    浏览(38)
  • Django用户认证: 利用Django Auth模块实现用户注册、登录与登出

    用户登录注册属于用户认证的一部分,Django内置了一套用户认证体系,使用起来比较方便,而且支持用户定制和拓展,足以满足任何复杂的业务需求。 Django框架中,用户权限管理被划分为三个层次: 用户 :系统使用者,拥有自己的权限。可被一个或多个用户组包含。 用户组

    2023年04月20日
    浏览(58)
  • 【基于Django框架的在线教育平台开发-02】用户注册功能开发

    用户数据表如下所示: Field Type Extra id int Prime Key Auto Increment password varchar(128) last_login datetime(6) Allow Null is_superuser tinyint(1) username varchar(150) first_name varchar(150) last_name varchar(150) email varchar(254) is_staff tinyint(1) is_active tinyint(1) date_joined datetime(6) nick_name varchar(50) birthday date Allow Null

    2024年02月11日
    浏览(36)
  • Java--用户登录/注册界面(连接Mysql数据库)并可以通过验证码登录

    1 效果展示 (1)登录界面 (2)注册界面 (3)动图展示 2 内容说明 (1)开发前,需引入一个连接Mysql 数据库驱动mysql-connector-java-5.1.30-bin.jar包 提取码:6666 (2)构建路径 (3)需要下载xampp软件 xampp软件下载 提取码:2255 xampp软件包含 Apache Web服务器、 Mysql Web服务器、Filezilla

    2024年02月09日
    浏览(63)
  • “Layui用户认证:实现安全高效的登录和注册体验”

    layui(谐音:类 UI) 是一套开源的 Web UI 解决方案,采用自身经典的模块化规范,并遵循原生 HTML/CSS/JS 的开发方式,极易上手,拿来即用。其风格简约轻盈,而组件优雅丰盈,从源代码到使用方法的每一处细节都经过精心雕琢,非常适合网页界面的快速开发。layui 区别于那些基

    2024年02月16日
    浏览(46)
  • Django实现用户注册登录,表单提交后跳转网页(学习笔记)

    效果图如下:   使用命令提示符,进入想存放项目的目录: 在项目coco目录下新建static文件夹,用于存放网页文件的css,js,imgs 在coco_app目录下新建文件夹templates,用于存放需要用到的HTML网页 打开coco文件夹中的settings.py注册coco_app 引用templates 连接数据库,这里我用的MySQL数据

    2023年04月11日
    浏览(82)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包