范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

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文件
  五、注意事项
  1、注意代码的书写、命名规范;
  2、在关键代码处加注解,方便后期维护;
  3、考虑控件摆放整齐,留意界面美观;
  4、在操作数据库的时候需要注意必要的异常处理,建立容错机制。  最后
  通过上文讲述的流程步骤,就简单实现了一个比较全面的用户注册登录的功能,虽然这个功能很普遍,但是对于Java开发刚入门的新手来说还是有难度的,这个命题可以作为出入Java开发者来作为练习的知识点,以上就是本文的全部内容,如有不妥之处,还请多多提出来。

茅台酒降价,谁最害怕?喜欢收藏茅台者作为高端品牌,和老百姓没什么关系,能喝得起的人,不在乎多少钱,反而觉得有面子,不过,我总有一个问题想不通,一斤酒,卖出那么高的价格,这个定价机制是那来的?是不是这些名有哪些经典的电视剧是可以唤醒你童年的回忆的?每年都有很多电视剧播出,最新播出的电视剧人民的名义受到大家的热捧,很多网友怀念当年的大火剧,比如还珠格格等,下面一起看看还有哪些!如今90后都已奔三,让人不得不感慨时间过得太快,岁如何评价温兆伦这个演员?温兆伦(DericWan),香港著名影视歌三栖明星,生于香港九龙,祖籍广东省中山市。1989年因饰演义不容情中的丁有康而广为人知。后又出演我本善良成为无线当家小生。其歌曲代表作有台童年的时光是美好的,深深的记忆在每个人心中,你的童年最难忘的一件事是什么?我的回答是依偎在妈妈怀里的憧景最难忘记!请问各位友友们难道还有比此更难忘记的?难道还有比此更为幸福的?难道还有比此更为愉悦的?难道还有比此更为自豪的?谢邀请!我的童年,生活在五十年如何评价电视剧伪装者中扮演程锦云的演员王乐君?谢谢邀请!王乐君在伪装者中饰演明台(胡歌饰)的女友程锦云。往昔和胡歌搭戏的女主角很多后来都火了,或是搭戏时就已经很火,比如仙剑奇侠传里的刘亦菲安以轩,琅琊榜里的刘涛等。王乐君本来也你见过最性感的电视女演员是谁?我一直觉得,很多人在说性感的时候,其实不明白什么叫性感。性感并不是女性衣着暴露,或者是某某部位大,云云。如果是这种看法,无疑,那是一种直男眼光,甚至是物化女性的一种看法。所谓性感,当今演员中的十大古装男神都有谁?近年来古装剧盛行,在你们心目中的古装男神都有哪些呢?第一名胡歌小编觉得永远不可超越的古装男神就是胡歌啦!第一名当之无愧啊。从他的天外飞仙射雕英雄传仙剑奇侠传一二三琅琊榜个个都是无法有哪部电视剧是因为演员的颜值而让你马上去追的?锦衣之下。看这部剧完全是个偶然。无意间碰到了头条的一个短视频,看到了男主任嘉伦饰演的陆绎。他的脸就在那一瞬间撞入了我的心。眉目如画,俊朗非凡。白皙的皮肤,一双仿佛看透世间一切的耀眼专家评选的百年电影十佳女演员是谁?代表作品有哪些?2005年迎来中国电影史(19052005)百年大庆,由大众电影专家学者评选出中国百年电影十佳男演员十佳女演员。而十佳女演员她们是阮玲玉(19101935)原名阮凤根生于上海祖籍广为什么很多主流相声演员很仇视德云社?说反了,是云社仇视同行抢了主流的饭碗。这个问题说反了吧?是德云社仇恨主流的相声演员,大肆公开在舞台上攻击谩骂同行,才遭到主流相声演员们的抛弃。是郭德纲坏到了极点,到处树敌,才遭到同00后开始异军突起,你认为未来可期的00后演员是谁?为什么?最近在看电视剧初恋那件小事,被赖冠霖实力圈粉,个人认为他的未来可期。赖冠霖,2001年9月23日出生于台北市,以歌手身份出道,前韩国男子演唱组合WANNAONE成员。2017年,首
两大百亿项目同日开工垒起荆州新材料产业新高度伟胜新材料项目开工现场。(湖北日报全媒记者王丙全摄)湖北日报全媒记者王丙全通讯员周栎王文初一天两个百亿项目集中开工,荆江两岸再掀建设热潮。2月3日,公安县经济开发区青吉工业园,总投非媒中国对非医疗援助尽显兄弟情谊来源参考消息网参考消息网2月9日报道乌干达新景报网站2月6日刊登文章,题为心连心的合作中国医疗队的贡献挽救生命。文章称,有句谚语说患难见真情。如果放在中国和乌干达关系的大背景下,这诸葛亮教做人在世人眼里,诸葛亮天资聪慧,谋略过人,低调谦虚,有先见之明,千百年来被当作是智慧的化身。做人要有诚信,不要耍小聪明,尤其是在社会浮躁,人心浮动的环境下,保持心态平衡尤为重要。物质社关于朝鲜60个冷知识,你都知道几个?朝鲜位于东北亚的朝鲜半岛北部,领土有12。27多万平方公里,占据半岛55的面积,三面环海。人口有2500多万,是一个以朝鲜族为主体的单一民族国家。首都平壤,人口328万。1外国人到街拍朝鲜为什么在朝鲜很少看见肥胖的人,大多数人都是偏瘦体型到朝鲜旅游后,很多人都会发现一个奇怪的现象,就是无论是在朝鲜的城市,还是在朝鲜的乡村,甚至在朝鲜的首都平壤,中国游客都会发现见到的朝鲜人普遍很瘦,而胖子却非常少见,偏胖的人在人群中朝鲜农村现状,带你看看真实的朝鲜农村朝鲜,是如此特殊的一个国家,作为邻国,朝鲜与我们渊源颇深,历史上曾有一段抗美援朝的峥嵘往事,现如今还与我国吉林辽宁许多边境城市保持着一衣带水的共享情分,许多人都对朝鲜有着特殊的感情中医养生中医养生讲究四时阴阳,春生夏长秋收冬藏,这是自然界的规律。人应该顺应大自然的规律,比如,春天的时候,要有一种生发之气,被发缓形,夜卧早起。冬天不能太张扬太发散,万物处于秘藏。中医养追光今天,一支00后主打的国家队出战洲际比赛为期三天的第10届亚洲室内田径锦标赛今天在哈萨克斯坦阿斯塔纳开赛坦率地说这并不是一项含金量很高的赛事但中国田径协会赛前公布的25人的参赛大名单却引发了不小的关注这是一支代表中国田径加克波利物浦生涯至今数据0球0助赢1场,13次射门5射正直播吧2月10日讯加克波冬窗加盟利物浦之后,暂时还没有非常亮眼的表现,太阳报也整理了加克波代表利物浦踢了6场比赛的相关数据,回顾他这一阶段的表现。比赛场次6场时间497分钟进球0助AZP俱乐部去年被制裁时我没想过离开刚加盟蓝军时很紧张直播吧2月10日讯切尔西球员阿斯皮利奎塔接受了TheAthletic的采访,谈到了自己加盟切尔西以来的想法。是否后悔错过加盟巴萨的机会不,从不后悔。我的经历很独特,三月时俱乐部被制邮报穆帅关注埃弗顿外租中卫布兰斯维特,要求罗马派球探考察直播吧2月10日讯据每日邮报报道称,穆里尼奥有意引进埃弗顿外租埃因霍温的后卫布兰斯维特。20岁的布兰斯维特在夏天被埃弗顿外租到了埃因霍温,他很快就成为了球队的重要球员,埃因霍温在上