Skip to content

ssz666/community

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Community

牛客论坛

项目环境

  1. JDK-1.8
  2. apache-maven-3.9.5
  3. SpringBoot 2.7.17
  4. MySQL 8.0.29

实现过程

发送邮件

使用spring-boot-starter-mail完成发送邮件功能,邮箱需要开启SMTP服务,并配置邮箱账号和登录密码。使用JavaMailSender实现邮件发送功能。

开发注册功能

在使用邮箱发送激活文件时,由于数据库和激活邮箱的配置参数在application.properties配置文件里,不安全。因此,我把配置参数写在另外的文件中,此文件不受git管理。最终实现了重要信息屏蔽。

生成验证码

采用了Kaptcha包,来随机生成验证码

开发登录功能

开发登录功能时,使用ticket确定登录的用户,数据库维护一张登录用户表,记录用户的登录状态。并且ticket以cookie的形式传给浏览器,最后退出登录也是根据ticket判断退出的用户。

显示登录信息

在登录成功后,服务器会将ticket装入cookie一并发给浏览器,并使浏览器重新请求/index网页,此时请求的cookie会带上ticket,因此拦截器会判断cookie中是否包含ticket,展示不同的页面头部。

实现修改头像功能

通过SpringMVC提供的MultipartFile接口,可以实现文件上传功能。

实现修改密码功能(课后作业)

修改密码功能需要输入三个值,原密码,新密码,确认新密码 原密码在service层判空和正确性校验 新密码也在service层判空以及是否和原密码一样 确认新密码在前端检验与新密码是否一致,通过js判断 最终在数据库中完成修改

检查登录状态

由于有些页面需要登录才能访问,因此自定义注解LoginRequired,在controller层对于有些访问路径使用@LoginRequired注解,在拦截器中判断cookie中是否包含ticket,如果包含则放行,否则跳转到登录页面。

过滤敏感词

主要将敏感词构建成前缀数,来查找句子中的敏感词,并以其他字符代替。

发布帖子

采用ajax异步请求发布帖子,在点击提交按钮后,将title和content用$.post()方法异步请求到服务器,服务器先判断是否有用户登录,再把帖子存到数据库中,返回json数据给前端。 前端用js处理返回的数据,如果成功,则弹出发布成功框,两秒后刷新页面,否则弹出错误信息。

帖子详情

简单用两次查询分别查询帖子内容和帖子作者,可以采用联合查询,前端将查询的数据作出展示

显示评论

根据评论的类型确定是属于对帖子的评论还是对回复的评论,查询出来并在前端显示

添加评论

在登录后用户添加评论时,前端将评论内容,评论类型,评论的帖子id,回复的评论id,以及用户id传给服务器,服务器把评论存到数据库中,并刷新前端。

私信列表

在登录后,用户可以查看自己的私信列表,并点击私信可以查看私信内容。 通过简单在数据库中维护一张私信表,可以实现私信功能。通过一系列查询将结果返回给前端

发送私信

用户登陆后,可以在消息界面发送私信也可以在私信详情界面发送私信,通过$.post()方法异步请求到服务器,服务器把私信存到数据库中,返回json数据给前端。 前端用js处理返回的数据,如果成功,则弹出发送成功框,否则弹出错误信息。两秒后刷新页面。当用户收到消息后,点开私信详情后,消息自动设置为已读。

统一异常处理

我们使用Spring MVC提供的@ControllerAdvice注解,在controller层使用@ExceptionHandler注解,在拦截器中捕获异常,并返回json数据给前端。

统一记录日志

使用AOP记录日志,在controller层使用@Log注解,在拦截器中记录日志。 采用Spring AOP实现记录用户调用服务的日志。通过@Aspect注解,以及@Pointcut注解。

学习使用

本项目仅作为学习使用

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published