论文部分内容阅读
摘要:本论文主要介绍了用ssm框架开发的学术论坛系统,系统主要包含管理员登录验证、帖子的浏览、帖子管理、评论管理等功能。本系统使用的为MySQL数据库,使用JSP、ajax数据传输、JavaScript、tomcat、web前端设计等技术,以及SSM为系统运行框架,通过JAVA语言进行编码实现。管理员用户可以删除帖子,可以审核帖子,违规次数过多的用户账号会被封停。
关键词:论坛;学术;帖子管理 中图分类号:TU 文献标识码:A 文章编号:(2020)-06-315
1.引言
本项目的目标是为广大的在校学子和老师提供一个专注于校园生活分享的学习社区论坛。在这个论坛区中,用户可以查看到其他用户所发表的动态在首页产生的动态列表。也可以根据自己所喜欢的内容去查看对应产生的动态列表。用户可以点开一个动态来查看该动态的详细内容,可以按照自己的喜好来对动态做出交互,即收藏和评论。也可以对这篇动态的评论做出例如点一个赞的操作或者点一个踩的操作,还可以和这条回复做出回复。但所有的交互动作必须要通过登录账号之后才可以进行交互。在完成登录操作后,除了可以做出上文中的交互,还可以发布自己的动态,管理自己的资料和查看自己的收藏,关注,回复等。
学术论坛系统,就是一种在线交流的平台.在论坛上,人们可以对某一领域提出自己遇到的问题,即发表某一主题,随后,论坛上的其他人会根据自己的学识、经验发表意见或提出问题的方法.学术论坛系统主要是一个供用户交流的平台,为广大用户提供交流经验、探讨问题的网上社区.因此,学术论坛系统最基本的功能首先是发表主题,其次是其他人员根据主题发表自己的看法.此外,为了记录主题的发表者和主题的回复者信息,系统还提供用户注册和登录的功能.只有注册的用户登录后才能够发表和回复主题,没有注册的用户只能浏览网站信息.
2发帖和回帖实现
发帖、回复模块具体可以分为回复动态模块和回复别人回复的内容模块,即二级回复模块。一级回复时只能回复文字,在确认回复时,通过动态id将回复和动态绑定,通过回复者id与回复者绑定,通过发布者id来通知发布者有一条消息(在数据库中写入具体信息)。二级回复时可以对一级回复进行点赞等交互操作。二级回复信息与一级回复绑定,通过一级回复的回复者id来进行通知消息。在回复时,用户进入动态详情页面,可以进行关注发布者也可以收藏该文章操作。这些不同的操作将通过双方的id进行绑定,写入不同操作所对应的不同的表。这些交互的结果可以在用户的个人界面查看到具体的信息,如收藏的文章列表等。
在业务逻辑上,多个表之间通过动态的主键相连,由此分辨出原贴,一级回复和二级回复。通过多张表之间的查询和关联,从而获取到一连串的数据,显示在模块的页面中。同时也可以根据具体的表的主键进行操作,由此完成交互。在代码的体现上,通过前端的请求,控制层传到业务逻辑层,业务逻辑层和mapper完成数据库语句的生成,返回查询到的结果集,在控制层返回到页面进行展示处理。之后的操作也將在这个基础上通过不同的id来进行其他对数据库的交互。
回复控制层相关页面代码编写如下:
publicObjectpost(@RequestBodyCommentDtocommentDto,HttpServletRequestrequest){
Usersusers=(Users)request.getSession().getAttribute("user");
if(users==null){
returnResultDto.erroOf(CustomizeCode.NO_LOGIN);
}
if(commentDto==null||StringUtils.isEmpty(commentDto.getContent())){
returnResultDto.erroOf(CustomizeCode.COUNT_IS_EMPTY);
}
Commentscomments=newComments();
comments.setParent_id(commentDto.getParent_id());
comments.setContent(commentDto.getContent());
comments.setType(commentDto.getType());
comments.setGmt_create(System.currentTimeMillis());
comments.setGmt_modified(comments.getGmt_create());
comments.setCommentator(users.getId());
commentSerivce.insertComment(comments);
Map<Object,Object>objectObjectMap=newHashMap<>();
objectObjectMap.put("message","成功");
jMontiorSerivce.checkHasFristFatie(users.getId(),"comment");
jMontiorSerivce.Upleave(users.getId());
returnResultDto.okOf();
}
@ResponseBody
@PostMapping("/commentSon") publicMap<String,Object>comments(@RequestBodyCommentSoncommentSon
,HttpServletRequestrequest){
Map<String,Object>map=newHashMap<>();
Usersusers=(Users)request.getSession().getAttribute("user");
if(users==null){
map.put("code","2004");
returnmap;
}
commentSon.setGmt_create(System.currentTimeMillis());
commentSon.setGmt_modified(commentSon.getGmt_create());
commentSon.setUser_id(users.getId());
System.err.println(commentSon.toString());
intcommentSonList=commentSerivce.insertCommentSon(commentSon);//插入数据
intcommentSonCount=commentSerivce.updateCommentSonCount(commentSon.getFather_id());
List<Object>listArry=newArrayList<>();
listArry.add(commentSon);
listArry.add(users);
listArry.add(commentSonCount);
map.put("listArry",listArry);//将当前信息携带过去
returnmap;
}
参考文献
[1]基于互联网+的JAVA在线练习考試系统设计与实现[J].曾鸿智,等电脑知识与技术.2019(13)
[2]基于SSH架构的高校创客空间平台设计研究[J].王立平,刘二动.萍乡学院学报.2018(03)
作者简介:张焱女1984.7江苏泰州硕士工程师物联网技术
关键词:论坛;学术;帖子管理 中图分类号:TU 文献标识码:A 文章编号:(2020)-06-315
1.引言
本项目的目标是为广大的在校学子和老师提供一个专注于校园生活分享的学习社区论坛。在这个论坛区中,用户可以查看到其他用户所发表的动态在首页产生的动态列表。也可以根据自己所喜欢的内容去查看对应产生的动态列表。用户可以点开一个动态来查看该动态的详细内容,可以按照自己的喜好来对动态做出交互,即收藏和评论。也可以对这篇动态的评论做出例如点一个赞的操作或者点一个踩的操作,还可以和这条回复做出回复。但所有的交互动作必须要通过登录账号之后才可以进行交互。在完成登录操作后,除了可以做出上文中的交互,还可以发布自己的动态,管理自己的资料和查看自己的收藏,关注,回复等。
学术论坛系统,就是一种在线交流的平台.在论坛上,人们可以对某一领域提出自己遇到的问题,即发表某一主题,随后,论坛上的其他人会根据自己的学识、经验发表意见或提出问题的方法.学术论坛系统主要是一个供用户交流的平台,为广大用户提供交流经验、探讨问题的网上社区.因此,学术论坛系统最基本的功能首先是发表主题,其次是其他人员根据主题发表自己的看法.此外,为了记录主题的发表者和主题的回复者信息,系统还提供用户注册和登录的功能.只有注册的用户登录后才能够发表和回复主题,没有注册的用户只能浏览网站信息.
2发帖和回帖实现
发帖、回复模块具体可以分为回复动态模块和回复别人回复的内容模块,即二级回复模块。一级回复时只能回复文字,在确认回复时,通过动态id将回复和动态绑定,通过回复者id与回复者绑定,通过发布者id来通知发布者有一条消息(在数据库中写入具体信息)。二级回复时可以对一级回复进行点赞等交互操作。二级回复信息与一级回复绑定,通过一级回复的回复者id来进行通知消息。在回复时,用户进入动态详情页面,可以进行关注发布者也可以收藏该文章操作。这些不同的操作将通过双方的id进行绑定,写入不同操作所对应的不同的表。这些交互的结果可以在用户的个人界面查看到具体的信息,如收藏的文章列表等。
在业务逻辑上,多个表之间通过动态的主键相连,由此分辨出原贴,一级回复和二级回复。通过多张表之间的查询和关联,从而获取到一连串的数据,显示在模块的页面中。同时也可以根据具体的表的主键进行操作,由此完成交互。在代码的体现上,通过前端的请求,控制层传到业务逻辑层,业务逻辑层和mapper完成数据库语句的生成,返回查询到的结果集,在控制层返回到页面进行展示处理。之后的操作也將在这个基础上通过不同的id来进行其他对数据库的交互。
回复控制层相关页面代码编写如下:
publicObjectpost(@RequestBodyCommentDtocommentDto,HttpServletRequestrequest){
Usersusers=(Users)request.getSession().getAttribute("user");
if(users==null){
returnResultDto.erroOf(CustomizeCode.NO_LOGIN);
}
if(commentDto==null||StringUtils.isEmpty(commentDto.getContent())){
returnResultDto.erroOf(CustomizeCode.COUNT_IS_EMPTY);
}
Commentscomments=newComments();
comments.setParent_id(commentDto.getParent_id());
comments.setContent(commentDto.getContent());
comments.setType(commentDto.getType());
comments.setGmt_create(System.currentTimeMillis());
comments.setGmt_modified(comments.getGmt_create());
comments.setCommentator(users.getId());
commentSerivce.insertComment(comments);
Map<Object,Object>objectObjectMap=newHashMap<>();
objectObjectMap.put("message","成功");
jMontiorSerivce.checkHasFristFatie(users.getId(),"comment");
jMontiorSerivce.Upleave(users.getId());
returnResultDto.okOf();
}
@ResponseBody
@PostMapping("/commentSon") publicMap<String,Object>comments(@RequestBodyCommentSoncommentSon
,HttpServletRequestrequest){
Map<String,Object>map=newHashMap<>();
Usersusers=(Users)request.getSession().getAttribute("user");
if(users==null){
map.put("code","2004");
returnmap;
}
commentSon.setGmt_create(System.currentTimeMillis());
commentSon.setGmt_modified(commentSon.getGmt_create());
commentSon.setUser_id(users.getId());
System.err.println(commentSon.toString());
intcommentSonList=commentSerivce.insertCommentSon(commentSon);//插入数据
intcommentSonCount=commentSerivce.updateCommentSonCount(commentSon.getFather_id());
List<Object>listArry=newArrayList<>();
listArry.add(commentSon);
listArry.add(users);
listArry.add(commentSonCount);
map.put("listArry",listArry);//将当前信息携带过去
returnmap;
}
参考文献
[1]基于互联网+的JAVA在线练习考試系统设计与实现[J].曾鸿智,等电脑知识与技术.2019(13)
[2]基于SSH架构的高校创客空间平台设计研究[J].王立平,刘二动.萍乡学院学报.2018(03)
作者简介:张焱女1984.7江苏泰州硕士工程师物联网技术