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

网站建设远洋国际网站分析

网站建设远洋国际,网站分析,武汉光谷企业网站建设,寻找杭州做网站软件人文章目录一. 黑马点评Redis项目实践1.1开发环境搭建1.1.1 数据库1.1.2 Springboot项目1.1.3 前端配置1.2 基于session实现登录1.2.1 发送短信验证码1.2.2 短信验证码登录1.2.3 登录验证功能1.2.3.1 编写拦截器一. 黑马点评Redis项目实践 1.1开发环境搭建 1.课程介绍&#xff…

文章目录

  • 一. 黑马点评Redis项目实践
    • 1.1开发环境搭建
      • 1.1.1 数据库
      • 1.1.2 Springboot项目
      • 1.1.3 前端配置
    • 1.2 基于session实现登录
      • 1.2.1 发送短信验证码
      • 1.2.2 短信验证码登录
      • 1.2.3 登录验证功能
        • 1.2.3.1 编写拦截器

一. 黑马点评Redis项目实践

1.1开发环境搭建

1.课程介绍:

image-20230310093159781

2.数据库:

image-20230310100434653

image-20230310095932455

3.项目架构:

image-20230310100014091

1.1.1 数据库

MySQL数据库,版本8.0

导入sql文件即可:

image-20230310103004197

1.1.2 Springboot项目

将项目文件放到idea目录下:

image-20230310140858024

加入SpringBoot启动器:

image-20230310140923127

启动项目:

访问目录:

http://localhost:8081/shop-type/list

结果如下,将数据库里的值取出:

image-20230310141032774

1.1.3 前端配置

image-20230310141215512

在改目录下,进入终端:输入命令:

start nginx.exe

image-20230310141559261

访问目录:

http://localhost:8080/

image-20230310141701368

1.2 基于session实现登录

image-20230310142802585

1.2.1 发送短信验证码

思路如下:

image-20230310143024480

TODO 发送短信验证码并保存验证码

return userService.sendCode(phone,session);

IUserService:

public interface IUserService extends IService<User> {Result sendCode(String phone, HttpSession session);
}

UserServiceImpl:

校验手机号:

if (RegexUtils.isPhoneInvalid(phone)){//2.如果不符合,返回错误信息return Result.fail("手机号格式错误");
}

符合,生成验证码

String code =RandomUtil.randomNumbers(6);

保存验证码到session

session.setAttribute("code",code);

因为目前在测试阶段,没有申请阿里云的短信服务,故用日志替代:

发送验证码

log.debug("发送验证码成功,验证码{{}}",code);

测试:

image-20230310212211524

查看日志:

image-20230310212224194

1.2.2 短信验证码登录

短信验证码登录思路:

image-20230310212944444

登录功能:登录参数,包含手机号、验证码;或者手机号、密码

TODO 实现登录功能:

return userService.login(loginForm,session);

login登录功能:

Result login(LoginFormDTO loginForm, HttpSession session);

UserServiceImpl:

校验手机号:

String phone = loginForm.getPhone();
if (RegexUtils.isPhoneInvalid(phone)){//2.如果不符合,返回错误信息return Result.fail("手机号格式错误");
}

效验验证码:

Object cacheCode=session.getAttribute("code");
String code = loginForm.getCode();if (cacheCode == null || !cacheCode.toString().equals(code)){//3.不一致,报错return Result.fail("验证码错误");}

一致根据手机号查询用户:

User user =query().eq("phone",phone).one();

判断用户是否存在

if (user == null){//6.不存在,创建新用户并且保存user = createWithPhone(phone);
}

保存用户信息到session中

session.setAttribute("user",user);

返回Result.ok()

return Result.ok();

createWithPhone,功能为:创建新用户

创建也会有:给一个随机的用户名:

User user = new User();
user.setPhone(phone);
user.setNickName("user_"+RandomUtil.randomNumbers(10));

保存用户:

save(user);
return user;

重新启动项目,填入手机号和验证码进行测试,测试结果如下:

填入一个错误的验证码:

image-20230310215836721

image-20230310215852564

填入正确的验证码:

image-20230310215915244

进入数据库查看:

image-20230310220025385

1.2.3 登录验证功能

思路:使用拦截器

image-20230310220335716

1.2.3.1 编写拦截器

新建立:Loginlnterceptor

1.获取session

HttpSession session = request.getSession();

2.获取session中的用户

Object user = session.getAttribute("user");

3.判断用户是否存在

if(user == null){//4.不存在,拦截,返回401代码response.setStatus(401);return false;
}

5.存在,保存用户信息到ThreadLocal

UserHolder.saveUser((User) user);

6.放行

return true;

7.移出

@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {UserHolder.removeUser();
}

编写MvcConfig:

配置过滤器:

@Override
public void addInterceptors(InterceptorRegistry registry){registry.addInterceptor(new Loginlnterceptor()).excludePathPatterns("/shop/**","/voucher/**","/shop-type/**","/upload/**","/user/code","/blog/hot","/user/login");
}

重新启动:效果如下

image-20230311122937814

http://www.wangmingla.cn/news/47678.html

相关文章:

  • 如何做征信公司网站哪里有网络推广
  • java做博客网站有哪些功能互联网培训机构排名前十
  • wordpress使用端口seoul是哪个城市
  • 网站图片上传不上去怎么办seo搜索排名优化
  • 做淘宝客没网站吗重庆网站设计
  • wordpress 导入网站seo友情链接
  • 网站开发师培训百度官网首页下载
  • 自己使用原生php做网站性能windows优化大师的特点
  • 团购做的比较好的网站网站推广方式
  • 丰台做网站企业邮箱
  • 用flash做游戏下载网站自己怎么免费做百度推广
  • 建立个人免费网站科技网站建设公司
  • 用什么网站做封面最好网站优化seo培
  • 上海域名网站吗怎么制作seo搜索优化
  • 企业网站建设 知乎怎么联系百度客服
  • wordpress如何更域名热狗seo优化外包
  • 影响网站打开速度的因素搜索图片识别
  • 朝阳网站新闻联播俄罗斯与乌克兰
  • 网站信息服务费怎么做分录国内最新的新闻
  • wordpress做的著名网站2023年适合小学生的新闻有哪些
  • 官网站内优化怎么做 2018传统营销
  • 网页设计站点规划百度关键词搜索排名
  • 抖音优化排名南昌seo方案
  • 网站开源源码下载一个百度时事新闻
  • 南充市建设局网站必应搜索推广
  • 厦门做网站 厦门专业做网站的公司 我想做网站网络服务商在哪咨询
  • 如何上传网站内容软件测试培训费用大概多少
  • wordpress加上qq登录武汉网站seo推广
  • 西安市建设网站网站优化哪个公司好
  • 青海建设厅官方网站热点军事新闻