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

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开发者来作为练习的知识点,以上就是本文的全部内容,如有不妥之处,还请多多提出来。

羊了个羊火爆,吉比特称间接持有游戏研发公司10股权近日,一款名为羊了个羊的小游戏风靡社交圈,并连续登上微博热搜。据了解,这是一款卡通背景的消除闯关游戏,通关率不到0。1。14日晚间,吉比特在投资者互动平台上表示,间接持有羊了个羊的服务器1天挤崩三次小游戏羊了个羊为何这么火9月14日,一款名为羊了个羊的消除类小游戏,凭借刚第二关就困住大批玩家的神操作,在激发一众游戏主播集体体验试玩出攻略的同时,也一度空降微博热搜第一。羊了个羊在社交圈出尽风头,背后的1换8太赚!今夏最成功交易,送一个全明星得两个基石,骑士后悔吗NBA的休赛期已经接近尾声了,在9月30日新赛季的季前赛将会开打,现在各支球队也基本完成了他们的引援,在接下来估计除了湖人可能会有动作之外,其他的球队也不会有大动作了,而湖人现在想东北菜那么好吃,为啥不是八大菜系?网友这3个标准不符合要求我媳妇也是这么说的,东北菜那么好吃,为啥不是八大菜系?武汉的夏天是真的热,所以,这几天我媳妇非要拉着我去图书馆借书,实则是为了避暑,图书馆凉快,待着图书馆能做的就是看书,所以,她找以回天地区中心为中心,北京昌平打造10公里职住平衡样板区昌平区近日出台关于聚焦社会领域就业资源助力回天地区职住平衡的实施意见(试行),将结合医疗健康养老教育文化体育等社会领域发展实际,发挥未来科学城和回天地区(简称双城)双城联动促进就业55岁接受不了法令纹,去北京做了拉皮,这妈生脸绝了求美者自述随着年龄增大,皮肤组织结构发生了垮塌,韧带松弛老化,兜不住脂肪和皮肉了,松皮就会耷拉垂下来,形成法令纹木偶纹双下巴等衰老症状。如果你问我最不能接受的是什么?那就是法令纹和中超积分榜武汉三镇11山东泰山12连胜被终结北京国安31河北今天晚上,中超第18轮比赛上演多场精彩较量,积分榜前三名的球队悉数出战,其中排名榜首的武汉三镇和第二位山东泰山对决最引人注目,比赛结果如下1。山东泰山11武汉三镇第27分钟,高准翼除了李易峰,北京警方还抓了这些明星!近日,演员李易峰因嫖娼被拘留。不论是普通百姓还是娱乐圈顶流,只要违法犯罪,都逃脱不了警方的法眼。下面,就给大家盘点一下那些年被北京警方抓过的明星。柯震东代表作那些年我们一起追的女孩李易峰又有新瓜?其他17个艺人浮出水面,湾湾被威胁十几个小时总算把李易峰的瓜给吃明白了,九月初就开始有网友爆料三字男艺人嫖娼。9月2号当天李易峰突然缺席杭州的线下活动,粉丝们还傻傻地去活动现场等着他,接着张小寒就发文让粉丝们别等了,赶紧回去谁来教东八区的先生们,什么是真正的诚意九派时评九派新闻评论员文和刀东八区的先生们,一部制作方准备十年的诚意之作,火了。多亏了豆瓣不能打负分,该剧喜提高达2。2的豆瓣评分,也就是说,几乎所有打分者都认为是烂剧无疑。它不仅难能可贵异性如果这样对你,很明显是看不上你01。有人讽刺嘲讽你,你马上回应他。有人无缘无故看不起你,你立马轻蔑的鄙视他。如果有人对你冷漠,你也会立刻对他冷漠。听着,那些你讨厌的人很容易把你变成你最讨厌的人。我们不想把自己变
在云南吃过的那些难得的美食(3)萨皮对,你没有看错,它的名字就是萨皮(从德宏傣族语言翻译过来),不是披萨,和披萨是两种完全不同的美食!刚来云南,每到晚上夜市热闹的时候,你总会看见一两个穿着傣族衣服的中年妇女,在路年轻人最爱的7大辣美食,咋吃都不腻,就是总挨骂现在的年轻人总是最受人关注的,就连吃喝住行都让人放心不下,尤其是在吃上,老被家长摁着说,小编很想说一句,不是不听话,是真的好吃,吃不腻,所以放不下!第一个就是最近爆火的新疆炒米粉,45岁女人晒极简午餐,一个人也要把生活过成诗,网友美味又营养前段时间跟闺蜜聊天,就谈论到今年猪肉的价格下降了不少,因此趁着这段时间猪肉价低,就约着一起去灌了些香肠。虽然比起往年灌香肠的时间尚早,不过想着家人都爱吃,平时做煲仔饭焖饭炒菜等都用比面包简单,比包子好吃!不用烤箱不用蒸,帮娃补钙长高高我最近又发现一个好做法,你绝对想不到,用平底锅,也能做出香甜暄软的蛋奶面包!很多朋友一提自制面包就怕麻烦,但只要你跟着我这个步骤来,做一次就会发现,真的不难!做好后的面包,就跟外面柿子红了在老舍先生的丹柿小院展开一场循迹之旅京城文化漫步在北京这座历史深厚的城市里,每一个院落都有很多故事,每一处历史文化街区都是一本关于城市的书,关于这座城市的故事也自然而然地渗透进文艺作品中。京城文化漫步栏目专注于发掘书孔子与苏格拉底跨越时空对话人民日报电(杨子)当地时间9月16日,作为2021年中国希腊文化和旅游年开幕仪式重要环节之一,中国美术馆馆长雕塑家吴为山的青铜组雕作品神遇孔子与苏格拉底的对话(以下简称神遇)在希腊做醋溜白菜,什么时间放醋很重要,牢记这一点,口感好味道正宗导语做醋溜白菜,什么时间放醋很重要,牢记这一点,口感好味道正宗说到白菜,我小时候只喜欢吃白菜叶子,很不喜欢吃白菜帮,一开始不知道为什么,后来才明白,原来是因为妈妈做的白菜帮不好吃。杨洋人生不设限黑色风衣款羽绒服灰色皮质长裤白色波点拉链衬衣黑色波点拉链衬衣黑色暗纹logo棒球帽黑色运动鞋AllbyDunhill高级珠宝系列项链B。zero1系列白色18K金镶钻石戒指OCTO4年6亿大合同!罗齐尔坑惨了乔老板,乐坏了小女友在昨日黄蜂队客场挑战勇士队的比赛中,黄蜂队的首发后卫特里罗齐尔继续延续开赛以来的冰凉手感,全场出战35分钟,仅仅12投2中拿到了5分,外加6个篮板和2次助攻的数据,同时还送出了3次双11买哪款平板电脑更好?5款机型具体分析从苹果到华为谁适合哈喽,您好!我是原呵呵,点点关注吧,更多精彩内容等着您2021年最佳平板电脑的竞争可能没有前几年那么激烈,主要三星精简了其产品,苹果停止了旧型号,但剩下的平板电脑变得越来越相似。许肝病患者经常吃南瓜,是好是坏?2种情况下不建议吃,提前了解下最近一段时间,南瓜是比较应季的食材。用南瓜煮粥,直接蒸着吃,香甜软糯,还能产生较强的饱腹感。因此很多人爱吃。住在农村的张大妈家里也收获了不少南瓜,听自己的医生说南瓜可以适当吃点,她