仿牛客网项目总结

本文详细总结了一个仿牛客网的开发社区项目,涵盖了从社区核心功能开发、登录模块实现、社区功能优化、Redis、Kafka、Elasticsearch的运用,到Spring Security的权限控制。项目涉及内容包括社区首页、登录注册、发送邮件、验证码、权限控制、敏感词过滤、异步请求、发布帖子、评论管理、私信功能、点赞与关注、系统通知、搜索功能、权限管理和网站性能优化等多个方面。
摘要由CSDN通过智能技术生成

项目总结

第一章 开发社区核心功能

开发社区首页?

image-20220831182046374

社区首页分为最新最热,数据库利用动态sql,0和1代表最新最热排序规则,利用@Requestparam注解默认访问最新,手动封装分页信息类,设置分页的总条数,设置分页的访问路径,调用业务层实现首页功能,list封装map最后装到model页面显示。

第二章 开发社区登录模块

发送邮箱?

image-20220831182102918

导入邮箱依赖,配置好邮箱参数,编写邮箱工具类,使用方法设置参数,发送人,发送主题,发送内容,使用TemplateEngine(模板引擎)发送HTML邮件,使用JavaMailSender发送邮箱。

注册实现?

image-20220831182111780

输入用户和密码邮箱,判断用户是否为空,然后判断用户名用户密码邮箱是否为空,查询数据库账号是否存在,查询邮箱是否被注册。之后保存在数据库,激活邮箱。

激活邮箱步骤:

实列化Context

设置激活的邮箱,设置激活的url连接,后面点击连接修改状态激活

templateEngine(模板引擎)激活模板

最后调用JavaMailSender发送邮箱

生成验证码?

image-20220831182138898

导入Kaptcha依赖, 编写 Kaptcha 配置类 。编写验证码controller层,注入Kaptcha 配置类,生成验证码,生成图片,存入cookie中,存入redis中,最后输出给浏览器。

登录退出功能?

image-20220831182346599

登录:

检查验证码是否正确,调用业务层判断输入账号密码是否为空,判断用户是否存在,判断状态是否激活,验证密码是否正确。然后生成登录凭证存在redis中(key是uuid生成的字符串)。返回到controller层中获取凭证存在cookie中。

退出:

利用@CookieValue注解从cookie获取凭证,调用业务层把reids中的状态改为1,为退出功能,记得重新存入redis中。

显示登录信息?

image-20220831182358763

定义拦截器实现HandlerInterceptor,在Controller之前执行之前获取凭证,通过凭证获查看用户是否有效,有效查询到用户放在Threadload

,在Controller之后执行获取用户,在TemplateEngine之后清理用户信息。

配置类继承WebMvcConfigurer全部放行静态资源。

注意:第一次登录时候,获取的凭证不是有效的,登录成功生成凭证,拦截器在此获取持有用户,拦截器拦截了两次。

账号设置?

image-20220831200627676

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZCboCIcz-1662386083044)(G:\typora笔记\每日学习\2022-8\images\image-20220831200927249.png)]

本地上传:

请求必须是post,表单enctype="multipart/form-data",通过MultipartFile处理上传。

上传头像:MultipartFile获取源文件,截取后缀,通过uuid拼接后缀,File确定文件存放路径,MultipartFile调用transferTo(file)方法存储,最后拼接头像路径,存储在数据库中。

**获取头像:**通过路径获取头像名称,拼接路径,响应图片格式,io读写操作。

客户端上传到青牛云:

uuid生成文件名称,七牛云自带的StringMap类设置响应信息。Auth生成上传凭证。

调用业务层更新头像,路径采用异步方式。

检查登录状态?

image-20220831203212242

只有登录时候才能访问的功能,采用元注解的方式标注在类中,标注的controller方法中,标注的类只有登录才有访问权限。

拦截器编写逻辑:

在请求之前利用反射获取类中的注解,有注解直接拦截,没有注解重定向到登录页面。配置类继承WebMvcConfigurer全部放行静态资源。

第三章 开发社区核心功能

过滤敏感词?

image-20220831204022938

编写过滤敏感词类

异步请求?
发布帖子?

image-20220831204248432

发布贴子使用异步请求,controller调用业务层需要过滤转意html,过滤敏感词。

帖子详情?

image-20220831204647568

这里就查询一个帖子和用户显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值