文章目录
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