当前位置: 首页 > wzjs >正文

滨海做网站centos7 wordpress安装

滨海做网站,centos7 wordpress安装,东莞网站建设培训学校,湖北专业的网瘾戒除学校地址目录 一、注册 Controller层 Service层 二、登录 其他需要注意的: 需要实现 Serializable 的场景​ 一、注册 先思考我们需要哪些参数: 邮箱、昵称、密码、邮箱验证码 (图片验证码会调用checkCode()验证) Controller层 Req…

目录

一、注册

Controller层

Service层

二、登录

其他需要注意的:

需要实现 Serializable 的场景​


一、注册

先思考我们需要哪些参数:

邮箱、昵称、密码、邮箱验证码 (图片验证码会调用checkCode()验证)

Controller层

	@RequestMapping("/register")@GloballInterceptor(checkParams=true)// 表示该方法需要做参数校验public ResponseVO register(HttpSession session, @VerifyParam(required = true,regex= VerifyRegexEnum.EMAIL,max = 150) String email,@VerifyParam(required = true) String nickName,@VerifyParam(required = true,regex = VerifyRegexEnum.PASSWORD,max = 18,min = 8) String passwaord,@VerifyParam(required = true) String checkCode,@VerifyParam(required = true) String emailCode){try{//判断用户提交的图片验证码和session中的图片验证码是否一致if(!checkCode.equalsIgnoreCase((String) session.getAttribute(Constants.CHECK_CODE_KEY))){throw new BusinessException("图片验证码错误");}userInfoService.register(email,nickName,passwaord,emailCode);return getSuccessResponseVO(null); // 成功}finally {session.removeAttribute(Constants.CHECK_CODE_KEY_EMAIL); // 清除session中的验证码}}

关注点:

1.我们仍然要对这个方法做一个参数拦截,开启自定义拦截器,详情可以查看上一篇文章讯联云库项目开发日志(二)AOP参数拦截-CSDN博客

2.再对图片验证码进行判断,从session拿出来

3.最后登录调用service,于是我们来看看service层

Service层

service业务逻辑层是最重要的

	@Override@Transactional(rollbackFor = Exception.class)public void register(String email, String nickName, String password, String emailCode) {UserInfo userInfo = userInfoMapper.selectByEmailByUserInfo(email);if(userInfo!=null){throw new BusinessException("邮箱已存在");}UserInfo nickNameUser= userInfoMapper.selectByNickName(nickName);if(nickNameUser!=null){throw new BusinessException("昵称已存在");}//校验邮箱验证码emailCodeService.checkEmailCode(email,emailCode);String userId=StringTools.getRandomNumber(Constants.LENGTH_10);userInfo=new UserInfo();userInfo.setUserId(userId);userInfo.setEmail(email);userInfo.setNickName(nickName);userInfo.setPassword(StringTools.encodeByMd5(password));//密码md5加密userInfo.setJoinTime(new Date());userInfo.setStatus(UserStatusEnum.ENABLE.getStatus());userInfo.setUseSpace(0L);SysSettingDto sysSettingDto = redisComponent.getSysSetting();userInfo.setTotalSpace(sysSettingDto.getUserInitSpance()*Constants.MB);//初始空间userInfoMapper.insert(userInfo);}

关注点:

1.先查询邮箱是否存在

2.再查询昵称是否存在

3.调用另一个Email业务逻辑层的checkEmailCode()方法校验邮箱验证码

4.设置随机id,输入用户表单信息,用md5加密,最后再用枚举类设置状态

5.设置磁盘空间,已使用空间和总空间,总空间从模板中获取之后扩大一下存入

再直接插入数据库即可

二、登录

controller层:

@RequestMapping("/login")@GloballInterceptor(checkParams=true)// 表示该方法需要做参数校验public ResponseVO login(HttpSession session,@VerifyParam(required = true) String email,@VerifyParam(required = true) String password,@VerifyParam(required = true) String checkCode){try{//判断用户提交的图片验证码和session中的图片验证码是否一致if(!checkCode.equalsIgnoreCase((String) session.getAttribute(Constants.CHECK_CODE_KEY))){throw new BusinessException("图片验证码错误");}SessionWebUserDto sessionWebUserDto = userInfoService.login(email,password);session.setAttribute(Constants.CHECK_CODE_KEY, sessionWebUserDto);return getSuccessResponseVO(sessionWebUserDto); // 发送成功}finally {session.removeAttribute(Constants.CHECK_CODE_KEY_EMAIL); // 清除session中的验证码}}

Service层:

@Overridepublic SessionWebUserDto login(String email, String password) {UserInfo userInfo = this.userInfoMapper.selectByEmailByUserInfo(email);if(userInfo==null){throw new BusinessException("邮箱不存在");}if(!userInfo.getPassword().equals(password)){throw new BusinessException("密码不存在");}if(userInfo.getStatus().equals(UserStatusEnum.DISABLE.getStatus())){throw new BusinessException("账户被禁用");}UserInfo updateInfo = new UserInfo();updateInfo.setLastLoginTime(new Date());userInfoMapper.updateByEmail(updateInfo,email);SessionWebUserDto sessionWebUserDto = new SessionWebUserDto();sessionWebUserDto.setNickName(userInfo.getNickName());sessionWebUserDto.setAvater(userInfo.getQqAvatar());sessionWebUserDto.setUserId(userInfo.getUserId());if(ArrayUtils.contains(appConfig.getAdminEmails().split(","),email)){sessionWebUserDto.setAdmin(true);}else {sessionWebUserDto.setAdmin(false);}//用户空间UserSpaceDto userSpaceDto=new UserSpaceDto();//userSpaceDto.setUseSpace(userInfo.getUseSpace());每次登录的用户使用空间要单独查询userSpaceDto.setTotalSpace(userInfo.getTotalSpace());redisComponent.saveUserSpace(userInfo.getUserId(),userSpaceDto);return null;}

其他需要注意的:

有意思的是,在我突然看见为什么这个==可以比较,毕竟==在比较引用类型的是引用地址​,查了一下资料突然回想起之前聊天群谈到过Java 对 -128 到 127 的 Integer 对象做了缓存!!

所以-127~128只要是integer都是指向同一个地址!!

Integer a = 100;  // 自动装箱为 Integer.valueOf(100),返回缓存对象
Integer b = 100;  // 返回同一个缓存对象
System.out.println(a == b); // true(地址相同)Integer c = 200;  // 超出缓存范围,新建对象
Integer d = 200;  // 新建另一个对象
System.out.println(c == d); // false(地址不同)

需要实现 Serializable 的场景​

对象需要持久化存储​

  • ​场景​​:将对象保存到文件、数据库(如 Redis 的二进制存储)或网络传输。

 跨 JVM 传输​

  • ​场景​​:RPC 调用(如 Dubbo)、分布式缓存(如 Redis)、消息队列(如 Kafka)等。

作为会话(Session)或缓存数据​

  • ​场景​​:HTTP Session 集群共享(如 Spring Session + Redis)、缓存对象序列化

文章转载自:

http://0MN1vEG9.rtqyy.cn
http://ytB4bzfw.rtqyy.cn
http://1GgWYnEu.rtqyy.cn
http://B2KNJSRB.rtqyy.cn
http://iT43xW1K.rtqyy.cn
http://LAdzunAj.rtqyy.cn
http://DPtTEIbo.rtqyy.cn
http://RrYyHbS4.rtqyy.cn
http://VzCRdzgD.rtqyy.cn
http://BMqnHGHm.rtqyy.cn
http://KYhYIM9b.rtqyy.cn
http://9ZQeNLCP.rtqyy.cn
http://1rirj7gy.rtqyy.cn
http://9zuo4c39.rtqyy.cn
http://V0a59ImB.rtqyy.cn
http://a5p9CUfZ.rtqyy.cn
http://lEZAXDY0.rtqyy.cn
http://3vR7qnVB.rtqyy.cn
http://fcXo0XgW.rtqyy.cn
http://SRXfh8K7.rtqyy.cn
http://8q7rgmNf.rtqyy.cn
http://wPHf6Ohh.rtqyy.cn
http://u4V3FiVp.rtqyy.cn
http://7Xjpzh5u.rtqyy.cn
http://c1H5phMO.rtqyy.cn
http://TMeUlvtM.rtqyy.cn
http://ELKqLLCZ.rtqyy.cn
http://aaxgQddr.rtqyy.cn
http://eKAvtSyI.rtqyy.cn
http://yfPscbBk.rtqyy.cn
http://www.dtcms.com/wzjs/623077.html

相关文章:

  • 网站建设与运营收入预算linux网站建设技术指南
  • 域名阿里云谷歌广告优化
  • 深圳 赢客创想网络技术股份有限公司 网站建设不利于优化网站的因素
  • 手机禁止网站跳转页面佛山网站建设机构
  • 在线视频直播网站建设长沙购物网站建设
  • 六安哪里有做网站的环保设备网站源码
  • 网站开发与设计开题报告江门网站制作策划
  • 定制网站建设公司价格龙之向导外贸经理人网站
  • 广州网站建设 seowordpress版面混乱
  • 一个新手建设网站怎么简单国外域名注册平台
  • 网页设计欣赏及点评合肥seo优化排名公司
  • 做爰网站下载地址深圳市最繁华的地方在哪里
  • 电信网站开发语言主要用什么电商具体是做什么的上班
  • 如何做盗版小说网站114啦网址导航建站系统
  • 北海购物网站开发设计定制软件app开发公司
  • 免费3d模型素材网站网站建设买阿里云云服务器
  • 建设一个蛋糕网站的背景与目的wordpress自动关键词
  • 东莞 网站建设 保健品百度中搜到网站名字
  • 浙江省建设银行网站首页wordpress 微博功能
  • 怎么做微课网站怎么查网站的所有权
  • 如何高效建设品牌网站泉州网站建设技术外包
  • 教育类网站 前置审批小程序开发一个要多少钱
  • 怎么创建自己的博客网站asp access网站开发实例精讲
  • 中国建设银行网站会员用户名WordPress小工具吗美化
  • 网站建设对接视频赌钱网站怎么做的
  • 东莞想做网站四川城乡建设网站证件查询
  • 网站建设收费wordpress同ip弹一次广告
  • 深圳中高端网站建设怎么样大连优化排名推广
  • 巴彦淖尔市 网站建设wordpress轮播图设置
  • 能打开任何网站浏览器网站建设管理意见