Java项目-SSM实现完整的BBS论坛

简介: 这个论坛功能开发的比较完整,论坛的版块管理,贴子管理,发贴,回复,置顶,个人积分等功能都具备。系统采用SSM框架技术开发,数据库采用MYSQL,开发工具采用IDEA或MyEclipse均可。前端用户交流功能

 作者主页:编程指南针

简介:Java领域优质创作者、CSDN博客专家  Java项目、简历模板、学习资料、面试题库、技术互助

文末获取源码

项目编号:BS-PT-002

这个论坛功能开发的比较完整,论坛的版块管理,贴子管理,发贴,回复,置顶,个人积分等功能都具备。系统采用SSM框架技术开发,数据库采用MYSQL,开发工具采用IDEA或MyEclipse均可。

前端用户交流功能

image.gif编辑

登录后进入个人管理模块

image.gif编辑

进入相应版块发贴交流

image.gif编辑

如果用户具备管理员权限,可以编辑和删除贴子,也可置顶,取消置顶,设置精华等操作

image.gif编辑

image.gif编辑

如果是管理员角色可以进入后台进行管理操作,主要包括友情链接添加,板块管理,用户管理,内部连接管理,网站设置等功能

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

部分核心实现代码:

package cc.javaee.bbs.controller.admin;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import cc.javaee.bbs.model.Bankuai;
import cc.javaee.bbs.model.JifenGroup;
import cc.javaee.bbs.model.PageBean;
import cc.javaee.bbs.model.User;
import cc.javaee.bbs.service.BankuaiService;
import cc.javaee.bbs.service.JifenGroupService;
import cc.javaee.bbs.tool.Pinyin4j;
import cc.javaee.bbs.tool.PublicStatic;
import cc.javaee.bbs.tool.Tool;
import cc.javaee.bbs.tool.thread.IndexThread;
/*
 * 后台板块查询
 * 
 */
@Controller
@RequestMapping("/admin/bankuai")
public class AdminBankuaiController {
  @Autowired
  BankuaiService bankuaiService;
  @Autowired
  JifenGroupService jifenGroupService;
  private static Logger log = Logger.getLogger(AdminBankuaiController.class);
  //后台页面查询
  @RequestMapping("index.do")
  public String findAllWhere(HttpServletRequest request, Model model,Bankuai bankuai,PageBean<Bankuai> page) {
    Bankuai bankuaitmp=new Bankuai();
    bankuaitmp.setParentId(0);
    List<Bankuai> list = bankuaiService.select(bankuaitmp);
    page = bankuaiService.findpage(bankuai,page);
    model.addAttribute("list", list);
    model.addAttribute("bankuai", bankuai);
    model.addAttribute("page", page);
    return "jsp/admin/bankuai/index";
  }
  //跳转到修改页面
  @RequestMapping("toupdateoradd.do")
  public String toupdateoradd(Bankuai bankuai, Model model) {
    if(bankuai.getId()!=null){
      bankuai=bankuaiService.findbyid(bankuai);
    }
    model.addAttribute("bankuai", bankuai);
    List<Bankuai> parentList = bankuaiService.findbyparentId(new Bankuai());
    //如果是父板块,删除自己
    for (int i=0;i< parentList.size() ;i++) {
      Bankuai bankuai2=parentList.get(i);
      if(bankuai2.getId()==bankuai.getId()){
        parentList.remove(bankuai2);
      }
    }
    model.addAttribute("parentList", parentList);
    List<JifenGroup> jifengouplist = jifenGroupService.find(new JifenGroup());
    model.addAttribute("jifengouplist", jifengouplist);
    return "jsp/admin/bankuai/updateoradd";
  }
  //修改或者新增
  @RequestMapping("updateoradd.do")
  public String updateoradd(HttpServletRequest request,Bankuai bankuai) {
    User user=(User)request.getSession().getAttribute(PublicStatic.USER);
    bankuai.setCreateUserid(user.getId());
    String img = bankuai.getImg();
    if(img!=null&&img.length()==0){
      bankuai.setImg("bankuai.jpg");
    }
    if(bankuai.getId()!=null){
      bankuaiService.update(bankuai);
    }else{
      bankuaiService.insert(bankuai);
    }
    new IndexThread().start();
    return "redirect:index.do ";
  }
  //删除
  @ResponseBody
  @RequestMapping("del.do")
  public String del(int id) {
    String result=bankuaiService.delete(id);
    return result;
  }
  //删除
  @ResponseBody
  @RequestMapping("getpinyin.do")
  public String getpinyin(String name) {
    String getpinyin = Pinyin4j.getpinyin(name);
    Bankuai bankuai=new Bankuai();
    bankuai.setYuming(getpinyin);
    List<Bankuai> list = bankuaiService.select(bankuai);
    if(list.size()>0){
      getpinyin=getpinyin+Tool.getRandom();
    }
    return getpinyin;
  }
}

image.gif

package cc.javaee.bbs.controller.admin;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import cc.javaee.bbs.model.Tiezi;
import cc.javaee.bbs.model.User;
import cc.javaee.bbs.service.TieziService;
import cc.javaee.bbs.tool.PublicStatic;
import cc.javaee.bbs.tool.Tool;
/*
 * 后台公共使用
 * 
 */
@Controller
@RequestMapping("/admin/common")
public class AdminCommonController {
  @Autowired
  TieziService tieziService;
  private static Logger log = Logger.getLogger(AdminCommonController.class);
  //全局置顶
  @ResponseBody
  @RequestMapping("updateallzhiding.do")
  public Map<String, String> updateallzhiding(HttpServletRequest request,int id) {
    Map<String, String> map=new HashMap<String, String>();
    Tiezi tiezi=new Tiezi();
    tiezi.setId(id);
    tiezi.setZhiding(PublicStatic.ALLZHIDING);
    User user=(User) request.getSession().getAttribute(PublicStatic.USER);
    tiezi.setLastupdate(""+user.getGroupname()+"\""+user.getLoginname()+"\"于"+Tool.getyyyyMMddHHmmss()+"将帖子全局置顶"+"</br>");
    tieziService.update(tiezi);
    map.put("flag", "1");
    return map;
  }
  //取消全局置顶
  @ResponseBody
  @RequestMapping("updateallqxzhiding.do")
  public Map<String, String> updateallqxzhiding(HttpServletRequest request,int id) {
    Map<String, String> map=new HashMap<String, String>();
    Tiezi tiezi=new Tiezi();
    tiezi.setId(id);
    tiezi.setZhiding("");
    User user=(User) request.getSession().getAttribute(PublicStatic.USER);
    tiezi.setLastupdate(""+user.getGroupname()+"\""+user.getLoginname()+"\"于"+Tool.getyyyyMMddHHmmss()+"将帖子取消全局置顶"+"</br>");
    tieziService.update(tiezi);
    map.put("flag", "1");
    return map;
  }
}

image.gif

package cc.javaee.bbs.controller.admin;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
/*
 * 
 * 跳转后台首页
 * 
 */
@Controller
@RequestMapping("/admin")
public class AdminIndexController {
  private static Logger log = Logger.getLogger(AdminIndexController.class);
  //后台页面查询
  @RequestMapping("index.do")
  public String findAllWhere(HttpServletRequest request, Model model) {
    return "jsp/admin/index";
  }
}

image.gif

package cc.javaee.bbs.controller.admin;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import cc.javaee.bbs.model.Info;
import cc.javaee.bbs.service.InfoService;
/*
 * 网站信息
 * 
 */
@Controller
@RequestMapping("/admin/info")
public class AdminInfoController {
  @Autowired
  InfoService infoService;
  private static Logger log = Logger.getLogger(AdminInfoController.class);
  //页面查询
  @RequestMapping("index.do")
  public String findAllWhere(HttpServletRequest request, Model model) {
    Info info = infoService.find();
    model.addAttribute("info", info);
    return "jsp/admin/info";
  }
  //修改
  @RequestMapping("update.do")
  public String updateoradd(HttpServletRequest request,Info info) {
    info.setId(1);
    infoService.update(info);
    info = infoService.find();
    request.getSession().getServletContext().setAttribute("bbsinfo", info);
    return "redirect:/admin/info/index.do ";
  }
}

image.gif

package cc.javaee.bbs.controller.admin;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import cc.javaee.bbs.model.Bankuai;
import cc.javaee.bbs.model.InnerLink;
import cc.javaee.bbs.model.JifenGroup;
import cc.javaee.bbs.model.PageBean;
import cc.javaee.bbs.model.User;
import cc.javaee.bbs.service.BankuaiService;
import cc.javaee.bbs.service.InnerLinkService;
import cc.javaee.bbs.service.JifenGroupService;
import cc.javaee.bbs.tool.Pinyin4j;
import cc.javaee.bbs.tool.PublicStatic;
import cc.javaee.bbs.tool.Tool;
import cc.javaee.bbs.tool.thread.IndexThread;
/*
 * 后台内部链接
 * 
 */
@Controller
@RequestMapping("/admin/innerlink")
public class AdminInnerLinkController {
  @Autowired
  BankuaiService bankuaiService;
  @Autowired
  JifenGroupService jifenGroupService;
  @Autowired
  InnerLinkService innerLinkService;
  private static Logger log = Logger.getLogger(AdminInnerLinkController.class);
  //后台页面查询
  @RequestMapping("index.do")
  public String findAllWhere(HttpServletRequest request, Model model,InnerLink innerLink,PageBean<InnerLink> page) {
    page = innerLinkService.findpage(innerLink,page);
    model.addAttribute("page", page);
    return "jsp/admin/innerlink/index";
  }
  //跳转到修改页面
  @RequestMapping("toupdateoradd.do")
  public String toupdateoradd(Integer id, Model model) {
    if(id!=null){
      InnerLink innerLink=innerLinkService.findbyid(id);
      model.addAttribute("innerLink", innerLink);
    }
    return "jsp/admin/innerlink/updateoradd";
  }
  //修改或者新增
  @RequestMapping("updateoradd.do")
  public String updateoradd(HttpServletRequest request,InnerLink innerLink) {
    User user=(User)request.getSession().getAttribute(PublicStatic.USER);
    innerLink.setCreateuserid(user.getId());
    innerLink.setIsuse("0");
    innerLink.setType("0");
    innerLink.setCreatetime(Tool.getyyyyMMddHHmmss());
    String innerlinkhtml = innerLink.getInnerlink();
    if(innerlinkhtml!=null&&innerlinkhtml.length()>0){
      if(!innerlinkhtml.startsWith("http://")||!innerlinkhtml.startsWith("http://")){
        innerlinkhtml="http://"+innerlinkhtml;
        innerLink.setInnerlink(innerlinkhtml);
      }
    }
    if(innerLink.getId()!=null){
      innerLinkService.update(innerLink);
    }else{
      innerLinkService.insert(innerLink);
    }
    return "redirect:index.do ";
  }
  //删除
  @ResponseBody
  @RequestMapping("del.do")
  public String del(int id) {
    String result=innerLinkService.delete(id);
    return result;
  }
  //删除
  @ResponseBody
  @RequestMapping("updateuse.do")
  public String updateuse(int id,String use) {
    InnerLink innerLink=new InnerLink();
    innerLink.setId(id);
    innerLink.setIsuse(use);
    innerLink.setCreatetime(Tool.getyyyyMMddHHmmss());
    innerLinkService.update(innerLink);
    new IndexThread().start();
    return "1";
  }
}

image.gif

package cc.javaee.bbs.controller.admin;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import cc.javaee.bbs.model.Bankuai;
import cc.javaee.bbs.model.Link;
import cc.javaee.bbs.model.PageBean;
import cc.javaee.bbs.model.User;
import cc.javaee.bbs.service.BankuaiService;
import cc.javaee.bbs.service.LinkService;
import cc.javaee.bbs.tool.PublicStatic;
/*
 * 友情链接
 * 
 */
@Controller
@RequestMapping("/admin/link")
public class AdminLinkController {
  @Autowired
  LinkService linkService;
  @Autowired
  BankuaiService bankuaiService;
  private static Logger log = Logger.getLogger(AdminLinkController.class);
  //后台页面查询
  @RequestMapping("index.do")
  public String findAllWhere(HttpServletRequest request, Model model,Link link,PageBean<Link> page) {
    User user=(User) request.getSession().getAttribute(PublicStatic.USER);
    link.setCreateuserid(user.getId());
    page = linkService.findpage(link,page);
    model.addAttribute("page", page);
    return "jsp/admin/link/index";
  }
  //跳转到修改页面
  @RequestMapping("toupdateoradd.do")
  public String toupdateoradd(Model model,Link link) {
    Bankuai bankuai=new Bankuai();
//    bankuai.setParentId(0);
    List<Bankuai> list = bankuaiService.select(bankuai);
    model.addAttribute("list", list);
    if(link!=null&&link.getId()!=null){
      link=linkService.find(link).get(0);
      model.addAttribute("link", link);
    }
    return "jsp/admin/link/updateoradd";
  }
  //修改或者新增
  @RequestMapping("updateoradd.do")
  public String updateoradd(HttpServletRequest request,Link link) {
    User user=(User) request.getSession().getAttribute(PublicStatic.USER);
    link.setCreateuserid(user.getId());
    if(link.getId()!=null){
      linkService.update(link);
    }else{
      linkService.insert(link);
    }
    return "redirect:index.do ";
  }
  //删除
  @ResponseBody
  @RequestMapping("del.do")
  public String del(int id) {
    String result=linkService.delete(id);
    return result;
  }
}

image.gif

package cc.javaee.bbs.controller.admin;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import cc.javaee.bbs.model.PageBean;
import cc.javaee.bbs.model.Tiezi;
import cc.javaee.bbs.model.User;
import cc.javaee.bbs.service.GroupService;
import cc.javaee.bbs.service.HuifuService;
import cc.javaee.bbs.service.TieziService;
import cc.javaee.bbs.service.UserService;
import cc.javaee.bbs.tool.PublicStatic;
import cc.javaee.bbs.tool.Tool;
/*
 * 后台用户管理页面
 * 
 */
@Controller
@RequestMapping("/admin/post")
public class AdminPostContriller {
  @Autowired
  UserService userService;
  @Autowired
  GroupService groupService;
  @Autowired
  TieziService tieziService;
  @Autowired
  HuifuService huifuService;
  //跳转首页
  @RequestMapping("index.do")
  public String add(HttpServletRequest request, Model model,Tiezi tiezi,PageBean<Tiezi> page) {
    if("1".equals(tiezi.getIsuse())){
      tiezi.setOrderby("5");
    }else{
      tiezi.setOrderby("4");
    }
    page = tieziService.findpagebybankuanid(tiezi, page);
    model.addAttribute("page", page);
    model.addAttribute("qtiezi", tiezi);
    return "jsp/admin/post/index";
  }
  //审核通过
  @RequestMapping("updatepost.do")
  public String updatepost(HttpServletRequest request, Model model,Tiezi tiezi) {
    tieziService.updatepost(tiezi);
    return "redirect:index.do?isuse=0";
  }
  //删除帖子
  @RequestMapping("delpost.do")
  public String delpost(HttpServletRequest request, Model model,int id) {
    tieziService.delete(id);
    huifuService.deletebytiezi(id);
    return "redirect:index.do?isuse=1";
  }
}

image.gif


相关文章
|
7天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
60 26
|
19天前
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
31 1
从零开始学 Maven:简化 Java 项目的构建与管理
|
17天前
|
Java
Java项目中高精度数值计算:为何BigDecimal优于Double
在Java项目开发中,涉及金额计算、面积计算等高精度数值操作时,应选择 `BigDecimal` 而非 `Double`。`BigDecimal` 提供任意精度的小数运算、多种舍入模式和良好的可读性,确保计算结果的准确性和可靠性。例如,在金额计算中,`BigDecimal` 可以精确到小数点后两位,而 `Double` 可能因精度问题导致结果不准确。
|
28天前
|
Java Android开发
Eclipse 创建 Java 项目
Eclipse 创建 Java 项目
39 4
|
1月前
|
SQL Java 数据库连接
从理论到实践:Hibernate与JPA在Java项目中的实际应用
本文介绍了Java持久层框架Hibernate和JPA的基本概念及其在具体项目中的应用。通过一个在线书店系统的实例,展示了如何使用@Entity注解定义实体类、通过Spring Data JPA定义仓库接口、在服务层调用方法进行数据库操作,以及使用JPQL编写自定义查询和管理事务。这些技术不仅简化了数据库操作,还显著提升了开发效率。
42 3
|
1月前
|
前端开发 Java 数据库
如何实现一个项目,小白做项目-java
本教程涵盖了从数据库到AJAX的多个知识点,并详细介绍了项目实现过程,包括静态页面分析、数据库创建、项目结构搭建、JSP转换及各层代码编写。最后,通过通用分页和优化Servlet来提升代码质量。
48 1
|
1月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
4月前
|
Java 数据库连接 Maven
手把手教你如何搭建SSM框架、图书商城系统案例
这篇文章是关于如何搭建SSM框架以及实现一个图书商城系统的详细教程,包括了项目的配置文件整合、依赖管理、项目结构和运行效果展示,并提供了GitHub源码链接。
手把手教你如何搭建SSM框架、图书商城系统案例
|
3月前
|
Java 应用服务中间件 数据库连接
ssm项目整合,简单的用户管理系统
文章介绍了一个使用SSM框架(Spring、SpringMVC、MyBatis)构建的简单用户管理系统的整合过程,包括项目搭建、数据库配置、各层代码实现以及视图展示。
ssm项目整合,简单的用户管理系统
|
3月前
|
XML Java 数据库连接
如何搭建SSM框架、图书商城系统
这是一份详尽的《Spring + SpringMVC + Mybatis 整合指南》,作者耗时良久整理出约五万字的内容,现已经全部笔记公开。此文档详细地介绍了如何搭建与整合SSM框架,具体步骤包括创建Maven项目、添加web骨架、配置pom文件以及整合Spring、SpringMVC和Mybatis等。无论是对初学者还是有一定基础的开发者来说,都是很好的学习资源。此外,作者还提供了项目源码的GitHub链接,方便读者实践。虽然当前主流推荐学习SpringBoot,但了解SSM框架仍然是不可或缺的基础。
45 0