论坛项目--基础功能

SSM最简单流程

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

开发社区首页

在这里插入图片描述

如何调试程序

开发社区登录模块

发送邮件

在这里插入图片描述

开发注册功能

在这里插入图片描述
在这里插入图片描述

会话管理

cookie:存在浏览器
session:存在服务器

生成验证码

在这里插入图片描述

开发登录、退出功能

在这里插入图片描述

显示登录信息

在这里插入图片描述

在这里插入图片描述

账号设置

在这里插入图片描述

检查登录状态

在这里插入图片描述

前缀树过滤敏感词

util.SensitiveFilter.java
构建字典树的方法 inser()将每个单词加入树中,变成一颗前缀树,每个节点处有一个next属性里存字符和下个节点的集合。
文本站过滤敏感词的方法,对文本有两个指针,固定begin,与前缀树的每个节点顺序进行比对并移动position,如果找到了敏感词,positiong++,移动begin到当前position 位置;找不到则begin++,移动position到begin位置。

发布帖子

AJAX作用:使用AJAX,网页能够将增量更新呈现在页面上,而不需要刷新整个页面

  • CommunityUtil.getJSONString() // 将集合内容转换成json格式输出
    并写main()测试
               |
                \/
    AlphaController里 ajax示例:异步请求,向服务器提交数据
               |
                \/
    静态页面 static/html/ajax-demo.html 向服务器提交信息可以通过/community/alpha/ajax返回信息

测试,启动服务,浏览器访问静态页面localhost8080/community/html/ajax-demo.html,点击页面上发送按钮,返回更新结果

  • Dao层 DiscussPostMapper.insertDiscussPost() 对应discusspost-mapper.xml中写sql
               |
                \/
    Service层 @Autowired注入SensitiveFilter对象,DiscussPostService.addDiscussPost()里写滤除敏感词,返回给Dao中insertDiscussPost()
               |
                \/
    Controller层 DiscussPostController里@Autowired注入DiscussPostService对象,注入用户即HostHolder对象,写发布帖子方法addDiscussPost()
               |
                \/
    写index.html的“我要发布”涉及到的部分以及index.js

帖子详情

  • DiscussPostMapper.selectDiscussPostById() xml中写sql
               |
                \/
    DiscussPostService.findDiscussPostById()
               |
                \/
    DiscussPostController.getDiscussPost(),返回模板"/site/discuss-detail"
               |
                \/
    更改index.html中对应帖子列表和discuss-detail.html对应帖子详情

事务管理

事务是由N步数据库操作序列组成的逻辑执行单元,这系列操作要么全执行,要么全放弃执行。

事务的特性(ACID)

  • 原子性(Atomicity):事务是应用中不可再分的最小执行体。
  • 一致性(Consistency):事务执行的结果,须使数据从一个一致性状态,变为另一个一致性状态。
  • 隔离性(Isolation):各个事务的执行互不干扰,任何事务的内部操作对其他的事务都是隔离的。
  • 持久性(Durability):事务一旦提交,对数据所做的任何改变都要记录到永久存储器中。

AlphaService.save1() 声明式事务创建帖子,方法里加入一个错误,事务回滚创建后不保存进数据库;一般选这一种方式写
save2()编程式事务,功能一样。

显示评论

  • entity.comment.java
    CommentMapper selectCommentsByEntity() comment-mapper.xml
               |
                \/
    CommentService.java 将CommentMapper对象注入并封装调用其方法
               |
                \/
    DiscussPostController getDiscussPost()里增加获取评论,先获取每条回帖,再获取回帖的每条回复
    templates/site/discuss-detail.html 添加帖子讨论区,所有回帖和回帖的所有回复

添加评论

  • CommentMapper.insertComment() comment-mapper.xml
    DiscussPostMapper.updateCommentCount() discusspost-mapper.xml
               |
                \/
    CommentMapper.addComment() 事务隔离
               |
                \/
    CommentController.addComment()
    templates/site/discuss-detail.html 添加回复区,最下的大框回复,每条回帖的回复,回帖下指定给某用户的回复

私信列表

  • 实体类 entity.Message
    MessageMapper message-mapper.xml
    MapperTests.testSelectLetters()
               |
                \/
    MessageService
               |
                \/
    MessageController
    templates/site/letter.html:用户的会话列表
    templates/site/letter-detail.html:某个会话所包含的私信

发送私信

(采用异步的方式发送私信)
同上
更改letter.html letter.js

统一处理异常

统一记录日志

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值